Пользуюсь vim-ом уже не первый год, и всё хотелось превратить его в «настощий IDE» — но как-то было лень и руки не доходили.
Т.е., vim, конечно, прекрасен и сам по себе, но сейчас начал в очередной раз ковырять Golang, и очень напрягает писать функции в ЭтОмВоТдУрАцКоМкЕмЕлСтАйЛе и постоянно shift-тить, а потому начал искать плагин для автодополнения имён.
Заодно — доустановил себе всяких других плагинов, которые давно хотелось. Собственно об этом и пост — установка плагинов, их настройка, полезные плагины для vim-а вообще.
Внезапно оказалось, что на Stackoverflow даже существует отдельный форум по vi/vim — https://vi.stackexchange.com.
Содержание
Установка плагинов
Как правило — плагины устанавливаются в домашний каталог, в папке ~/.vim:
[simterm]
$ ll ~/.vim total 0
[/simterm]
Путь к ней определяется в vim параметром runtimepath, проверить его можно с помощью :set runtimepath?:
При необходимости его можно изменить, задав в ~.vimrc:
set runtimepath^=~/other/path
Плагины могут быть представлены в разных вариантах — просто .vim файл, .vba (vimball-файл), который содержит все необходимые файлы плагина, или просто набор файлов для различных директорий внутри каталога ~/.vim/ — /plugin/, /doc/, /syntax/ и т.д.
Для установки плагина из .vim файла — его достаточно загрузить в каталог ~/.vim/plugin.
Кроме ручной установки — существует несколько менеджеров для плагинов, например — vim-plug, pathogen, vundle, которые упрощают установку плагинов, состоящих из нескольких директорий-файлов и их обновление.
Установка vim-plug
Дальнейшие примеры будут с использование менеджера vim-plug.
Загружаем файл плагина в каталог .vim/autoload, что бы бы загружался при запуске vim:
[simterm]
$ curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
[/simterm]
В ~/.vimrc добавляем:
call plug#begin('~/.vim/plugged')
call plug#end()
Между вызовами begin и end — будем добавлять плагины для установки их с помощью vim-plug.
Цветовая схема
Кроме плагинов — vim поддерживает разные цветовые схемы.
Просмотреть имещиеся можно с помощью :colorscheme+пробел+Ctrl+D:
Большая коллекция схем тут>>>.
Для установки темы, например flattened — добавляем её в .vimrc:
call plug#begin('~/.vim/plugged')
" https://github.com/romainl/flattened
Plug 'romainl/flattened'
call plug#end()
Перечитываем конфиг — выполняем :source .vimrc:
И вызываем :PlugInstal:
(vim поддерживает автодополнение команд по TAB, а обновить плагины, установленные с помощью vim-plug можно с помощью PlugUpdate)
Добавляем тему в .vimrc:
colorscheme flattened_dark
Перезапускаем vim:
Полезные плагины
Плагинов для vim — вагон и маленькая тележка, можно добавить интересные в комментарии. Тут приведу только несколько.
lightline
Первый плагин — lightline, который меняет вид строки состояния при работе с файлами.
Добавляем Plug 'itchyny/lightline.vim':
call plug#begin('~/.vim/plugged')
" https://github.com/itchyny/lightline.vim
Plug 'itchyny/lightline.vim'
call plug#end()
Добавляем в .vimrc параметр laststatus со значением 2 — `set laststatus=2`, и showmode в set noshowmode:
... " https://github.com/itchyny/lightline.vim Plug 'itchyny/lightline.vim' call plug#end() " display lightline set laststatus=2 set noshowmode ...
Повторяем установку — перечитываем .vimrc, выполняем :PlugInstal:
Перезапускаем редактор:
NERDTree
Ещё один плагин, который очень упрощает навигацию по каталогам-файлам, не выходя из vim.
Добавляем его:
" https://github.com/scrooloose/nerdtree Plug 'scrooloose/nerdtree'
Что бы запускать его каждый раз при запуске vim — добавляем autocmd vimenter * NERDTree.
Для вызова-скрытия менюшки по комбинации клавиш — добавляем map <C-n> :NERDTreeToggle<CR> (или меняем Ctrl+n на свою):
Повторяем установку, как в примерах выше, и вызываем меню по Ctrl+n:
Для переключения из окна файлов-каталогов к редактируемому фйлу — используем Ctrl+w+w, для отображения скрытых файлов — Shitf+i:
Либо, что бы для переключения между окнами пользоваться мышкой — добавляем параметр mouse — set mouse=a.
Что бы создать файл из NERDTree — вызываем меню клавишей m:
Клавишей a — добавляем новый элемент. Если это файл — то просто указываем имя, если директория — добавляем в конце обратный слеш «/«:
vim-go
Собственно тот плагин, с которого всё началось — автодополнение имён функций при написании кода на Go.
Проверяем $GOPATH:
[simterm]
$ go env GOPATH /home/setevoy/go
[/simterm]
Проверяем PATH в ~/.bashrc — должен включать в себя GOPATH/bin:
export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin
Устанавливаем плагин vim-go:
... " https://github.com/fatih/vim-go Plug 'fatih/vim-go' ...
Выполняем :source .vimrc, :PlugInstall, и вызываем :GoInstallBinaries:
Запускаем vim, и проверяем:
Для вызова автоподстановки имени — используем Ctrl+x и Ctrl+o в INSERT режиме.
Кроме автоподстановки vim-go умеет и многое другое, см. команды тут>>>.
syntastic
Ещё один полезный плагин — проверка синтаксиса.
Устанавливаем:
... " https://vimawesome.com/plugin/syntastic Plug 'vim-syntastic/syntastic' ...
Рекомендуемые опции для него:
" syntastic opts
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
Пример его работы с Python, вызов проверки — при сохранении файла или командой :SyntasticCheck:
Но для Go проверка не выполняется.
Проверяем :SyntasticInfo при открытом на редктирование файле go:
[simterm]
Syntastic version: 3.9.0-20 (Vim 801, Linux) Info for filetype: go Global mode: active Filetype go is active The current file will be checked automatically Available checkers: go gofmt golint gometalinter govet Currently enabled checkers: -
[/simterm]
Currently enabled checkers: —
Окей, добавляем в .vimrc:
let g:syntastic_go_checkers=['golint']
Проверяем — взываем :SyntasticCheck:
В целом на этом пока всё.
Получившийся .vimrc можно посмотреть в Github.

















