Создал: Сергей Савельев
Создана: 23.03.2016 14:34
Статус: Редактируемая

vim

Навигация по файлу в vim

i — перейти в режим ввода с текущей позиции
I — переместиться в начало строки и перейти в режим ввода
a — перейти в режим ввода после курсора
А — переместиться в конец строки и перейти в режим ввода
o — перейти в режим ввода с новой строки под курсором
O — перейти в режим ввода с новой строки над курсором
x — удалить символ под курсором
X — удалить символ влево (удалить символ перед курсором)
v — визуальный режим для выделения
y — скопировать выделение
yy — скопировать строку
y<число>y — копирование числа строк начиная с текущей в неименованный буфер
p — вставка содержимого неименнованного буфера под курсором
P — вставка содержимого неименнованного буфера перед курсором
dd — вырезать строку
d$ — вырезать до конца строки
d^ — вырезать до начала строки
d5d — вырезать 5 строк вниз (вместо 5 можно подставить любое значение)
d — используется совместно с командами перемещения. Удаляет символы с текущего положения курсора до положения после ввода команды перемещения.
dw — удаляет символы с текущего до конца слова
diw —удаляет слово под курсором
с — команда аналогичная d, но после удаление переходит в режим ввода. Очень удобная альтернатива команде R
R — перейти в режим ввода с забиванием текста
r — заменить один символ
J — слияние текущей строки со следующей
u — отмена последней команды
. — повтор последней команды
0 («ноль») — в начало текущей строки;
^ — в начало текущей строки (к первому непробельному символу);
$ — в конец текущей строки
w — на слово вправо
b — на слово влево
W — до пробела вправо
B — до пробела влево
} — абзац вниз
{ — абзац вверх
— на страницу (экран) вниз
— на страницу (экран) верх
gg — перейти в начало файла
G — перейти в конец файла
5G — перейти на конкретную строку (5)
/ — перейти к
? — то же самое, но искать назад
n — повторить поиск
N — повторить поиск назад
[[ — в начало функции
— к месту выполнения команды [[
:e new_file — создает новый пустой файл
:w new_file — создаст файл new_file и запишет в него содержимое текущего файла, а затем продолжит работу со старый файлом
:sav filename — Сохранить как…

Замена в vim

:%s/старый/новый/g — Заменить все вхождения “старый” на “новый”
:%s/старый/новый/gw — Заменить все вхождения “старый” на “новый” с запросом подтверждения
:5,30s/старый/новый/g — Заменить все вхождения “старый” на “новый” между 5 и 30 строками
:10,$s/старый/новый/g — Заменить все вхождения “старый” на “новый” начиная с 10 строки и до конца файла
:%s/^/Приветствие/g — Добавить “Приветствие” в начало каждой строки
:%s/$/Завершение/g — Добавить “Завершение” в конец каждой строки
:%s/привет/пока/gi — Заменить “привет” на “пока” с учетом регистра
:%s/ *$//g — Убрать все пробелы
:g/погода/d — Удалить все строки, содержащие “погода”
:v/погода/d — Удалить все строки, не содержащие “погода”
:s/Дерево/Трава/ — Заменить первое вхождение “Дерево” на “Трава” в текущей строке
:s/Дерево/Трава/g — Заменить все вхождения “Дерево” на “Трава” в текущей строке
:%s/\r//g — Убрать символ возврата каретки
:%s#>[^<]\+>##g — Очистить текст от HTML-тегов
:%s/^\(.*\)\n\1$/\1/ — Удалить строки, повторяющиеся дважды
:g/^$/d — Удалить все пустые строки
Ctrl+a — Увеличить число под курсором на единицу
Ctrl+x — Уменьшить число под курсором на единицу
ggVGg? — Преобразовать текст в Rot13

Поиск в vim

/door — Искать слово “door” сверху вниз
?door — Искать слово “door” снизу вверх
/jo[ha]n> — Искать “john” или “joan”
/\< the — Искать слова, начинающееся на “the” /the\> — Искать слова, заканчивающиеся на “the”
/\< door\> — Искать “door”
/\< …. \> — Искать слова из четырех символов
/fred\|joe — Искать “fred” или “joe”
/\<\d\d\d\d\> — Искать 4 цифры подряд
/^\n\{2} — Искать 2 пустые строки
:bufdo /searchstr/ — Искать во всех открытых файлах

Регистр в vim

Vu — Перевести строку в нижний регистр
VU — Перевести строку в верхний регистр
g~~ — Инвертировать регистр
vEU — Перевести слово под курсором в верхний регистр
vE~ — Инвертировать регистр слова
ggguG — Перевести весь текст в нижний регистр
:setignorecase — Регистронезависимый поиск
:set smartcase — Игнорировать регистр при поиске, если в искомом выражении нет символов верхнего регистра
:%s/\<./\u&/g — Перевести первую букву каждого слова в верхний регистр
:%s/\<./\l&/g — Перевести первую букву каждого слова в нижний регистр
:%s/.*/\u& — Перевести первую букву первого слова в каждой строке в верхний регистр
:%s/.*/\l& — Перевести первую букву первого слова в каждой строке в нижний регистр

Разделение окна в vim

:e filename — Редактировать filename в текущем окне
:split filename — Разделить окно и открыть filename
ctrl-w + стрелка ВВЕРХ — Переместить курсор в верхнее окно
ctrl-w ctrl-w — Переместить курсор в следующее окно
ctrl-w_ — Максимизировать текущее окно
ctrl-w= — Подогнать окна по размеру
10 ctrl-w+ — Увеличить текущее окно на 10 строк
:vsplit file — Вертикально разделить окно
:sview file — Разделить окно и открыть file только для чтения
:hide — Закрыть текущее окно
:only — Закрыть все окна, кроме текущего
:b 2 — Открыть #2 в текущем окне

Команды vim для печати