>>17837 Да не так уж и много надо выучить, чтобы начать довольно эффективно пользоваться.
У меня вот сохранилась шпаргалка со времен когда его осваивал - сверх этого я вроде ничего и не использую
Навигация
gg - первая строка
G - последняя строка
w - следующее слово
% - перейти на парную скобку
) и ( - перейти на начало следующего/предыдущего предложения
} и { - перейти на начало следующего/предыдущего параграфа
Ctrl + g - показать позицию в файле
Поиск
- - поиск следующего вхождения слова под курсором
# - поиск предыдущего вхождения слова под курсором
n - find next
N - find prev
/\<search_str\> - поиск отдельного слова
:set ignorecase - игнорировать регистр
:set noignorecase - не игнорировать регистр
:set hlsearch - подсвечивать все результаты поиска
:set nohlsearch - не подсвечивать все результаты поиска
ctags
Ctrl+j - найти определение
Ctrl+t - вернуться
Выделение, копирование, удаление, вставка
[n]yy - скопировать n строк
yw - скопировать все символы от курсора до конца слова
y<End> - скопировать все символы от курсора до конца строки
[n]dd - удалить n строк
[n]p - вставить содержимое буфера n раз
D - удалить все символы от начала до конца строки
P - вставить содержимое буфера перед курсором
Shift+v - выделение строк
Ctrl+v - выделение прямоугольной области
Редактирование
< и > - сдвиг выделенного блока
= - автоматическое выравнивание кода
~ - изменить регистр выделенного текста
Ctrl+d (в режиме редактирования) - удалить табуляцию
Ctrl+t (в режиме редактирования) - добавить табуляцию
u - отменить действие
Ctrl+r - повторить действие
Ctrl+n - автодополнение
U/u в "визуальном" режиме - перевод выделенного текста в верхний или нижний регистр
:r file.txt - вставить содержимое файла после курсора
:r !date -R - вставить вывод системной команды
:%s/old
string/newstring/gc - автозамена
Несколько окон
vim file1.txt file2.txt -o - горизонтальная разбивка окон
vim file1.txx file2.txt -O - вертикальная разбивка окон
:split/vsplit
:new/vnew
Вкладки в Vim
vim file1.txt file2.txt -p
:tabnew file.txt
:tabclose
gt - следующая вкладка
gT - предыдущая вкладка
Vim folding
Выделяем блок (Shift+v) и жмем zf
za - свернуть/развернуть блок
zE - удалить все фолдинги
misc
:set all - показать все опции
:help <опция>
:syntax on/off
:set syntax=perl/c/java/html/python
:colorscheme и <Tab> - выбрать цветовую схему
Чтобы при копировании из внешнего буфера Vim не применял автоотсуп,
:set paste
Затем
:set nopaste
Чтобы вернуть курсор после удаления прямоугольного блока текста на строку, на которой закончилось выделение
`]
Замена одинаковых участков строк:
Ctrl+v - выделяем прямоугольный участок кода
c - режим ввода, вводим новый код
Esc - введённый код добавится ко всем строкам