воскресенье, 29 ноября 2009 г.

Клавиатурные сочетания VIM. Шпаргалка.

Оригинал: Graphical vi-vim Cheat Sheet and Tutorial
Дата публикации: Март 2006.
Свободный перевод: Сергей Татарников.

Базовое редактирование.

 

Основное:
h,j,k,l — клавиши управления курсором. Используйте их как обычные left, down, up, right.
i — вход в режим ввода. Текст будет вводится с позиции под курсором.
a — то же, но текст будет вводится с позиции после курсора.
A — то же, но текст будет вводится после конца строки.
x — стирает символ под курсором.
X — стирает символ перед курсором.
Примечание:
Режим ввода на самом деле очень похож на обычный редактор, вы можете использовать курсор / клавиши перемещения / Backspace, Delete ...
Дополнительно:
u - отменить одно изменение.
U - отменить все последние изменения на одной строке.
C-R - заново внести раннее отмененные изменения.
$ - перемещение в конец строки.
^ - перемещение к первому непробельному символу строки.
o - начать новую строку под курсором и перейти к вставке текста.
O - начать новую строку над курсором и перейти к вставке текста.
Перемещение по словам:
'Слово' состоит из последовательности букв, цифр и символов подчёркивания, а
также других непробельных символов. 'Слова' разделяются пробельными символами
(пробелами, табуляцией, символами конца строки ).
'СЛОВО' состоит из последовательности непробельных символов. 'СЛОВО' разделяется
пробелами. Пустая строка также считается как 'словом', так и 'СЛОВОМ'.
w - перемещение на 'словo' вперёд.
W - перемещение на 'СЛОВО' вперёд.
e - перемещение вперёд к концу 'слова', на которое указывает.
E - перемещение вперёд к концу 'СЛОВА', на которое указывает.
b - перемещение на 'слово' назад.
B - перемещение на 'СЛОВО' назад.
r{симв} - заменить символ в позиции курсора на символ {симв}.
:w - записать весь буфер в текущий файл.
:q - закрыть текущее окно.



Операторы и повторения.

 

Основное:
f{символ} - Перейти к следующему совпадению с заданным {символом}. Курсор помещается непосредственно в позицию указанного {символа}.
F{символ} - Перейти к предыдущему совпадению с заданным {символом}.     Курсор помещается непосредственно в позицию    указанного {символа}.
t{символ} - Перейти в позицию перед следующим совпадением с указанным {символом}. Курсор помещается слева от {символа}.
T{символ} - Перейти в позицию после предыдущего совпадения с указанным {символом}.
d{перемещение} - Удалить текст, над которым происходит {перемещение}. Перемещением может служить любой оператор перемещения (слово, параграф, до конца буфера и.т.д.).
Примеры:
dw — удалить слово.
df- -  удалить до символа «-» включительно.
c — также как d, но переходит в режим ввода.
.(точка) - Повторное выполнение последнего изменения (ввод текста, удаление, изменение и.т.д.). Может применяться на другом месте.

Дополнительно:
Можно указать любой команде/перемещению сколько раз повторить:
2dw или d2w — Удалить 2 слова.
d2t, - удалить до 2 символа «,».
3dTh — удалить до 3 символа «h» перед курсором.
cc или dd — удвоение команд c и d, приводит к удалению всей строки.
v - Перейти в посимвольный Визуальный режим.
V - Перейти в построчный Визуальный режим.
CTRL-V - Перейти в режим Визуального Блока.


Копирование и вставка.



