Сохранить эту памятку по Vim

Сохранить эту памятку по Vim

7 февраля 2023 г.

В этом руководстве я расскажу об основных командах, которые необходимо знать для эффективной работы в Vim. Я рекомендую вам открыть файл с помощью Vim/Neovim и попробовать команду, читая его.

3 наиболее часто используемых режима в Vim:

* Обычный режим: используется для перемещения/редактирования текста. При нажатии <ESC> в других режимах вы вернетесь в обычный режим. * Режим командной строки: используется для выполнения команд (например: сохранить файл, открыть файл справки). * Режим вставки: используется для вставки текста.

Вы можете узнать больше о каждой команде в файле справки Vim. Откройте его, введя :h {имя команды и нажав Enter.

Обычный режим

Для начала давайте научимся перемещаться в Vim.

Движения вверх-вниз

Узнайте больше с помощью :h движения вверх-вниз.

k           go up
j           go down
gg          go to first line
G           go to last line

Движения влево-вправо

Узнайте больше с :h движениями влево-вправо.

h           go left 
l           go right 
0           go to the first character of the line
^           go to the first non-blank character of the line
$           go to the end of the line
f{char}     go to the occurrence of {char} to the right
F{char}     go to the occurrence of {char} to the left
t{char}     go till before the occurrence of {char} to the right
T{char}     go till after the occurrence of {char} to the left
;           repeat latest f, t, F or T
,           repeat latest f, t, F or T in opposite direction

Движения слов

Узнайте больше с помощью :h word-motions.

w           go one word forward
W           go one word forward, ignore symbol
e           go forward to the end of word
E           go forward to the end of word, ignore symbol
b           go one word backward
B           go one word backward, ignore symbol
ge          go backward to the end of word
gE          go backward to the end of word, ignore symbol

Получив возможность перемещаться в Vim, давайте научимся редактировать текст. Схема редактирования выглядит следующим образом:

operator + motion or text-object

Оператор

Подробнее об операторе :h.

d           delete
y           yank(copy) into register
(after delete or yank you can use `p` to paste)
c           change(delete and start insert)
~           swap case
=           format

Несколько примеров оператора + движение:

cw          change a wrod
dt(         delete till the first occurrence of (
y5j         yank to 5 lines down

Исключения:

dd          delete current line
D           delet until the end of the line
yy          yank current line
Y           yank until the end of the line
cc          change current line
C           change until the end of the line
==          format current line

Текстовые объекты

Узнайте больше с :h text-objects.

iw          inside word
aw          around word 

ip          inside paragraph
ap          around paragraph 

it          inside tag block (for HTML and XML)
at          around tag block (for HTML and XML)

i{          inside {}
a{          around {}
...(you can apply this to any pair block [] () <> '' "" ``)

Некоторые примеры оператора + текстовый объект:

ci"         change inside ""
dap         delete around paragraph
=i{         format the code inside {}

Примечание. Если текстовый объект представляет собой парный блок, Vim найдет ближайший справа от курсора. Этот прием очень полезен.

Пример (^ указывает на позицию вашего курсора):

#include <stdio.h>

int main(void) {
  printf("test");
^
  return 0;
}

Вы можете использовать ci" для изменения текста внутри пары "", даже если ваш курсор находится в начале строки.

Прокрутка

Узнайте больше с помощью :h прокрутки.

CTRL-U       scroll window half a screen upwards
CTRL-D       scroll window half a screen downwards
CTRL-B       scroll window a screen upwards
CTRL-F       scroll window a screen downwards

Вставка

Подробнее о вставке :h.

i           insert text before the cursor
I           insert text before the first non-blank in the line
a           append text after the cursor
A           append text at the end of the line
o           begin a new line below the cursor and insert text
O           begin a new line above the cursor and insert text

Другое

Вы можете добавить число перед командой, чтобы выполнить ее [count] раз.

Примеры: 5k поднимется на 5 строк вверх

s           delete character and start insert (synonym for cl)
S           delete line and start insert (synonym of cc)
x           delete character under the cursor
X           delete character before the cursor
u           undo
CTRL-R      redo
.           repeat last change 
ZQ          quit without checking for changes
ZZ          save current file and quit

Режим вставки

<ESC>       leave insert mode
i_CTRL-O    execute one command in Normal mode and then return to Insert mode

Режим командной строки

(<CR> означает ввод)

:w<CR>          save the current file
:q<CR>          quit
:q!<CR>         quit without checking for changes (same as ZQ)
:wq<CR>         save current file and quit (same as ZZ)
/{pattern}<CR>  search forward for the occurrence of {pattern}
?{pattern}<CR>  search backward for the occurrence of {pattern}
n               repeat the latest `/` or `?`
N               repeat the latest `/` or `?` in opposite direction

Заключительные слова

Помните, что выполнение всех этих команд занимает некоторое время. Если вы уже знакомы с этими командами, вы можете продолжить читать рабочий процесс команды vim, чтобы узнать, как перемещать /эффективно редактировать текст в Vim.

:::информация Также опубликовано здесь.

:::


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE