Это старая версия документа!
Update: патч принят в основную ветку vim'а
Update: проблема c перемещением по тексту при совместной работе showbreak и breakindent. Подробности по ссылке.
Проблема: vim при переносе длинных строк не учитывает первоначальный отступ строки, например, при наличии вложенных многоуровневых структур в исходном коде (if … end, for … end, \begin{center} … \end{center} и т.д.), что приводит к образованию горизонтальных блоков, ухудшающих визуальное восприятие текста.
Так выглядит текст по-умолчанию:
Таким должен быть результат «умного» переноса строк:
Решение: использовать breakindent-patch
apt-get install dpkg-dev devscripts
# wheezy(stable) version 7.3.547 apt-get source vim # or # unstable version 7.4.253 (at 13.04.2014) apt-get source vim -t unstable
apt-get build-dep vim # for unstable version may need update libperl, python
# for wheezy vim-7.3.547 wget https://retracile.net/raw-attachment/blog/2012/12/21/17.30/vim-7.3.682-breakindent.patch # or # for unstable vim-7.4.253 wget https://retracile.net/raw-attachment/blog/2013/09/12/23.00/vim-7.4.16-fc19-breakindent.patch
# for wheezy cp vim-7.3.682-breakindent.patch vim-7.3.547/debian/patches/debian/vim-breakindent.patch # or # for unstable cp vim-7.4.16-fc19-breakindent.patch vim-7.4.253/debian/patches/debian/vim-breakindent.patch
debuild -us -uc
dpkg -i vim_pkg_name.deb
Локальные версии исходного кода патчей и собранных пакетов vim'а можно скачать здесь.
Пакеты собраны с libper5.18, но в репозитории Debian'а данная библиотека заменена на libper5.20. В итоге зависимости нарушены. Под libperl5.20 пакеты надо пересобирать…
Зелёная цветовая схема spring, Шрифт - Droid Sans Mono 10:
if has("gui_running") set guioptions+=b colorscheme spring set guifont=Droid\ Sans\ Mono\ 10 else colorscheme spring endif
syntax on " Отображение подсветки ` set syntax=automatic " Автоматическое определение вида подсветки
set wrap " переносить строки, если они не помещаются на экране set showbreak=\|->" установить '|->', как символ продолжения предыдущей строки set linebreak " перенос строк по словам, а не по буквам set number " включить номера строк
Поставленная задача может быть реализована, пруф, посредством команды vim'a autocmd.
:version
Доступные опции отмечены (+): «+autocmd».
:echo join(map(split(globpath(&rtp, 'ftplugin/*.vim'), '\n'), 'fnamemodify(v:val, ":t:r")'), "\n")
This gets all ftplugin scripts from the runtimepath, and then modifies the filespec via fnamemodify() to only list the root of the filename. split() converts into a List, and join() back to lines for :echo ing источник.
:set filetype?
if has("autocmd") "Включаем определение типов файлов, "без этого не будут срабатывать события в autocmd filetype on autocmd FileType php setlocal ts=4 sts=4 sw=4 noet autocmd FileType python setlocal ts=4 sts=4 sw=4 et autocmd FileType html setlocal ts=2 sts=2 sw=2 noet " Ручная установка типа файла по расширению autocmd BufNewFile,BufRead *.tmpl,*.tpl setfiletype html endif
:set foldenable :set foldmethod=<method_name>
:set commentstring=/*%s*/ " маркер обрамлён комментарием /*{{{*/ /*}}}*/
При необходимости это поведение можно изменить
:set commentstring=%s " маркер без комментария {{{ }}}
Если нужно набрать фразу или предложение несколько раз, существует эффективный подход - механизм записи макросов. Команда qa, начнёт запись в регистр 'a'. Далее набирайте необходимые команды, а в конце введите команду 'q' для окончания записи макроса. Для повторения набора записанных команд наберите @a или N@a, для выполнения команд N раз.
Источники: moolenar.ru, habrahabr.ru.
Вертикальное выделение + множественная вставка: http://stackoverflow.com/a/15588798
:tab terminal