Основное:
y — копирование любого выделенного фрагмента 'yank'.
p -  вставка, ранее скопированного фрагмента 'paste' (если символы, то справа от курсора, если строка, то строчкой ниже.
P — то же, но справа или строчкой выше.
yy — копирование всей строки.
y — работает также и визуальном режиме.
d, c, x — текст удален
Дополнительно:
" и a-z — перед командами копирования/удаления помещает текст в именованный регистр, перед командой вставки — вставляет из именованного регистра.
"A-Z перед командами копирования/удаления добавляет (присоединяет) к буферу.
"* или "+ - работает с системным буфером обмена.
o - вставляет пустую строку после текущей строки.
O - вставляет  пустую строку перед текущей строкой.

Поиск.



Основное:
/ - основная команда поиска. Напечатайте текст, который хотите найти, после слэша и нажмите Enter. ЭтПоиск.
Основное:
/ - основная команда поиска. Напечатайте текст, который хотите найти, после слэша и нажмите Enter. Эта команда может использоваться с модификаторами после выражения или в визуальном режиме.
? - то же самое в обратном направлении.
n — повтор последнего поиска.
N — то же в обратном направлении.
Возможно использование при поиске регулярных выражений. Так выражение 'a*b' означает найти от нуля и больше символов 'a' подряд перед символом 'b', выражение '^abc' означает найти 'abc' в начале строки, [0-9] ищет цифру от 0 до 9 и т.д.
Дополнительно:
* - ищет образец под курсором.
# - тоже в обратном направлении.

Закладки и макросы.




Закладки:
m — В сочетании с a-z — поставить закладку в месте курсора.
` - В сочетании с a-z — перейти на соответствующую закладку.
' - И буква -  перейти на строку с закладкой.
A-Z — обозначаются глобальные закладки, a-z — закладки дла текущего буфера.
`. - перейти в место последней модификации.
Макросы:
q — В сочетании с a-z — начать запись макроса.
q — Повторно — остановить запись макроса.
@ - И буква — выполнить макрос.
@@ - Выполнить повторно макрос.

Прочие перемещения.



% - Перемещение между соответственными парами скобок '()', '[]' и т.д.
H, M, L — Перемещение в начало/середину/конец экрана.
G — перемещение в конец файла или с номером, например '3G', на строку 3.
-/+ - перемещение на предыдущую/следующую строку.
K — перемещение на help (vim help, man-pages и т.д.) соответственно слову под курсором.
( - Перемещение на заданное [число] предложений назад.
) - Перемещение на заданное [число] предложений вперёд.
{ - Перемещение на заданное [число] абзацев назад.
} - Перемещение на заданное [число] абзацев вперёд.
]] - Перемещение на заданное [число] разделов вперёд или к следующему '{' в первой колонке.
[[ - Перемещение на заданное [число] разделов назад или к предыдущему '{' в первой колонке.

Прочие команды.


Основное:
J — Объединить следующую строку с текущей или все выделенные строки.
r{симв} - Заменить символ в позиции курсора на символ {симв}. Если {симв} это или , то символ в позиции курсора заменяется на перенос строки. Для замены символа на настоящий символ используйте CTRL-V . CTRL-V позволяет осуществить замену на символ . Если вы укажете в качестве параметра [число], то Vim заменит     [число] символов текста на [число] символов {симв}. Однако, если в качестве {симв}  используется    или , то Vim подставит только один : например, по команде "5r" произойдёт замена пяти символов на один перенос строки.
С — короткая замена с$, изменяет все до конца строки.
D — короткая замена d$, удаляет все до конца строки.
Y — короткая замена yy, копирует текущую строку.
s — удаляет текущий символ и  переходит в режим ввода.
S — удаляет текущую строку и переходит в режим ввода.
Дополнительно:
<{перемещение} - Сдвинуть строки, указанные в {перемещении}, на величину одного 'shiftwidth' влево.
 >{перемещение} - Сдвинуть строки, указанные в {перемещении}, на величину одного 'shiftwidth' вправо.
={перемещение} - Пропустить строки, над которыми произойдёт {перемещение} через внешнюю программу, на которую указывает значение опции 'equalprg'. Если значение опции 'equalprg' не задано (по умолчанию), то используется внутренняя функция форматирования отступов |C-отступы|. Однако, если задано значение опции 'indentexpr', то оно будет  использоваться вместо внутренней функции.
Все эти команды работают в визуальном режиме или с помощью повторения (>> и т.д.).
~ - изменить регистр символа в позиции курсора и переместить курсор вправо. При заданном параметре [число], изменить регистр указанного количества символов.

Комментариев нет:

Отправить комментарий