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 " маркер без комментария {{{ }}}
Если нужно набрать фразу или предложение несколько раз, существует эффективный подход - механизм записи макросов.
Источники: moolenar.ru, habrahabr.ru.
Вертикальное выделение + множественная вставка: http://stackoverflow.com/a/15588798
- Открыть терминал в новой вкладке :tab terminal
- Нормальный режим в терминале: Ctrl-w N
- Возвращение в обычный режим терминала: i
Источник
Описание по ссылке
Материалы в сети:
Список полезных плагинов:
Полезное:
Список основных команд по ссылке.
Автоматическое обновления файла с тегами:
Plugin 'ludovicchabant/vim-gutentags'
:PluginInstall
" Plugin 'ludovicchabant/vim-gutentags' let g:gutentags_add_default_project_roots = 0 " Disable default root markers let g:gutentags_project_root = ['.gutentags','.vimGutenTags'] let g:gutentags_ctags_exclude = [ '.git', 'build', 'depends', 'docs', '.md', '.cache', 'tags', '.css', '.vim' ]
silent! map <F2> :NERDTreeFind<CR> " Find directory in NERDTree with current file
Установка ctags:
apt install universal-ctags
Настройка Dark deno-powered completion framework.
Домашняя страница проекта доступна по ссылке ddc.vim.
$ curl -fsSL https://deno.land/x/install/install.sh | sh
Vim отобразит ошибку при отсутствии исполняемого файла deno:
[denops] A 'deno' (g:denops#deno) is not executable. Denops requires executable Deno.
Plugin 'Shougo/ddc.vim' "Dark deno-powered completion framework for neovim/Vim Plugin 'vim-denops/denops.vim' "Denops is ecosystem of Vim/Neovim which allows developers to write plugins in Deno
Plugin 'Shougo/ddc-ui-native' "/UI/ Native popup menu UI for ddc.vim
Plugin 'Shougo/ddc-source-around' "/Source/ Around completion for ddc.vim
Plugin 'Shougo/ddc-filter-sorter_rank' "/Filter/ Matched rank order sorter for ddc.vim Plugin 'Shougo/ddc-filter-matcher_head' "/Filter/ Heading matcher for ddc.vim
call ddc#custom#patch_global('ui', 'native')
call ddc#custom#patch_global('sources', ['around']) call ddc#custom#patch_global('sourceOptions', { \ 'around': { 'mark' : '[A]' }, \ '_': { \ 'matchers': ['matcher_head'], \ 'sorters': ['sorter_rank']}, \ }) call ddc#enable()
—
По материалам: