LINUX.ORG.RU

Мой любимый Vim и Tmux

 ,


12

3

Вот так вот живем. Минимальная конфигурация редактора, которую я в процессе работы в нем постепенно дописывал. Из того, что сделано:

В консоле курсор может менять свой вид (block mode, insert mode)

Иконки для NERDTree

Собственная модификация шрифтов Menlo for Powerline (кое что добавлено)

Автокомплит через jedi-vim

fugutive и signify для работы с git

airline

bclose (удаляет буфер без закрытия окна)

и пр. незначительные расширения.

Использую oh-my-zsh с этими плагинами:

https://github.com/zsh-users/zsh-history-substring-search

https://github.com/tarruda/zsh-autosuggestions

https://github.com/zsh-users/zsh-syntax-highlighting

Tmux дефолтный, прикручен только powerline.

>>> Просмотр (1000x655, 146 Kb)



Проверено: JB ()

powerline

В чем прикол этих стрелочек друг другу в зад?..

Иконки для NERDTree

Господа психоаналитики, подскажите, чего так отчаянно не хватает этому маководу? Что он компенсирует?..

t184256 ★★★★★ ()
Ответ на: комментарий от t184256

В чем прикол этих стрелочек друг другу в зад?..

тебя так смущают стрелочки?

shamkir ()

В консоле курсор может менять свой вид (block mode, insert mode)

Цвет или вид? Какой терминал?

Автокомплит через jedi-vim

Почему нy youcompleteme + jedi?

bclose (удаляет буфер без закрытия окна)

Зачем? Если так раздражает управление окнами посмотри в сторону ctrlspace. https://github.com/szw/vim-ctrlspace

Чем делал иконки для nerd-tree? Или это вообще маковский терминал? Там есть картиночки, это я знаю.

e7z0x1 ★★★★ ()
Ответ на: комментарий от e7z0x1

за плагин спасибо посмотрю. управления окнами не раздражает, все ок. вот bclose https://github.com/aliev/bclose (по расширению я думаю поймете чего я хотел).

Почему нy youcompleteme + jedi?

