четвер, 25 вересня 2014 р.

Быстрое переключение по открытым файлам в vim (настройка vim-airline)

Одним из встроенных рассширений vim-airline является tabline, которое показывает имена открытых буферов.

Я добавил в свой .vimrc такие настройки:
"Vim-Airline
set laststatus=2
let g:airline_theme='badwolf'
let g:airline#extensions#tagbar#flags = 'f'
let g:airline#extensions#tabline#enabled = 1
let g:airline#extensions#tabline#show_tab_type = 0
let g:airline#extensions#tabline#buffer_idx_mode = 1
" don't show buffers names if open only one file<
let g:airline#extensions#tabline#buffer_min_count = 2
let g:airline#extensions#tabline#formatter = 'unique_tail'
let g:airline#extensions#tabline#show_close_button = 0

"Macroses for quick switching between buffers nmap <leader>1 <Plug>AirlineSelectTab1 nmap <leader>2 <Plug>AirlineSelectTab2 nmap <leader>3 <Plug>AirlineSelectTab3 nmap <leader>4 <Plug>AirlineSelectTab4 nmap <leader>5 <Plug>AirlineSelectTab5 nmap <leader>6 <Plug>AirlineSelectTab6 nmap <leader>7 <Plug>AirlineSelectTab7 nmap <leader>8 <Plug>AirlineSelectTab8 nmap <leader>9 <Plug>AirlineSelectTab9


В результате vim имеет следующий вид:


С помощью маппингов  <leader>1,...,<leader>9 можно переключаться на нужный файл и сразу переходить в режим редактирование (символ i  в конце определения маппинга). 

Раньше для этих целей я использовал TabBar, который уже давно не развивается и выглядит не так красиво.

середу, 24 вересня 2014 р.

Подстройка скрипта vim-autotag

Существует несколько способов обновлять tags-файл при сохранении файла в Vim. Один из них - скрипт vim-autotag.
Возможны ситуации, когда в системе установлены несколько вариантов команды ctags:

which -a ctags
/usr/bin/ctags
/usr/local/bin/ctags

Первый результат - это обычный Сtagы, второй - Exuberant Ctags. autotag по умолчанию будет использовать обычный Ctags.  Из-за этого он может испортить tags-файл, созданный Exuberant Ctags.
Решить эту проблему очень просто, достаточно указать скрипту нужный исполняемый файл:

let g:autotagCtagsCmd = "/usr/local/bin/ctags"