Комментарии 30
Если, честно то довольно стандартный конфиг. Ничего не вынес для себя нового. Расскажите про автокомлит для JS, интересно.
Использую практически всё то же самое. Пара исключений:
Идея с курсором понравилась, утащу себе.
Мой конфиг здесь: github.com/JIghtuse/dotvim
Ну и ещё пара традиционных ссылок.
Крутейшая книга по Vim: pragprog.com/book/dnvim/practical-vim
Видео от создателя книги Drew Neil, тоже много полезного: vimcasts.org/
- NERDCommenter от создателя NERDTree и Syntastic вместо Tcomment_vim;
- YouCompleteMe для автодополнения. Для C/C++ ему равных нет, я считаю. К тому же здорово интегрируется с Synastic.
Идея с курсором понравилась, утащу себе.
Мой конфиг здесь: github.com/JIghtuse/dotvim
Ну и ещё пара традиционных ссылок.
Крутейшая книга по Vim: pragprog.com/book/dnvim/practical-vim
Видео от создателя книги Drew Neil, тоже много полезного: vimcasts.org/
Конфиг, конечно, дело сугубо личное и порой даже интимное, но посмотрите в сторону github.com/spf13/spf13-vim и github.com/bling/dotvim.
Лично мне больше нравится вариант от bling. Форкнул его и теперь подстраиваю под себя.
Лично мне больше нравится вариант от bling. Форкнул его и теперь подстраиваю под себя.
Отдельное спасибо за тему для iTerm.
Вижу вы используете minibufexplorer, поставьте vim-airline, и включите опции:
так намного удобнее и красивее, получится так: habrastorage.org/storage3/376/ae8/838/376ae8838a324ca5d5ff70ffb2d52fc1.png
P.S. мой конфиг, если интересно: github.com/aliev/vim
" If you want to auto-completion to work stable in older vim, disable this option
let g:airline#extensions#tabline#enabled = 1
" Airline tabs settings
let g:airline#extensions#tabline#fnamemod = ':t'
так намного удобнее и красивее, получится так: habrastorage.org/storage3/376/ae8/838/376ae8838a324ca5d5ff70ffb2d52fc1.png
P.S. мой конфиг, если интересно: github.com/aliev/vim
Спасибо, плагин крутой, кажется буду пользовать :) в конфиг тоже загляну как будет время, спасибо.
Попробуйте еще вот это
Работает полный автокомплит для JavaScript-а, и GoTo definition, рефакторинг и много много других вкусняшек :) Ссылка на проект: github.com/marijnh/tern_for_vim
Bundle 'marijnh/tern_for_vim'
Работает полный автокомплит для JavaScript-а, и GoTo definition, рефакторинг и много много других вкусняшек :) Ссылка на проект: github.com/marijnh/tern_for_vim
Да это ж почти мой конфиг!
Для JS поставил vim-javascript от pangloss, пока вполне хватает.
Для JS поставил vim-javascript от pangloss, пока вполне хватает.
Из полезного неупомянутого:
Для себя утащу «Disable highlighting search result on Enter key». Никак не доходили руки загуглить, спасибо :)
" Show a vertical line on a 80th character set textwidth=80 set colorcolumn=+1 highlight ColorColumn ctermbg=DarkGrey " Mark tabs and trailing spaces set list listchars=nbsp:·,tab:→\ ,trail:·,extends:>,precedes:< " Scroll the window so we can always see 10 lines around the cursor set scrolloff=10
Для себя утащу «Disable highlighting search result on Enter key». Никак не доходили руки загуглить, спасибо :)
У меня colorcolumn настроен вот так:
Результат: habrastorage.org/storage3/a83/7a4/841/a837a4841c7f1a5839f9a72778be46c0.png
if exists('+colorcolumn')
execute "set colorcolumn=" . join(range(81,335), ',')
else
Результат: habrastorage.org/storage3/a83/7a4/841/a837a4841c7f1a5839f9a72778be46c0.png
Вот эти два пункта в конфиге есть. :)
Только чуть с другими занчениями
Про vertical line наверное утащу себе, завел иссью чтобы не забыть, спасибо :)
" Mark tabs and trailing spaces
" Scroll the window so we can always see 10 lines around the cursor
Только чуть с другими занчениями
Про vertical line наверное утащу себе, завел иссью чтобы не забыть, спасибо :)
Тоже Mac пользую. Поделитесь с какими опциями Vim компилировали, если помните конечно. И, интересно, из каких соображений запускаете в терминале, а не GUI? И, если GUI, чем бы лучше проэмулировать терминал в окне Vim не подскажете?
Привет! если честно я почти уверен что он был у меня с самого начала ( может быть после устнаовки command line tools (есть на developer.apple.com)
В терминале его запускаю, потому что много работы происходит на удаленных машинах по ssh(там соответсвенно тоже vim) и в консоли, и так просто удобнее не переключать контекст, открываю пару сплитов в iTerm и вперед :)
Чем проэмулировать к сожалению незнаю :( А какие плюсы у GUI вима? я никогда не пользовался просто.
В терминале его запускаю, потому что много работы происходит на удаленных машинах по ssh(там соответсвенно тоже vim) и в консоли, и так просто удобнее не переключать контекст, открываю пару сплитов в iTerm и вперед :)
Чем проэмулировать к сожалению незнаю :( А какие плюсы у GUI вима? я никогда не пользовался просто.
Привет. Я имею два экземпляра: один терминальный, скомпилированный примерно так ./configure --with-features=huge --with-mac-arch=intel --disable-darwin --disable-gui --without-x --WITHOUT\_X11=yes --disable-nls --disable-gpm --disable-netbeans --disable-arabic --disable-farsi --disable-cscope --disable-emacs\_tags --disable-keymap --disable-langmap --enable-feature=browse --with-tlib=ncurses --enable-multibyte --prefix=\#prefix --mandir=\#man и второй GUI просто взятый отсюда github.com/b4winckler/macvim. Если уж честно, пользуюсь редко. Просто не мой стакан чая. Повседневно, для SSH nano sshfs, а так sublimetext и p9p acme. acme любимый. macvim не то чтобы лучше консольного, а как darwin vs linux человечней. Спасибо за статью. Популяризацию Vim считаю благородной миссией. К Брему Мулленару отношусь с глубоким почтением.
Спасибо за smartcase. Уж столько пользуюсь, а почему-то не знал. Теперь не нужен :se noic. :)
P.S. Все же знают, что инструкции можно сокращать? :se ic = :set ignorecase, :se nonu = :set nonumber, :setf html = :set filetype=html, и т.д.
P.P.S.
> Отдельный хоткей для включения/выключения past mode — \p
Сперва удивился новому режиму, а потом только дошло, что это paste, а не past
P.S. Все же знают, что инструкции можно сокращать? :se ic = :set ignorecase, :se nonu = :set nonumber, :setf html = :set filetype=html, и т.д.
P.P.S.
> Отдельный хоткей для включения/выключения past mode — \p
Сперва удивился новому режиму, а потом только дошло, что это paste, а не past
спасибо, поправил :)
P.S. Все же знают, что инструкции можно сокращать? :se ic = :set ignorecase, :se nonu = :set nonumber, :setf html = :set filetype=html, и т.д.Знают. Но я крайне не рекомендую сохранять такие сокращения где‐либо, кроме истории команд. Много времени это не сэкономит, но вернитесь к своим настройкам через месяц и попробуйте вспомнить, что такое ́
set nojs
. Некоторые часто употребимые сокращения вроде ft
, syn
или exe
сложно забыть, но тут вступают соображения единообразности: я не сокращаю nnoremap
до nn
, потому что такие сокращения сложно запомнить, а function
до fun
, потому что я не сокращаю nnoremap
.Также я не рекомендую писать их другим людям, потому что вы не знаете, какие сокращения другие люди знают. Запись
set noignorecase
намекает о сути настройки даже непосвящённым, запись set noic
намекает только о том, что на VimL достаточно всего двух символов (token’ов — объектов различимых для парсера, в данном случае, парсера в мозгу человека), чтобы написать нечитаемый код.Ну если бы речь шла про конфиг, то вместо noignorecase мне было бы достаточно не добавлять ignorecase ;)
Я написал про некое «противопоставление» моим дефолтным настройкам из конфига в случае, когда мне требуется иное поведение редактора при поиске чего-либо, а разово вводить мне удобнее команды в сокращённом виде. Остальные сокращения упомянуты только для примера и применимы в основном на «ненастроенной/чужой машине». На filetype у меня хоткей+wildmenu, на number/nonumber у меня хоткей, а ignorecase всегда включен.
У каждого свой подход. Кто-то пишет сокращения в конфиге и снабжает их кучей комментариев, кто-то просто не использует сокращений, кто-то пишет кучу комментариев в конфиге без сокращений, а у кого-то в конфиге каша из сокращений без комментов и полных команд с комментариями :)
Если конфиг не планируется для паблика, то рекомендации будут бесполезны — кому-то nn запомнить окажется проще, чем nnoremap, а кому-то просто пофиг чего у него там в конфиге :)
Я написал про некое «противопоставление» моим дефолтным настройкам из конфига в случае, когда мне требуется иное поведение редактора при поиске чего-либо, а разово вводить мне удобнее команды в сокращённом виде. Остальные сокращения упомянуты только для примера и применимы в основном на «ненастроенной/чужой машине». На filetype у меня хоткей+wildmenu, на number/nonumber у меня хоткей, а ignorecase всегда включен.
я крайне не рекомендую
У каждого свой подход. Кто-то пишет сокращения в конфиге и снабжает их кучей комментариев, кто-то просто не использует сокращений, кто-то пишет кучу комментариев в конфиге без сокращений, а у кого-то в конфиге каша из сокращений без комментов и полных команд с комментариями :)
Если конфиг не планируется для паблика, то рекомендации будут бесполезны — кому-то nn запомнить окажется проще, чем nnoremap, а кому-то просто пофиг чего у него там в конфиге :)
Я тоже использую сокращённые формы при наборе в командной строке. Только если бы мне требовалось часто менять настройку ignorecase, то я использовал бы привязку и там была бы полная версия. Но когда нужно мне обычно легче использовать
Относительно ignorecase: эта настройка влияет на matchstr()/match()/matchlist()/matchend(), substitute(), search()/searchpair()/searchpairpos()/searchpos(), :substitute/:smagic/:snomagic, операторы сравнения для строк (=~/!~, ==/!=, is/isnot (если оба операнда — строки), </>/<=/>= (аналогично)), /, ?, :/, :?, *, #. Множество авторов пишут неправильные операторы сравнения (правильные — это те же самые, но с добавлением # или? на конце), зависимость функций от значения ignorecase же игнорируется почти всеми. Даже я не уверен, что у меня во всех дополнениях все функции работают правильно.
Спасает только то, что чаще всего входные данные таковы, что значение ignorecase не влияет на выходные. Однако мне не нравится полагаться на это соображение.
\c
/\C
(в основном потому, что я представляю, сколько авторов дополнений забывают учитывать ignorecase, но не хочу проверять, чем мне это грозит в тех дополнениях, которые я использую).Относительно ignorecase: эта настройка влияет на matchstr()/match()/matchlist()/matchend(), substitute(), search()/searchpair()/searchpairpos()/searchpos(), :substitute/:smagic/:snomagic, операторы сравнения для строк (=~/!~, ==/!=, is/isnot (если оба операнда — строки), </>/<=/>= (аналогично)), /, ?, :/, :?, *, #. Множество авторов пишут неправильные операторы сравнения (правильные — это те же самые, но с добавлением # или? на конце), зависимость функций от значения ignorecase же игнорируется почти всеми. Даже я не уверен, что у меня во всех дополнениях все функции работают правильно.
Спасает только то, что чаще всего входные данные таковы, что значение ignorecase не влияет на выходные. Однако мне не нравится полагаться на это соображение.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
.vimrc для фронтендера