мне не нравится когда автокомплит работает постоянно (он у меня включается когда мне это нужно по <leader>c.

Чем делал иконки для nerd-tree?

пропатченный nerdtree: https://github.com/aliev/nerdtree и пропатченные шрифты лежат тут https://github.com/aliev/vim/blob/master/MenloForPowerline-Regular.ttf (там же настройки редактора)

Или это вообще маковский терминал? Там есть картиночки, это я знаю.

маковский терминал тут не причем

Цвет или вид? Какой терминал?

Как то так: https://dl.dropboxusercontent.com/u/5837324/vim.mov Конфиг: https://github.com/aliev/vim/blob/master/vimrc#L62

shamkir ()
Ответ на: комментарий от shamkir

мне не нравится когда автокомплит работает постоянно (он у меня включается когда мне это нужно по <leader>c.

    let g:ycm_auto_trigger = 0
    let g:ycm_key_list_select_completion = ['<TAB>', '<Down>']
    let g:ycm_key_list_previous_completion = ['<S-TAB>', '<Up>']
    let g:ycm_key_invoke_completion = '<A-x>'

Остальные фичи типа fuzzy-search должны работать.

Как то так: https://dl.dropboxusercontent.com/u/5837324/vim.mov Конфиг: https://github.com/aliev/vim/blob/master/vimrc#L62

Понятно, значит скорее всего либо konsole либо что-то vte-based. Впрочем не важно, все они одинаково тормозные и нефункциональные, к сожалению. Хотя с unicode3 работают лучше чем rxvt-unicode.

пропатченный nerdtree: https://github.com/aliev/nerdtree и пропатченные шрифты лежат тут https://github.com/aliev/vim/blob/master/MenloForPowerline-Regular.ttf (там же настройки редактора)

Спасибо. Сам патчил?

e7z0x1 ★★★★ ()
Ответ на: комментарий от e7z0x1

да, взял menlo for powerline и добавил еще иконок через FontForge. кстати, для расширения https://github.com/Yggdroot/indentLine тоже

Понятно, значит скорее всего либо konsole либо что-то vte-based. Впрочем не важно, все они одинаково тормозные и нефункциональные, к сожалению. Хотя с unicode3 работают лучше чем rxvt-unicode.

ничего такого, там без разницы работать будет везде (в любом эмуляторе)

shamkir ()
Ответ на: комментарий от shamkir

ничего такого, там без разницы работать будет везде (в любом эмуляторе)

rxvt-unicode не поддерживает такие курсоры, там надо патч делать. Я как-то делал, но в результате были какие-то глюки с тем что оставался желтый след. Оказалось я esc-последовательности неправильно завершил. Надо бы переделать, но некогда.

https://github.com/Yggdroot/indentLine

Когда я его использовал он тормозил в отличие от nathanaelkane/vim-indent-guides. Сейчас что-то изменилось? А то indentline и правда поэстетичнее будет.

e7z0x1 ★★★★ ()
Ответ на: комментарий от e7z0x1

у меня к счастью ничего не тормозит. сейчас стоит опция:

" Make indent line faster let g:indentLine_faster=1

shamkir ()
Ответ на: комментарий от e7z0x1

rxvt-unicode не поддерживает такие курсоры, там надо патч делать. Я как-то делал, но в результате были какие-то глюки с тем что оставался желтый след. Оказалось я esc-последовательности неправильно завершил. Надо бы переделать, но некогда.

вы оказались правы, открыл Terminal.app и курсор действительно не работает. в Iterm2 все ок (в настройках iterm2 report terminal type стоит: xterm-256color)

shamkir ()

Почему мелкий кусок вместо нормального скрина?

stormblastt ★★★ ()

Иконки для NERDTree

как?

Dron ★★★★★ ()
Ответ на: комментарий от Dron

выше в комментариях написал. пропатченный шрифт «Menlo For Powerline»

shamkir ()
Ответ на: комментарий от shamkir

let mapleader = "," " Map leader

пробел удобнее:

map       <Space>      <Leader>
как попробовал - почти полностью перешел с дефолтного, кстати "," это:
Repeat latest f, t, F or T in opposite direction [count] times.
дурной тон, так сказать, мапить изкоробочноe.

Plugin 'mattn/emmet-vim'

каким хоткеем дополняешь, дефолтным, что-ли?

vim ()

Имя цветовой схемы? Приятная.

beastie ★★★★★ ()
Ответ на: комментарий от shamkir

да, <c-y>,

неудобно же, жесть.

Я использую: jk , да, именно jk в insert mode, очень удобно :)

au FileType html,css,sass,scss,less imap <expr>jk   emmet#expandAbbrIntelligent("\<tab>")
ну а Esc у меня это kj , что вообще мегаудобно, рекомендую попробовать.

vim ()
Ответ на: комментарий от vim

спасибо ))) я как то привык уже. в последнее время вообще стараюсь делать все через свой leader (<leader>f запускает CtrlP, <leader>e - NERDTree, <leader>d - go to definition, <leader>c autocomplete). просто я emmet использую не так часто, а к стандартной комбинации уже привык :). еще для питона очень хочется автоматический фолдинг импортов но пока руки не дошли (в проектах бывают пятиметровые импорты), может есть какое решение?

shamkir ()
Ответ на: комментарий от shamkir

Скорее всего есть, но я питон не использую, не в курсе.

vim ()

Выглядит хорошо.
Спасибо за описание, надо будет вечером что-нибудь к себе перетянуть.

PS: возможно, ты про него знаешь, но есть отличный плагин 'christoomey/vim-tmux-navigator' для бесшовной навигации между вимом и tmux'ом.

kovrik ★★★★★ ()
Ответ на: комментарий от vim

let mapleader = "," " Map leader

пробел удобнее:

map <Space> <Leader>

как попробовал - почти полностью перешел с дефолтного, кстати "," это:
Repeat latest f, t, F or T in opposite direction [count] times.
дурной тон, так сказать, мапить изкоробочноe.

Плохой аргумент, пробел как бы тоже занят:

<Space>         [count] characters to the right.  |exclusive| motion.
xaizek ★★★★★ ()
Ответ на: комментарий от kovrik

vim-tmux-navigator

+ tmux-complete.vim для комплита содержимого окон/панелей, необязательно с вимом которые.

vim ()
Ответ на: комментарий от t184256

В чем прикол этих стрелочек друг другу в зад?..

Да, стрелочки не нужны, только место занимают. Я их отключаю. А сам плагин airline весьма удобный, но можно жить и без него.

Господа психоаналитики, подскажите, чего так отчаянно не хватает этому маководу?

