Схема работы vim
Выполняется из командного режима.
Изменение режима
| Команда | Описание |
|---|---|
| i | Переход в режим вставки (insert) |
| I | Переход в режим вставки с начала строки (shift+i) |
| a | Курсор вправо на 1 символ и переход режим вставки (Add) |
| A | Переход в режим вставки с конца строки (shift+a) |
| o | Переход в режим вставки с новой строки |
| O | Переход в режим вставки с новой строки над текущей (shift+o) |
| x | Удаление символа под курсором (eXclude) |
| r | Замена символа под курсором (Replace) |
| v | Переход в режим визуального выделения |
| V | Переход в режим визуального выделения строк |
| Esc | Переход в командный режим из любого режима |
Навигация
| Команда | Описание |
|---|---|
| h j k l | влево вниз вверх вправо |
| w | К началу следующего слова (word) |
| e | К концу следующего слова (end) |
| b | К началу слова (begin) |
| ge | К концу предыдущего слова (go to the end) |
| ^ | К началу текущей строки |
| $ | К концу текущей строки |
| ( ) | К началу и концу предложения |
| { } | К началу и концу абзаца |
| 1G G | К началу и концу файла |
Манипуляция с текстом
| Команда | Описание |
|---|---|
| u | Отменить изменения |
| daw | Удалить слово (delete a word) |
| das | Удалить предложение (delete a sentence) |
| dap | Удалить абзац (delete a paragraph) |
| dG | Удалить содержимое файла от текущего положения курсора до конца |
| d1G | Удалить содержимое файла от текущего положения курсора до начала |
| dd | Вырезать строку в буфер |
| dw | Вырезать слово в буфер |
| dl | Вырезать символ в буфер |
| yy | Копировать строку в буфер |
| yw | Копировать слово в буфер |
| yl | Копировать символ в буфер |
| caw | Изменить слово (change a word) |
| cas | Изменить предложение (change a sentence) |
| cap | Изменить абзац (change a paragraph) |
| ctx | Заменить всё до первого символа х в текущей строке (change till x) |
| c$ | Заменить всё до конца строки |
| ci( | Заменить всё между символами скобок |
| ci" | Заменить всё между символами кавычек |
| d( или y( | Вырезать или скопировать текст от текущего положения курсора до начала предложения |
| d) или y) | Вырезать или скопировать текст от текущего положения курсора до конца предложения |
| d{ или y{ | Вырезать или скопировать текст от текущего положения курсора до начала абзаца |
| d} или y} | Вырезать или скопировать текст от текущего положения курсора до конца абзаца |
| d^ или y^ | Вырезать или скопировать текст от текущего положения курсора до начала строки |
| d$ или y$ | Вырезать или скопировать текст от текущего положения курсора до конца строки |
| p | Вставить строку из буфера |
Для того, чтобы вырезать или скопировать произвольный текст нужно перейти в режим выделения с помощью v, выделить необходимый текст, нажать d для вырезки текста или y для копирования выделенного текста. Для вставки нажать p.
Расширенные команды
| Команда | Описание |
|---|---|
| :wq или ZZ или :x | Сохранить и выйти |
| :wq! | Сохранить и выйти даже если права только на чтение, но текущий пользователь является владельцем или root |
| :q! или ZQ | Выйти без сохранения |
| :e! | Отменить изменения произошедшие с открытия файла |
Поиск
Нужно нажать /, затем ввести строку, которую нужно найти в тексте, например /text и нажать Enter
По умолчанию поиск осуществляется в регистрозависимом режиме. Если нужно искать независимо от регистра - добавляется сочетание \c, например: /text\c или /\ctext
Символ / осуществляет поиск вниз от курсора, а символ ? осуществляет поиск вверх от курсора
Для продолжения поиска используются клавиши: n - продолжить поиск выше по тексту, N - продолжить поиск ниже по тексту