Самые необходимые команды редактора VIM
ctrl + c вместо Esc
d3d y3y - строки
d3w y3w - слова
d3l y3l - символы
d3l - удалить 3 символа
y3l - скопировать 3 символа
gd - перейти от места использования переменной к её локальному объявлению
di" - удалить внутри кавычек
dit - удалить содержимое внутри тега
daw - удалить всё слово (независимо от того, в какой части слова стоит курсор)
vim -o 01.txt 02.txt 03.txt - откроет с разделением экрана 3 файла (горизонтально)
vim -O 01.txt 02.txt 03.txt - откроет с разделением экрана 3 файла (вертикально)
:qall выйти из всех окон
:wall сохранить во всех окнах
:wqall сохранить и выйти из всех окон
:qall! выйти из всех окон несмотря на изменения
:!ls - выполнить команду в оболочке
shift + i - добавить в начале строки
shift + a - добавить в конце строки
vim +200 text.txt - открыть файл и сразу перейти к строке 200
ctrl + d - перемещение вниз по документу
ctrl + u - перемещение вверх по документу
gg - на первую строку
shift + g - на последнюю строку
20gg - на строку 20
f<символ> - переместиться на ближайший символ f, - к запятой, fk - к букве k
r<символ> - замена символа под курсором на указанный символ
shift + R - режим замены (insert-режим)
:set number - включить нумерацию строк
:set nonumber - отключить нумерацию строк
e - перемещение в конец слова
b - перемещение в начало слова
^ - переместиться в начало строки
$ - переместиться в конец строки
x - удалить символ под курсором
dw - удалить слово (от курсора до пробела или конца строки)
dd - удалить текущую строку
d $ - удалить символы от курсора до конца строки
J - слить следующую строку с текущей (удалить перевод строки)
i - начать ввод текста с позиции перед текущим симоволом (insert)
a - начать ввод текста после текущего симовола (append)
o - вставить пустую строку после текущей и начать ввод текста
O - то же, но строка вставляется перед текущей
. - повторить последнюю команду
u - отменить последнюю команду
U - отменить все изменения внесённые в текущую строку
h - влево, j - вниз, k - наверх, l - вправо
:qa! - выход без сохранения изменений
vim file.txt - откроет и создаст файл, если его нет
Esc - выход из режима ввода в режим команд
/ Enter - поиск слова
/ Enter - повторный поиск
? Enter - поиск в обратном направлении
:w - сохранить редактируемый файл
:w - записать файл под новым именем
:w! - сохранить, игнорируя (по возможности) флаг readonly
:wq - сохранить и выйти из vim
:q - выйти из vim
:q! - выйти из vim без сохранения, сбросив сделанные изменения
:r - прочитать содержимое файла name.txt и вставить его в редактируемый текст
:e - начать редактирование ещё одного файла
:ls - показать список редактируемых файлов (активных буферов)
:b - перейти к буферу номер
:245 - перейти на строку (в примере 245 строка) - или 245gg
ctrl + ^ - переход между редактируемыми файлами
V - выделение блока из целых строк
v - выделение блока из произвольного количества символов (границы задаются клавишами: h, j, k, l)
Комментирование:
шаг 1. визуальный режим: Shift + v - построчное выделение строк
шаг 2. командный режим: :'<,'>s/^/#/ - комментирование выделенных строк.
d - удалить выделенный блок
y - скопировать выделенный блок
(d, y - помещает текст в специальный буфер)
p - вставить содержимое буфера (после курсора)
P - перед курсором
Все удаляющие команды помещают текст в буфер (x, dd, dw, d $, и т.п.)
yy - копировать строку
yw - копировать слово под курсором
y $ - копировать от курсора до конца строки
:%s/foo/bar/gi - заменить foo на bar (замена текста в файле)
:syntax on - включить подсветку кода
:syntax off - выключить подсветку кода
:set wrap - перенос строк
:set nowrap - запретить перенос строк
8 i foo Esc - создаст 8 копий введённого текста (8 - это для примера)
vip - выделить параграф
viw - выделить слово
vi( - выделить всё между ближайшими круглыми скобками, аналогично vi" - кавычки, vi{
va( - выделить всё между ближайшими круглыми скобками, включая сами скобки, аналогично va" - кавычки, va{
v2j - выделить на две строки вниз
vit - выделить то, что между тегами
vat - выделить вместе с тегами, выделится вся конструкция вместе с тегами
dip - вырезать параграф
di( - вырезать содержимое круглых скобок
da( - вырезать содержимое круглых скобок и сами скобки
y2y - скопировать две строки
yiw - скопировать слово
vt, - выделить всё до ближайшей запятой (или любого символа, который указать)
5dd - удалить 5 строк (или любое другое число)
" add - вырезать строку в буфер a
"ap - вставить из буфера a
5j - переместиться на 5 строк вниз
cw - заменить слово
c2w - заменить 2 слова
cl - заменить символ
c4l - заменить 4 символа
с $ - заменить всё до конца строки
g~~ - инвертировать регистр (без «g» применяется к символу под курсором)
( - начало предложения
) - конец предложения
{ - начало абзаца
} - конец абзаца
>> - увеличить отступ
<< - уменьшить отступ
gggqG - заставляет Vim переформатировать весь текст
:sh - открыть терминал (после выхода ctrl+d происходит возврат обратно в редактор)
Макросы:
qa - начать запись в регистр a
q - закончить запись
@a - воспроизвести запись из регистра a
:split (или :sp)
:vsplit (или :vsp) - ещё одно окно рядом
ctrl + w ctrl + w - перейти на следующее окно
:split или Ctrl+w s — добавляет в сессию Vim горизонтальное окно
:vsplit или Ctrl+w v — добавляет в сессию Vim вертикально окно
:split filename — добавляет в сессию Vim горизонтальное окно и загружает в него filename
:vsplit filename — добавляет в сессию Vim вертикальное окно и загружает в него filename
Ctrl+w h — переключает на левое окно, относительно текущего
Ctrl+w l — переключает на правое окно, относительно текущего
Ctrl+w j — переключает на нижнее окно, относительно текущего
Ctrl+w k — переключает на верхнее окно, относительно текущего
Ctrl+w Ctrl+w — переключает на следующее окно
Ctrl+w r — передвигает окна по часовой стрелке
Ctrl+w R — передвигает окна против часовой стрелки
Ctrl+w c — закрывает текущее окно
Открыть файлы во вкладках
$ vim -p filename1 filename2 filename3
Открыть файл во вкладке
:tabnew filename
Команда gt переключит на следующую вкладку, а команда gT — на предыдущую.
w - следующее слово
b - предыдущее слово
0 - начало строки
$ - конец строки
H - в верхний левый угол экрана
M - на первый символ середины экрана
L - правый нижний угол (последняя строка на экране)
dL - удалить с текущей строки до нижней строки экрана
dH - удалить с текущей строки до верхней строки экрана
Полезно будет ещё пройти vimtutor
Ещё:
http://www.moolenaar.net/habits_ru.html
http://zzapper.co.uk/vimtips.html
https://ru.stackoverflow.com/search?q=vim
http://gnu.su/plugins/forum/forum_viewtopic.php?803.last
http://wiki.solab.rshu.ru/Vim_%D1%83%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA
Мои плагины Vim
Поиск плагинов:
https://github.com/vim-scripts/
http://vim-scripts.org/vim/scripts.html
http://vimawesome.com/
Установка менеджера пакетов Vundle ( https://github.com/VundleVim/Vundle.vim ):
git clone https://github.com/VundleVim/Vundle.vim ~/.vim/bundle/vundle
Добавить в ~/.vimrc
set nocompatible
filetype off
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
filetype plugin indent on
Добавить в ~/.vimrc
Plugin 'scrooloose/nerdtree'
Plugin 'kien/ctrlp.vim'
Plugin 'mileszs/ack.vim'
Plugin 'SirVer/ultisnips'
Plugin 'scrooloose/syntastic'
Plugin 'AutoComplPop'
Plugin 'motemen/git-vim'
Plugin 'majutsushi/tagbar'
Plugin 'DfrankUtil'
Plugin 'vim-scripts/vimprj'
Plugin 'thinca/vim-template'
Plugin 'mattesgroeger/vim-bookmarks'
Plugin 'mattn/emmet-vim'
Plugin 'freitass/todo.txt-vim'
Plugin 'rlofc/vorg'
Plugin 'auxiliary/vim-layout'
Plugin 'Lokaltog/vim-powerline'
Plugin 'tpope/vim-rails'
Plugin 'vim-ruby/vim-ruby'
Plugin 'slim-template/vim-slim'
Plugin 'tpope/vim-bundler'
Plugin 'thoughtbot/vim-rspec'
Plugin 'xmisao/rubyjump.vim'
Plugin 'vim-rubyformat'
Plugin 'jvanja/vim-bootstrap4-snippets'
Plugin 'Chiel92/vim-autoformat'
Набрать в режиме команд Vim:
:source ~/.vimrc
:PluginInstall
Как добавить локальный репозиторий:
Bundle '~/my/plugin'
Если вы хотите избавиться от плагина, то удалите его из вашего .vimrc (или закомментируйте). Затем команда :BundleClean удалит все плагины, которые не прописаны в .vimrc
По теме:
http://jenyay.net/Programming/VimPlugins2
http://chuwy.me/vim-cheatsheet.html
Vim Awesome
https://vimawesome.com/
Tutorial Emmet for VIM
http://vimawesome.com/plugin/emmet-vim
https://raw.githubusercontent.com/mattn/emmet-vim/master/TUTORIAL
Установить тёмную тему Vim — molokai
ШАГ 1
Файл https://krdprog.ru/materials/molokai.vim поместить в каталог ~/.vim/colors/
ШАГ 2
В файле ~/.vimrc добавить 2 строки:
set t_Co=256
color molokai
ШАГ 3
Перезагрузить Vim
Настройка редактора vim через файл ~/.vimrc
syntax on
set number
set t_Co=256
color molokai
set linebreak
set showcmd
set title
set ignorecase
set hlsearch
set mouse=a
set laststatus=2
set completeopt=menu
set textwidth=80
set wrap
set whichwrap=b,s,<,>,[,],l,h
set tabstop=2
set shiftwidth=2
set autoindent
set smartindent
setlocal cinwords=if,elif,else,for,while,try,except,finally,def,class
set cursorline
set encoding=utf-8
set termencoding=utf-8
set mps+=<:>
for prefix in ['i', 'n', 'v']
for key in ['', '', '', '']
exe prefix . "noremap " . key . " "
endfor
endfor
set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [POS=%04l,%04v]\ [LEN=%L]