В сравнении с классическим vi Vim отличается следующими улучшениями:
| Помощь | |
|---|---|
| :help | Вывести краткую справку и завершить работу. То же, что и «-h». |
| :help j | Вывести справку по команде 'j'. |
| :help :split | Вывести справку по команде ':split'. |
| :help z* | Вывести справку по всем командам, начинающимся с 'z'. |
| <C-]> | Перейти к тэгу под курсором. |
| <C-o> | Перейти на предыдущую страницу справки. |
| <C-i> | Перейти на следующую страницу справки. |
| Отмена и повтор операции | |
| u | Отменить действие. |
| <C-r> | Восстановить отменённое действие / повторить последнюю команду редактирования. |
| :redo | Восстановить отменённое действие / повторить последнюю команду редактирования. |
| Перемещение между строками | |
| 0 | Перейти в начало текущей строки. |
| ^ | Перейти к первому непробульному символу в текущей строке. |
| $ | Перейти в конец текущей строки. |
| gg | Перейти на первую строку в файле. |
| G | Перейти на последнюю строку в файле. |
| 47G | Перейти на строку 47. |
| :47 | Перейти на строку 47 (альтернативный способ). |
| Перемещение между символами | |
| f [char] | Поиск вперёд в строке символа [char] и установка курсора на него. |
| 3f [char] | Поиск вперёд в строке третий символ [char] и установка курсора на него. |
| F [char] | Поиск назад в строке символа [char] и установка курсора на него. |
| t [char] | Поиск вперёд в строке символа [char] и установка курсора после него. |
| T [char | Поиск назад в строке символа [char] и установка курсора после него. |
| ; | Повтор поиска вперёд символа, найденного при помощи f/t/F/T. |
| , | Повтор поиска назад символа, найденного при помощи f/t/F/T. |
| Перемещение между словами и навигация в тексте | |
| w | Перейти к началу следующего слова. |
| W | Перейти к началу следующего слова, отделённого пробельными символами с двух сторон. |
| e | Перейти к концу ближайшего слова. |
| E | Перейти к концу ближайшего слова, отделённого пробельными символами с двух сторон. |
| b | Перейти к началу предыдущего слова. |
| B | Перейти к началу предыдущего слова, отделённого пробельными символами с двух сторон. |
| ( | Перейти на первую точку слева от курсора (если она есть, в противном случае на начало абзаца). |
| ) | Перейти на первую точку справа от курсора (если она есть, в противном случае на конец абзаца). |
| { | Перейти на абзац назад до пустой строки. |
| } | Перейти на абзац вперёд до пустой строки. |
| Перемещение по программному коду | |
| % | Перемещение между открытием / закрытием парных скобками: (),[] или {}. |
| [[ | Перейти к предыдущей функции. |
| ]] | Перейти к следующей функции. |
| [{ | Перейти к началу текущего блока кода. |
| ]} | Перейти в конец текущего блока кода. |
| Поиск | |
| / | Поиск. |
| ? | Поиск в обратном направлении. |
| n | Перейти к следующему совпадению. |
| N | Повторить поиск назад. |
| * | Перейти к следующему вхождению слова под курсором. |
| # | Перейти к предыдущему вхождению слова под курсором. |
| Повторения | |
| . | Повторить последнюю команду. |
| 23dd | Удалить (вырезать) 23 строки. |
| 5j | Перейти на 5 строк вверх. |
| qa | Начать запись комбинации клавиш, которая будет назначена за клавишей 'a'. |
| q | Закончить запись. |
| @a | Выполнить макрос записанный под именем 'a'. |
| 4@a | Выполнить макрос записанный под именем 'a' 4 раза. |
| Замена текста | |
| :%s/search/replace/g | Заменить все вхождения 'search' на 'replace. |
| :%s/old/new/gw | Заменить все вхождения “old” на “new” с запросом подтверждения. |
| :5,10s/search/replace/g | Заменить все вхождения 'search' на 'replace' с 5 по 10 строку. |
| :5,$s/search/replace/g | Заменить все вхождения 'search' на 'replace' начиная с 5 строки и до конца файла. |
| :%s/\(\d\+\)-\(\d\+\)\+/\1\–\2/g | Find all [number]-[number] text and replace with [number]–[number] |
| :%s/\v(\d+)-(\d+)+/\1\–\2/g | Same as last, but using magic regex. |
| :g/foo/ s/bar/BAR/g | On lines that match the regex /foo/, replace 'bar' with 'BAR'. |
| :vimgrep /^<h5/ *.html | Find lines that start with '<h5' in all HTML files in the current directory. Matches show up in the quickfix list. |
| :%s/^/hello/g | Добавить “hello” в начало каждой строки. |
| :%s/$/Harry/g | Добавить “Harry” в конец каждой строки. |
| :%s/onward/forward/gi | Заменить “onward” на “forward” с учетом регистра. |
| :%s/ *$//g | Убрать все пробелы. |
| :g/string/d | Удалить все строки, содержащие “string”. |
| :v/string/d | Удалить все строки, не содержащие “string”. |
| :s/Bill/Steve/ | Заменить первое вхождение “Bill” на “Steve” в текущей строке. |
| :s/Bill/Steve/g | Заменить все вхождения “Bill” на “Steve” в текущей строке. |
| :%s/\r//g | Убрать символ возврата каретки (Такие тексты обычно приходят от windows-пользователей). |
| :%s#>[^<]\+>##g | Очистить текст от HTML-тегов. |
| :%s/^\(.*\)\n\1$/\1/ | Удалить строки, повторяющиеся дважды. |
| Ctrl+a | Увеличить число под курсором на единицу. |
| Ctrl+x | Уменьшить число под курсором на единицу. |
| ggVGg? | Преобразовать текст в Rot13. |
| :cn | Move to next entry in the quickfix list. |
| :cp | Move to previous entry in the quickfix list. |
| Вставка | |
| i | Перейти в режим вставки в текущем положении курсора. |
| I | Переместить курсор в начало строки и перейти в режим вставки. |
| a | Переместить курсор вправо на один символ и включить режим вставки. |
| A | Переместить курсор в конец строки и включить режим вставки. |
| o | Добавить пустую строку после текущей. |
| O | Добавить строку перед текущей. |
| Удаление текста | |
| x | Удалить (вырезать) символ после курсора. |
| dw | Удалить (вырезать) текущее слово. |
| dd | Удалить (вырезать) текущую строку. |
| d^ | Удалить все символы от текущей позиции до начала строки |
| D | Удалить (вырезать) начиная с положения курсора и до конца строки. |
| d$ | |
| dt [char] | Удалить (вырезать) начиная с положения курсора и до первого вхождения символа [char]. |
| df[char] | |
| d) | Удалить (вырезать) начиная с положения курсора и до конца предложения. |
| d} | Удалить (вырезать) начиная с положения курсора и до конца адзаца. |
| di( | Удалить (вырезать) текст внутри скобок. |
| da< | Удалить (вырезать) скобки <> вокруг. |
| dit | Удалить (вырезать) текст между открывающим и закрывающим тегами. |
Не завершено!