Заметки про VIM
Vim имеет два режима: всё портить и бибикать.
Всем хорош Vim. Замечательный редактор. Но есть один нюанс. Команды забываются очень быстро. Чтобы не ходить за ними в гугл в сотый раз, собрал здесь те, которыми пользуюсь достаточно часто. И так, поехали!
Самое важное или “выпустите меня отсюда”!
Переход в режим редактирования i
Режим добавления в конце строки A
Режим редактирования с новой строки o
Переход в "нормальный" режим Esc
Сохранить и выйти :wq или :х
Выйти без сохранения :q!
Переместить курсор в начало документа gg
Переместить курсор в конец документа GG
Переместить курсор в начало строки 0 или ^
Переместить курсор в конец строки $
Удалить строку dd
Удалить и начать ввод cc
Удалить от курсора до начала документа dgg
Удалить от курсора до конца документа dGG
Удалить от курсора до начала строки d0 или d^
Удалить от курсора до конца строки d$
Копировать 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