vim:cheat_sheet
Это старая версия документа!
# Шпаргалка по Vim ## Общее
| :help keyword | - открыть помощь по ключевому слову |
| :o file | - открыть file |
| :sav file | - сохранить весь текщий буфер как file |
| :close | - закрыть текущую панель |
| K | - открыть справочное руководство для слова под курсором |
## Перемещение курсора
| h | - передвинуть курсор влево |
| j | - передвинуть курсор на одну фактическую строку вниз |
| k | - передвинуть курсор на одну фактическую строку вверх |
| l | - передвинуть курсор вправо |
| gj | - передвинуть курсор на одну видимую строку вниз |
| gk | - передвинуть курсор на одну видимую строку вверх |
| H | - переместиться к началу экрана |
| M | - переместиться к середине экрана |
| L | - переместиться к концу экрана |
| w | - переместиться вперед на начало слова |
| e | - переместиться вперед на конец слова |
| b | - переместиться назад на начало слова |
| % | - переместиться к парному символу (по умолчанию поддерживаются: '()', '{}', '[]' - подробнее по команде :h matchpairs в vim) |
| 0 | - переместиться на начало строки |
| $ | - переместиться на конец строки |
| gg | - переместиться на первую строку документа |
| G | - переместиться последнюю строку документа |
| 5G | - переместить на пятую строку |
| } | - переместиться к следующему параграфу (или функции/блоку при редактировании кода) |
| { | - переместиться к предыдущему параграфу (или функции/блоку при редактировании кода) |
| Ctrl + b | - переместиться назад на целый экран |
| Ctrl + f | - переместиться вперед на целый экран |
| Ctrl + d | - переместиться вперед на половину экрана |
| Ctrl + u | - переместиться назад на половину экрана |
## Режим вставки - вставка/добавление текста
| i | - вставка перед курсором |
| I | - вставка в начало строки |
| a | - вставка (добавление) после курсора |
| A | - вставка (добавление) в конец строки |
| o | - добавление новой строки под текущей |
| O | - добавление новой строки над текущей |
| ea | - вставка (добавление) после конца слова |
| Esc | - выход из режима вставки |
## Редактирование
| r | - заменить один символ |
| J | - присоединить нижнюю строку к текущей |
| cc | - заменить всю строку |
| cw | - заменить всё текущее слово |
| c$ | - заменить до конца строки |
| s | - удалить символ и заменить текст |
| S | - удалить строку и заменить текст (то же что cc) |
| xp | - переставить две буквы (удалить и вставить) |
| u | - отменить |
| Ctrl + r | - применить последнее отменённое изменение |
| . | - повторить последнюю команду |
## Вырезать и вставить
| yy | - скопировать строку |
| 2yy | - скопировать 2 строки |
| yw | - скопировать слово |
| y$ | - скопировать до конца строки |
| p | - вставить буфер обмена после курсора |
| P | - вставить буфер обмена перед курсором |
| dd | - удалить (вырезать) строку |
| 2dd | - удалить (вырезать) 2 строки |
| dw | - удалить (вырезать) слово |
| D | - удалить (вырезать) до конца строки |
| d$ | - удалить (вырезать) до конца строки |
| x | - удалить (вырезать) символ |
## Копирование/вставка из системного буфера обмена
| :set paste | - вход в режим вставки |
| :set nopaste | - выход из режим вставки |
| Ctrl+Shift+V | - вставить в файл, если в режиме вставки; Command+Shift+V для Mac |
## Поиск и замена
| /pattern | - поиск шаблона |
| ?pattern | - обратный поиск шаблона |
| \vpattern | - 'very magic' режим: все не алфавитно-цифровые символы интерпретируются как специальные (экранирование не требуется) |
| n | - повторить поиск в том же направлении |
| N | - повторить поиск в обратном направлении |
| :%s/old/new/g | - заменить все вхождения шаблона в файл на указанное значение |
| :%s/old/new/gc | - заменить все вхождения шаблона в файл на указанное значение с подтверждением |
| :noh | - отключить подсвечивание результатов поиска |
### Поиск в нескольких файлах
| :vimgrep /pattern/{file} | - поиск по шаблону в нескольких файлах |
| :cn | - переместиться к следующему совпадению |
| :cp | - переместиться к предыдущему совпадению |
| :copen | - открыть окно со списком результатов |
## Сворачивание
| zf#j | - создает свертку от текущей позиции до # строк вниз |
| zf/подстрока | - создает свертку от текущей позиции и до первой найденной подстроки |
| v/V и zf | - выделение блока и создание свертки |
### Команды для управления:
| zc | - свернуть блок |
| zo | - развернуть блок |
| zM | - закрыть все блоки |
| zR | - открыть все блоки |
| za | - инвертирование (если открыто – закрыть, если закрыто – открыть) |
| zj | - переход к следующей свертке |
| zk | - переход к предыдущей свертке |
| zd | - удалить свертку под курсором |
| zD | - удалить все свертки |
| [z | - перейти к началу текущей свертки |
| ]z | - перейти к концу текущей свертки |
После закрытия Vim все свертки забываются, для сохранения сверток в открытом файле используется команда :mkview, для загрузки - :loadview.
## Работа с несколькими файлами
| :e file | - редактировать файл в новом буфере |
| :bnext либо :bn | - перейти к следующему буферу |
| :bprev либо :bp | - перейти к предыдущему буферу |
| :bd | - удалить буфер (закрыть файл) |
| :ls | - список всех открытых буферов |
| :sp file | - открыть файл в новом буфере и разделить окно |
| :vsp file | - открыть файл в новом буфере и вертикально разделить окно |
| Ctrl + ws | - разделить окно |
| Ctrl + ww | - переключение окон |
| Ctrl + wq | - закрыть окно |
| Ctrl + wv | - разделить окно вертикально |
| Ctrl + wh | - переместить курсор в левое окно (вертикально разделение) |
| Ctrl + wl | - переместить курсор в правое окно (вертикальное разделение) |
| Ctrl + wj | - переместить курсор в окно ниже (горизонтальное разделение) |
| Ctrl + wk | - переместить курсор в окно выше (горизонтальное разделение) |
### Вкладки
| :tabnew либо :tabnew file | - открыть файл в новой вкладке |
| Ctrl + wT | - переместить текущее окно в собственную вкладку |
| gt либо :tabnext либо :tabn | - переключиться на следующую вкладку |
| gT либо :tabprev либо :tabp | - переключиться на предыдущую вкладку |
| #gt | - переключить на вкладку номер # |
| :tabmove # | - переместить текущую вкладку на # позицию (нумерация с 0) |
| :tabclose либо :tabc | - закрыть текущую вкладку и все её окна |
| :tabonly либо :tabo | - закрыть все вкладки кроме текущей |
| :tabdo command | - выполнить command на всех вкладках (к примеру :tabdo q - закрывает все открытые вкладки) |
## Регистры
| :reg | - показать содержимое регистров |
| «xy | - поместить содержимое в регистр x |
| «xp | - вставить содержимое регистра x |
## Метки
:marks - список меток
ma - установить метку A на текущей позиции
`a - переместиться к метке A
y`a - скопировать до метки A
/var/www/html/dokuwiki/data/attic/vim/cheat_sheet.1701370330.txt.gz · Последнее изменение: (внешнее изменение)