Вы о плагине или о «иконках» в нем?

andreyu ★★★★★ ()
Ответ на: комментарий от e7z0x1

Почему нy youcompleteme + jedi?

Может потому, что пистон, который нужен ycm даже на старте вима сжирает кучу памяти? Всем хорош ycm, кроме тормозов и прожорливости.

andreyu ★★★★★ ()

Прикольно! Мне нравится.

hibou ★★★★★ ()

Посоны, что лучше tmux или screen и почему. Хочу замутить себе как на скриншоте

vertexua ★★★☆☆ ()

Автокомплит через jedi-vim

В С?

vertexua ★★★☆☆ ()
Ответ на: комментарий от andreyu

Чем он лучше ctrlp?

Тем что он с ним связи, абсолютно никакой, не имеет. Эта приблуда для управления окнами и буферами. Посмотри видео, там есть.

Может потому, что пистон, который нужен ycm даже на старте вима сжирает кучу памяти?

Ну да, сейчас память в большом дефиците, когда на практически каждом обычном компьютере, стоит хотя бы 8-16 GiB ram. На фоне neocomplete, например он не тормозной. Так же как и не тормозной на фоне того что я пробовал для emacs(autocomplete и ещё что-то).

e7z0x1 ★★★★ ()
Ответ на: комментарий от e7z0x1

Тем что он с ним связи, абсолютно никакой, не имеет. Эта приблуда для управления окнами и буферами. Посмотри видео, там есть.

Посмотрел. Это умеет и ctrlp.

Ну да, сейчас память в большом дефиците, когда на практически каждом обычном компьютере, стоит хотя бы 8-16 GiB ram.

Ну да, а завтра и этого ему будет мало. Снова память добавлять?

На фоне neocomplete, например он не тормозной.

На фоне neocomplete (который для меня совершенно бесполезен) ycm не просто тормозит, а стоит на месте.

andreyu ★★★★★ ()

Почему не sudo sh, вдруг прав мало?

Anakros ★★★★★ ()
Ответ на: комментарий от andreyu

На фоне neocomplete (который для меня совершенно бесполезен) ycm не просто тормозит, а стоит на месте.

У тебя что-то не то. У меня всё совсем наоборот. С neocomplete работать вообще невозможно, когда в последний раз проверял, а ycm влияния на работу вообще не оказывает почти. Хотя сейчас специально посмотрю, вдруг что-то изменилось.

Ну да, а завтра и этого ему будет мало. Снова память добавлять?

Кому «ему»? Может ты проверял это на файлах типа cpp, неудивительно что он жрет все память, спп монстроузный язык, давно известно. Её жрет clang, а не ycm, который в сумме с вимом 70+130=200 мегабайт или что-то типа того.

Посмотрел. Это умеет и ctrlp.

Ты как-то не так посмотрел. ctrlp не сохраняет состояние нормально(нет workspace-list), в отличие от. Он может так же точно работать с вкладками и далее в таком духе? Может и может, но с дополнительными телодвижениями. Собственно он для этого и нужен, из-за бестолкового понятия вкладок в vim, которые просто как разбиение экрана, вместо того чтобы завязать на себе буфера. Вообще не понимаю зачем это было сделано так.

e7z0x1 ★★★★ ()
Ответ на: комментарий от andreyu

На фоне neocomplete (который для меня совершенно бесполезен) ycm не просто тормозит, а стоит на месте.

Ну вот сейчас же это проверил, полная бурда. Там разница видна невооруженным глазом. В пользу ycm, разумеется. На чем сравнивать производительность будем? Если не верите могу видео даже записать, скринкаст.

e7z0x1 ★★★★ ()
Ответ на: комментарий от andreyu

neocomplete

ycm

У них разнве не разные сферы completion? Их же вроде ставить вместе можно и они будут обрабатывать свое? Я не пробовал правда

vertexua ★★★☆☆ ()
Ответ на: комментарий от kovrik

спасибо большое, обязательно посмотрю. но я к стандартной уже привык :)

shamkir ()
Ответ на: комментарий от vim

+ tmux-complete.vim для комплита содержимого окон/панелей, необязательно с вимом которые.

интересное расширение. сегодня попробую, спасибо!

shamkir ()
Ответ на: комментарий от e7z0x1

