:h[elp] keyword - открыть помощь для keyword:sav[eas] file - сохранить как file:clo[se] - закрыть текущую панель:ter[minal] - open a terminal windowK - открыть справочное руководство для слова под курсоромTip Run vimtutor in a terminal to learn the first Vim commands.
h - передвинуть курсор влевоj - передвинуть курсор внизk - передвинуть курсор вверхl - передвинуть курсор вправоH - переместиться к началу экранаM - переместиться к середине экранаL - переместиться к концу экранаw - переместиться вперед на начало словаW - переместиться вперед на начало слова (слово может содержать пунктуацию)e - переместиться вперед на конец словаE - переместиться вперед на конец слова (слово может содержать пунктуацию)b - переместиться назад на начало словаB - переместиться назад на начало слова (слово может содержать пунктуацию)ge - jump backwards to the end of a wordgE - jump backwards to the end of a word (words can contain punctuation)% - move to matching character (default supported pairs: '()', '{}', '[]' - use :h matchpairs in vim for more info)0 - переместиться на начало строки^ - переместиться на первый непробельный символ строки$ - переместиться на конец строкиg_ - переместиться к последнему непустому символу в строкеgg - переместиться на первую строку документаG - переместиться на последнюю строку документа5gg or 5G - переместить на пятую строкуgd - move to local declarationgD - move to global declarationfx - переместиться к следующему вхождению символа xtx - переместиться перед следующим вхождением символа xFx - jump to previous occurence of character xTx - jump to after previous occurence of character x; - repeat previous f, t, F or T movement, - repeat previous f, t, F or T movement, backwards} - переместиться к следующему параграфу (или функции/блоку при редактировании кода){ - переместиться к предыдущему параграфу (или функции/блоку при редактировании кода)zz - center cursor on screenCtrl + e - move screen down one line (without moving cursor)Ctrl + y - move screen up one line (without moving cursor)Ctrl + b - переместиться назад на целый экранCtrl + f - переместиться вперед на целый экранCtrl + d - переместиться вперед на половину экранаCtrl + u - переместиться назад на половину экранаTip Добавьте число перед командой перемещения курсора для того, чтобы повторить её. Например, 4j перемещает курсор на 4 строки вниз.
i - вставка перед курсоромI - вставка в начало строкиa - вставка (добавление) после курсораA - вставка (добавление) в конец строкиo - добавление новой строки под текущейO - добавление новой строки над текущейea - вставка (добавление) после конца словаCtrl + h - delete the character before the cursor during insert modeCtrl + w - delete word before the cursor during insert modeCtrl + j - begin new line during insert modeCtrl + t - indent (move right) line one shiftwidth during insert modeCtrl + d - de-indent (move left) line one shiftwidth during insert modeCtrl + n - insert (auto-complete) next match before the cursor during insert modeCtrl + p - insert (auto-complete) previous match before the cursor during insert modeCtrl + rx - insert the contents of register xCtrl + ox - Temporarily enter normal mode to issue one normal-mode command x.Esc - выход из режима вставкиr - заменить один символR
- replace more than one character, until ESC is pressed.J - присоединить нижнюю строку к текущейgJ - join line below to the current one without space in betweengwip - reflow paragraphg~ - switch case up to motiongu - change to lowercase up to motiongU - change to uppercase up to motioncc - заменить всю строкуC - change (replace) to the end of the linec$ - заменить до конца строкиciw - change (replace) entire wordcw or ce - заменить до конца словаs - удалить символ и заменить текстS - удалить строку и заменить текст (то же что cc)xp - переставить две буквы (удалить и вставить)u - отменитьU - restore (undo) last changed lineCtrl + r - повторить. - повторить последнюю командуv - включить режим выделения текста, выделить строки, затем выполнить команду (например, y-копирование)V - включить построчный режим выделенияo - переместиться на другой конец выделенной областиCtrl + v - включить режим выделения блоковO - переместить на другой угол блокаaw - выделить словоab - блок в ()aB - блок в {}at - a block with <> tagsib - внутренний блок в ()iB - внутренний блок в {}it - inner block with <> tagsEsc - выйти из режима выделения текстаTip Instead of b or B one can also use ( or { respectively.
> - сместить текст вправо< - сместить текст влевоy - скопировать выделенный текстd - удалить выделенный текст~ - переключить регистрu - change marked text to lowercaseU - change marked text to uppercase:reg[isters] - показать содержимое регистров"xy - поместить содержимое в регистр x"xp - вставить содержимое регистра x"+y - yank into the system clipboard register"+p - paste from the system clipboard registerTip Содержимое регистров сохраняется в ~/.viminfo, и будет восстановлено при следующем запуске vim.
Tip Special registers: 0 - last yank
" - unnamed register, last delete or yank
% - current file name
# - alternate file name
* - clipboard contents (X11 primary)
+ - clipboard contents (X11 clipboard)
/ - last search pattern
: - last command-line
. - last inserted text
- - last small (less than a line) delete
= - expression register
_ - black hole register
:marks - список метокma - установить метку A на текущей позиции`a - переместиться к метке Ay`a - скопировать до метки A`0 - go to the position where Vim was previously exited`" - go to the position when last editing this file`. - go to the position of the last change in this file`` - go to the position before the last jump:ju[mps] - list of jumpsCtrl + i - go to newer position in jump listCtrl + o - go to older position in jump list:changes - list of changesg, - go to newer position in change listg; - go to older position in change listCtrl + ] - jump to the tag under cursorTip To jump to a mark you can either use a backtick (`) or an apostrophe ('). Using an apostrophe jumps to the beginning (first non-blank) of the line holding the mark.
qa - записать макрос Aq - остановить запись макроса@a - run macro a@@ - выполнить последний макросyy - скопировать строку2yy - скопировать 2 строкиyw - скопировать словоyiw - скопировать слово под курсоромyaw - скопировать слово под курсором и пространство перед или после негоy$ - скопировать до конца строкиp - вставить буфер обмена после курсораP - вставить буфер обмена перед курсоромdd - удалить (вырезать) строку2dd - удалить (вырезать) 2 строкиdw - удалить (вырезать) словоdiw - удалить (вырезать) слово под курсоромdaw - удалить (вырезать) слово под курсором и пространство перед или после негоD - удалить (вырезать) до конца строкиd$ - удалить (вырезать) до конца строкиx - удалить (вырезать) символ>> - indent (move right) line one shiftwidth<< - de-indent (move left) line one shiftwidth>% - indent a block with () or {} (cursor on brace)>ib - indent inner block with ()>at - indent a block with <> tags3== - re-indent 3 lines=% - re-indent a block with () or {} (cursor on brace)=iB - re-indent inner block with {}gg=G - re-indent entire buffer]p - paste and adjust indent to current line:w - сохранить файл, но не выходить:w !sudo tee % - сохранить файл с sudo:wq or :x or ZZ - сохранить файл и выйти:q - выйти (терпит неудачу в случае несохраненных изменений):q! or ZQ - выйти и потерять несохраненные изменения:wqa - write (save) and quit on all tabs/pattern - поиск шаблона?pattern - обратный поиск шаблона\vpattern - 'very magic' режим: все не алфавитно-цифровые символы интерпретируются как специальные (экранирование не требуется)n - повторить поиск в том же направленииN - повторить поиск в обратном направлении:%s/old/new/g - заменить все вхождения шаблона в файл на указанное значение:%s/old/new/gc - заменить все вхождения шаблона в файл на указанное значение с подтверждением:noh[lsearch] - отключить подсвечивание результатов поиска:vim[grep] /pattern/ {`{file}`} - поиск по шаблону в нескольких файлахe.g. :vim[grep] /foo/ **/*
:cn[ext] - переместиться к следующему совпадению:cp[revious] - переместиться к предыдущему совпадению:cope[n] - открыть окно со списком результатов:ccl[ose] - close the quickfix window:tabnew or :tabnew {page.words.file} - открыть файл в новой вкладкеCtrl + wT - переместить текущее окно в собственную вкладкуgt or :tabn[ext] - переключиться на следующую вкладкуgT or :tabp[revious] - переключиться на предыдущую вкладку#gt - переключить на вкладку номер #:tabm[ove] # - переместить текущую вкладку на # позицию (нумерация с 0):tabc[lose] - закрыть текущую вкладку и все её окна:tabo[nly] - закрыть все вкладки кроме текущей:tabdo command - выполнить command на всех вкладках (к примеру :tabdo q - закрывает все открытые вкладки):e[dit] file - редактировать файл в новом буфере:bn[ext] - перейти к следующему буферу:bp[revious] - перейти к предыдущему буферу:bd[elete] - удалить буфер (закрыть файл):b[uffer]# - go to a buffer by #:b[uffer] file - go to a buffer by file:ls or :buffers - список всех открытых буферов:sp[lit] file - открыть файл в новом буфере и разделить окно:vs[plit] file - открыть файл в новом буфере и вертикально разделить окно:vert[ical] ba[ll] - edit all buffers as vertical windows:tab ba[ll] - edit all buffers as tabsCtrl + ws - разделить окноCtrl + wv - разделить окно вертикальноCtrl + ww - переключение оконCtrl + wq - закрыть окноCtrl + wx - exchange current window with next oneCtrl + w= - make all windows equal height & widthCtrl + wh - переместить курсор в левое окно (вертикально разделение)Ctrl + wl - переместить курсор в правое окно (вертикальное разделение)Ctrl + wj - переместить курсор в окно ниже (горизонтальное разделение)Ctrl + wk - переместить курсор в окно выше (горизонтальное разделение)Ctrl + wH - make current window full height at far left (leftmost vertical window)Ctrl + wL - make current window full height at far right (rightmost vertical window)Ctrl + wJ - make current window full width at the very bottom (bottommost horizontal window)Ctrl + wK - make current window full width at the very top (topmost horizontal window)zf - manually define a fold up to motionzd - delete fold under the cursorza - toggle fold under the cursorzo - open fold under the cursorzc - close fold under the cursorzr - reduce (open) all folds by one levelzm - fold more (close) all folds by one levelzi - toggle folding functionality]c - jump to start of next change[c - jump to start of previous changedo or :diffg[et] - obtain (get) difference (from other buffer)dp or :diffpu[t] - put difference (to other buffer):diffthis - make current window part of diff:dif[fupdate] - update differences:diffo[ff] - switch off diff mode for current window