VIM
Управление файлами
| :e | перезагрузить файл |
| :q | выйти |
| :q! | выйти без сохранения изменений |
| :w | записать файл |
| :w {file} | написать новый файл |
| :x | записать файл и выйти |
Навигация
| k | вверх |
| h | влево |
| l | вправо |
| j | вниз |
| w | следующее начало слова |
| W | следующее начало слова, разделенного пробелами |
| е | следующий конец слова |
| E | следующий конец слова, разделенного пробелами |
| b | предыдущее начало слова |
| B | предыдущее начало слова, разделенного пробелами |
| 0 | начало строки |
| $ | конец строки |
| gg | перейти к первой строке файла |
| G | перейти в конец файла |
| gk | перейти на одну отображаемую строку вниз |
| gj | перейти на одну строку вверх |
Вставка
| а | добавить после курсора |
| А | добавить в конец строки |
| i | вставить перед курсором |
| I | вставить в начало строки |
| о | создать новую строку под курсором |
| О | создать новую строку над курсором |
| R | войдите в режим вставки, но замените вместо вставки символов |
| :r {file} | вставить из файла |
Редактирование
| u | отменить |
| yy | копировать (копировать) строку |
| у{motion} | выдернуть текст, который перемещается {motion} |
| p | вставить после курсора |
| P | вставить перед курсором |
| <Del> или x | удалить символ |
| dd | удалить строку |
| d{motion} | удалить текст, над которым перемещается {motion} |
Искать и заменить
| :s/foo/bar/ | замените первое совпадение ‘foo’ на ‘bar’ только в текущей строке |
| :s/foo/bar/g | заменить все совпадения (флаг g) с ‘foo’ на ‘bar’ только в текущей строке |
| :%s/foo/bar/g | заменить все совпадения ‘foo’ на ‘bar’ во всем файле (:% s) |
| :%s/foo/bar/gc | просить подтверждать вручную (флаг c) каждую замену |
Несколько окон
| :e filename | редактировать другой файл |
| :split filename | разделить окно и загрузить другой файл |
| ctrl-w up arrow | переместить курсор вверх по окну |
| ctrl-w ctrl-w | переместить курсор в другое окно (цикл) |
| ctrl-w_ | развернуть текущее окно |
| ctrl-w= | сделать все одинакового размера |
| 10 Ctrl-W+ | увеличить размер окна на 10 строк |
| :vsplit file | вертикальный разрез |
| :sview file | то же, что и split, но только для чтения |
| :hide | закрыть текущее окно |
| :only | держи только это окно открытым |
| :ls | показать текущие буферы |
| :b 2 | открыть буфер # 2 в этом окне |