У тебя что-то не то. У меня всё совсем наоборот. С neocomplete работать вообще невозможно, когда в последний раз проверял, а ycm влияния на работу вообще не оказывает почти. Хотя сейчас специально посмотрю, вдруг что-то изменилось.

Мне комплитер нужен для c++, а вам для какого языка?

Кому «ему»? Может ты проверял это на файлах типа cpp, неудивительно что он жрет все память, спп монстроузный язык, давно известно. Её жрет clang, а не ycm, который в сумме с вимом 70+130=200 мегабайт или что-то типа того.

Ее жрет пистон. В моем случае ее жрет пистон2.

Ты как-то не так посмотрел. ctrlp не сохраняет состояние нормально(нет workspace-list), в отличие от.

Использую для этого sessions.

Он может так же точно работать с вкладками и далее в таком духе?

Я табами не пользуюсь, использую буфера. Ctrlp умеет переключаться между файлами, буферами, и прочим.

Может и может, но с дополнительными телодвижениями.

Дефолт.

Собственно он для этого и нужен, из-за бестолкового понятия вкладок в vim, которые просто как разбиение экрана, вместо того чтобы завязать на себе буфера. Вообще не понимаю зачем это было сделано так.

Это хороший вопрос. Я табы не использую.

andreyu ★★★★★ ()
Ответ на: комментарий от e7z0x1

Ну вот сейчас же это проверил, полная бурда. Там разница видна невооруженным глазом. В пользу ycm, разумеется. На чем сравнивать производительность будем? Если не верите могу видео даже записать, скринкаст.

Какой язык? У меня иногда ycm тормозит так сильно, что хочется его снести к чертовой матери. Просто лучшего комплитера для c++ нет.

andreyu ★★★★★ ()
Ответ на: комментарий от vertexua

У них разнве не разные сферы completion?

Они смежные. Но neocomplete далек по функционалу от ycm. Особенно если это касается c/c++

Их же вроде ставить вместе можно и они будут обрабатывать свое? Я не пробовал правда

Не пробовал использовать их вместе. Под виндой использую neocomplete, а под linux и os x использую ycm.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

Мне комплитер нужен для c++, а вам для какого языка?

Да для того же, для c и cpp, просто ничего удивительно в том что для cpp память сжирается тоннами нет. Сжирает её clang.

Не пробовал использовать их вместе. Под виндой использую neocomplete, а под linux и os x использую ycm.

Не прокатит, потому что ycm автоматом проставляет completefunc=youcompleteme#Complete даже если отключены автокоманды. Что сейчас сделать можно:

nnoremap <silent> <F3> :call youcompleteme#DisableCursorMovedAutocommands()<CR>
nnoremap <silent> <F4> call youcompleteme#EnableCursorMovedAutocommands()
Возможно если отключить прописывание completefunc, то будут работать.

Какой язык?

В том где я проверял был проект на cpp. Впрочем там речь даже не об этом. Автокомплит просто по имеющимся словам в файле(напримре vimrc) у neocomplete и то получается более медленный, чем семантический автокомплит ycm в c++

Всё же давайте рассмотрим какой-то тестовый проект, где у вас уже есть тормоза. Потому что я сколько его использую всё ок, это касается даже проектов где например используется qt в больших количествах. Автокомплит семантический по сути мгновенный.

e7z0x1 ★★★★ ()
Ответ на: комментарий от e7z0x1

Всё же давайте рассмотрим какой-то тестовый проект, где у вас уже есть тормоза.

Проекты закрытые. Но по идее там негде тормозить, а ycm тормозит нещадно.

Кто то на ЛОРе мне предлагал включить в vim профайлер и посмотреть, кто виновник, но руки не дошли.

andreyu ★★★★★ ()
Ответ на: комментарий от e7z0x1

Не прокатит, потому что ycm автоматом проставляет completefunc=youcompleteme#Complete даже если отключены автокоманды. Что сейчас сделать можно:

Наверное нужно было сказать точнее - у меня даже идеи использовать их вместе не возникало.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

Кто то на ЛОРе мне предлагал включить в vim профайлер и посмотреть, кто виновник, но руки не дошли.

Я и предлагал.

e7z0x1 ★★★★ ()
Ответ на: комментарий от e7z0x1

Я и предлагал.

Напомните, в какой ветке это было - включу профайлер, буду смотреть в чем проблема.

andreyu ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.