================================================================================
VIM - Самые полезные команды
================================================================================
--------------------------------------------------------------------------------
ПЕРЕМЕЩЕНИЕ
--------------------------------------------------------------------------------
h/j/k/l - Влево/Вниз/Вверх/Вправо
w - Вперед на первую букву слова
b - Назад на первую букву слова
e - Вперед на последнюю букву слова
ge - Назад на последнюю букву слова
0 - В начало строки
$ - В конец строки
gg - В начало текста
G - В конец текста
--------------------------------------------------------------------------------
ВЫДЕЛЕНИЕ
--------------------------------------------------------------------------------
v0 - Выделить текст от курсора до начала строки
v$ - Выделить текст от курсора до конца строки
vi" - Выделить текст внутри кавычек (для других символов аналогично)
va" - Выделить текст вместе с кавычками
vit - Выделить текст внутри тэга
vat - Выделить текст вместе с тэгом
V - Выделить строку (режим выделения строк)
Выделить слово целиком:
ve - Если курсор в начале слова (переход на последнюю букву)
vb - Если курсор в конце слова (переход на первую букву)
bve или evb - Если курсор в центре слова
--------------------------------------------------------------------------------
КОПИРОВАТЬ/ВСТАВИТЬ
--------------------------------------------------------------------------------
y/p - Копировать/Вставить
yw - Скопировать текущее слово
yyp - Скопировать текущую строку и вставить ниже
y0 - Скопировать от курсора до начала строки
y$ - Скопировать от курсора до конца строки
--------------------------------------------------------------------------------
РЕГИСТР:
--------------------------------------------------------------------------------
vE~ - Инвертировать регистр слова
g~~ - Инвертировать регистр
Vu - Перевести строку в нижний регистр
VU - Перевести строку в верхний регистр
vEU - Перевести слово под курсором в верхний регистр
gggu - Перевести весь текст в нижний регистр
:%s/\<./\u&/g - Перевести первую букву каждого слова в верхний регистр
:%s/\<./\l&/g - Перевести первую букву каждого слова в нижний регистр
:%s/.*/\u& - Перевести первую букву первого слова в каждой строке в верхний регистр
:%s/.*/\l& - Перевести первую букву первого слова в каждой строке в нижний регистр
--------------------------------------------------------------------------------
СОРТИРОВКА
--------------------------------------------------------------------------------
:'<,'>sort - Сортировка строк по возрастанию
:'<,'>sort! - Сортировка строк по убыванию
:'<,'>sort n - Сортировка ЧИСЕЛ по возрастанию
:'<,'>sort! n - Сортировка ЧИСЕЛ по убыванию
:296,349 sort - Сортировка строк из диапазона по возрастанию
--------------------------------------------------------------------------------
ОЧИСТКА:
--------------------------------------------------------------------------------
dd - Удалить строку под курсором
d0 - Удалить текст от курсора до начала строки
d$ - Удалить текст от курсора до конца строки
dw - Удалить пробелы между курсором и текстом справа (очень полезно)
:'<,'>g/^ *$/d - Удалить пустые строк (даже, если в них есть пробелы)
:'<,'>s/ +/ /g - Удалить лишние пробелы (оставляет только один пробел)
:'<,'>s/^ *//g - Удалить все пробелы в начале строки
:'<,'>s/$ *//g - Удалить все пробелы в конце строки
<dw> - Удалить пробелы между курсором и словом справа (удобно для выравнивания текста)
:g/string/d - Удалить все строки, содержащие “string”
:v/string/d - Удалить все строки, не содержащие “string”
:%s/^\(.*\)\n\1$/\1/ - Удалить строки, повторяющиеся дважды
:%s#>[^<]\+>##g - Очистить текст от HTML-тегов
--------------------------------------------------------------------------------
ОБЕРТКИ:
--------------------------------------------------------------------------------
:'<,'>s/^(.*)$/"\1",/g - Поместить каждую строку в обертку "строка", (чтобы сделать массивы из строк)
:'<,'>s/^(.*)$/<li>\1<\/li>/g - Поместить каждую строку в тэг Списка <li></li>
:'<,'>s/^(.*)$/<p>\1<\/p>/g - Поместить каждую строку в тэг Абзаца <p></p>
:'<,'>s/^(.*)$/<p>\1<\/p> \n/g - Поместить каждую строку в тэг Абзаца <p></p> со вставкой пустой строки
:'<,'>s/^(.*)$/\<a href="\1">\1<\/a\>/g - Превратить текст в ссылку <a href="/link/">/link/</a>
:'<,'>s/^(.*)$/\<li><a href="\1">\1<\/a\><\/li>/g - Превратить текст в ссылку с оберткой из элемента списка <li><a href="/link/">/link/</a></li>
:'<,'>s/^(.*)$/\<p><a href="\1">\1<\/a\><\/p>/g - Превратить текст в ссылку с оберткой из абзаца <a href="/link/">/link/</a></p>
:'<,'>s!$!//! - Вставить в конец каждой строки "//" (двойной слеш), вместо "/" используется знак "!"
--------------------------------------------------------------------------------
ФОРМАТИРОВАНИЕ:
--------------------------------------------------------------------------------
J - Объединить все строки, находящиеся в области выделения
:set tw=80
<gq> - Выставляет перенос на другую строку выделенному тексту (длина строки 80 символов)
(можно установить :set tw=1 и выполнить в этом случае каждое слово будет в отдельной строке
Вставка повторяющихся символов:
[num]<i>[символ]<Esc> - вставит [num] раз [символ],
например: <5iG> напечатает "GGGGG"
Сделать дырку в тексте из пробелов:
<Ctr+Shivt+v><r><space>
Выделить область с текстом в визуальном блочном режиме,
нажать <r>, затем <пробел>
--------------------------------------------------------------------------------
СПИСОК РЕЖИМОВ VIM РЕДАКТОРА
--------------------------------------------------------------------------------
1) Режим выделения (Визуальный) (на экране прямоугольный курсор) - Режим по умолчанию
- для перехода в данный режим достаточно нажать клавишу <ESC>
2) Режим ввода (На экране обычный режим в виде палочки "|")
- Чтобы перейти в данный режим из режима 1) нужно нажать клавишу <i>
3) Командный режим (внизу экрана можно вводить команды)
- Чтобы перейти в данный режим из режима 1) нужно нажать клавишу <:>
Внизу редактора появится поле для ввода текста команд
4) Визуально-блочный режим (выделение текста в любом месте в виде прямоугольника)
- Чтобы перейти в данный режим нужно выделить в режиме 1) кусок текста с
помощью мыши и нажать клавиши CTR+Shift+V
--------------------------------------------------------------------------------
Полезные ссылки:
http://rigovanov.ru/vim/
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------