Настройки Vim

Предупреждение
Последний раз данная статья обновлялась 16.08.2022, информация может быть устаревшей.
  1. Установка
1
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
  1. Настройка Vundle

Размещаем это в начале .vimrc, чтобы использовать Vundle:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
set nocompatible
filetype off

set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()

Plugin 'VundleVim/Vundle.vim'

Plugin 'tpope/vim-fugitive'
Plugin 'ambv/black'
Plugin 'nvie/vim-flake8'
Plugin 'scrooloose/nerdtree'
Plugin 'davidhalter/jedi-vim'
Plugin 'mitsuhiko/vim-jinja'
Plugin 'git://git.wincent.com/command-t.git'
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
Plugin 'flazz/vim-colorschemes'
Plugin 'tpope/vim-surround'

call vundle#end()            " required
filetype on
filetype plugin on
filetype plugin indent on    " required

" Put your non-Plugin stuff after this line
  1. Установка плагинов

Заходим в vim и запускаем команду :PluginInstall

Для установки плагинов из командной строки: vim +PluginInstall +qall

  1. Команды Vundle
  • :PluginList - список настроенных плагинов
  • :PluginInstall - устанавливает плагины (с добавленем ! - обновляет)
  • :PluginUpdate - обновляет плагины
  • :PluginSearch foo - ищет foo (с добавленем ! обновляет локальный кэш)
  • :PluginClean - подтверждает удаление неиспользуемых плагинов (добавить ! для автоматического подтверждения удаления)
  • tpope/vim-fugitive - :Git commit, :Git rebase -i и другие команды git;
  • tpope/vim-commentary — позволяет закомментировать код: командой gcc — строку, а командой gc — выделенный фрагмент в визуальном режиме;
  • tpope/vim-surround
  • ambv/black
  • nvie/vim-flake8
  • scrooloose/nerdtree
  • davidhalter/jedi-vim
  • mitsuhiko/vim-jinja
  • git://git.wincent.com/command-t.git
  • rstacruz/sparkup'
  • flazz/vim-colorschemes
1
set cursorline  " выделять строку, на которой находится курсор
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
" установить tab равным 4 пробелам
set tabstop=4  " set ts=4
" при использовании команд >> или << сдвигать строки на 4 пробела
set shiftwidth=4
set smarttab
" преобразование tab-ов в пробелы
set expandtab
"4 пробела в табе
set softtabstop=4
" Автоотступ при переходе на следующую строку при написании кода
set autoindent
" включить подсветку синтаксиса Python
let python_highlight_all = 1
" Включаем 256 цветов в терминале, мы ведь работаем из иксов?
" Нужно во многих терминалах, например в gnome-terminal
set t_Co=256
" Перед сохранением вырезаем пробелы на концах (только в .py файлах)
autocmd BufWritePre *.py normal m`:%s/\s\+$//e ``
" В .py файлах включаем умные отступы после ключевых слов
autocmd BufRead *.py set smartindent cinwords=if,elif,else,for,while,try,except,finally,def,class
syntax on "Включить подсветку синтаксиса syntax enable
set nu "Включаем нумерацию строк
set showmatch " показывать парную скобку для [] {} и ()
" set cursorline " выделять строку, на которой находится курсор
set mousehide "Спрятать курсор мыши когда набираем текст
set mouse=a "Включить поддержку мыши
set termencoding=utf-8 "Кодировка терминала
set novisualbell "Не мигать
set t_vb= "Не пищать! (Опции 'не портить текст', к сожалению, нету)
" Удобное поведение backspace
set backspace=indent,eol,start whichwrap+=<,>,[,]
" Вырубаем черточки на табах
set showtabline=1
" Переносим на другую строчку, разрываем строки
set wrap
set linebreak
" Вырубаем .swp и ~ (резервные) файлы
set nobackup
set noswapfile
set encoding=utf-8 " Кодировка файлов по умолчанию
set fileencodings=utf8,cp1251
set clipboard=unnamed
set ruler
set hidden
nnoremap <C-N> :bnext<CR>
nnoremap <C-P> :bprev<CR>
nnoremap <F3> :NERDTreeMirror<CR>
nnoremap <F3> :NERDTreeToggle<CR>

" Выключаем звук в Vim
set visualbell t_vb=
"Переключение табов по CMD+number для MacVim
if has("gui_macvim")
  " Press Ctrl-Tab to switch between open tabs (like browser tabs) to
  " the right side. Ctrl-Shift-Tab goes the other way.
noremap <C-Tab> :tabnext<CR>
noremap <C-S-Tab> :tabprev<CR>
  " Switch to specific tab numbers with Command-number
noremap <D-1> :tabn 1<CR>
noremap <D-2> :tabn 2<CR>
noremap <D-3> :tabn 3<CR>
noremap <D-4> :tabn 4<CR>
noremap <D-5> :tabn 5<CR>
noremap <D-6> :tabn 6<CR>
noremap <D-7> :tabn 7<CR>
noremap <D-8> :tabn 8<CR>
noremap <D-9> :tabn 9<CR>
" Command-0 goes to the last tab
noremap <D-0> :tablast<CR>
endif
set guifont=Monaco:h18
colorscheme OceanicNext

nnoremap <Esc>j :m .+1<CR>==
nnoremap <Esc>k :m .-2<CR>==
inoremap <Esc>j <Esc>:m .+1<CR>==gi
inoremap <Esc>k <Esc>:m .-2<CR>==gi
vnoremap <Esc>j :m '>+1<CR>gv=gv
vnoremap <Esc>k :m '<-2<CR>gv=gv

Источники12