Заметки про VIM

2 мин

Vim имеет два режима: всё портить и бибикать.

Всем хорош Vim. Замечательный редактор. Но есть один нюанс. Команды забываются очень быстро. Чтобы не ходить за ними в гугл в сотый раз, собрал здесь те, которыми пользуюсь достаточно часто. И так, поехали!

Самое важное или “выпустите меня отсюда”!

Переход в режим редактирования i
Режим добавления в конце строки A
Режим редактирования с новой строки o
Переход в "нормальный" режим Esc
Сохранить и выйти :wq или :х
Выйти без сохранения :q!
Удалить строку dd
Удалить и начать ввод cc
Копировать yy
Вставить p
Открыть в новом окне :Ex
Закрыть окно Ctrl+W c
Выполнить команду :![cmd]
Создать закладку :m[a..z]
Глобальную, которая сохраняется :m[A..Z]
Открыть закладку :'[a..Z]
Переход на определенную строку :[number]
Поиск слова под курсором *
В обратном направлении #
Переход к локальному объявлению gd
Переход к глобальному объявлению gD
Переход к началу функции [[
Переход к парной скобке %
Переход к последней редактируемой строке `.
Переход к последней активной строке ``
Инкремент числа под курсором Ctrl+A

Буферы

Следующий буфер :bn
Предыдущий буфер :bp
Просмотреть открытые буферы :ls
Удалить/закрыть буфер :bd
Переход по имени :b [name]
Закрытие по имени :bd [name]

Окна

Перемещение по окнам Ctrl-w стрелки или h/j/k/l
Создать окно Сtrl-w n
Развернуть окно Сtrl-w o
Закрыть Ctrl-w c
Разделить окно по горизонтали Ctrl-w s
Разделить по вертикали Ctrl-w v
Сделать окна равного размера Ctrl-w =
Разделить и перейти на определение
чего-то, что под курсором Ctrl-w ]
Разделить и в новом окне открыть
файл путь к которому находится
под курсором Ctrl-w f
Разделить окно и открыть файловый менеджер :Sex
И по вертикали :Vex

Вкладки

Новая вкладка :tabnew
Следующая вкладка :tabn или gt
Предыдущая вкладка :tabp или gT

Автодополнение

Следующее слово Ctrl+n
Предыдущее Ctrl+p
Файлы, ищутся в текущем каталоге Ctrl-x Ctrl-f
Слова из текущего и открытых файлов Ctrl-x Ctrl-i
Дефайны Ctrl-x Ctrl-d
Из словаря Ctrl-x Ctrl-k
Все тэги Ctrl-x Ctrl-]
Omni completion, эдакий intellisense Ctrl-x Ctrl-o

Настройка приятных мелочей.

Нумерация строк :set number
Подсветка синтаксиса :syntax on

Фокус со вставкой табуляции/комментирования нескольких строк.

Ctrl+V выделяем вертикальный блок и копируем y
Ctrl+V снова выделяем блок и заменяем его
на нужный символ, например "#" r#
Вставляем ранее скопированный блок p

Более элегантный вариант.

Ctrl+V выделяем вертикальный блок, куда будем производить вставку, нажимаем Shift+I потом, например, "#" и затем Esc.

Фокус с сохранением read-only файла:

:w !sudo tee %>/dev/null

Файл с настройками

~/.vimrc

Открыть файл в новой вкладке из консоли

gvim --remote-tab-silent

Сохранить и закрыть все, если зашел удаленно

DISPLAY=:0 vim --servername GVIM --remote-send ':wqa'

Tmux + Solarized

TERM=xterm-256color /usr/bin/tmux

Удалить более одной подряд идущих пустых строк

:%!cat -s