• 22 Июн
  • 2015
Шпаргалка по Vim

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

Чтобы в полной мере ощутить всю прелесть Vim, нужно запомнить команды редактора. Вот некая шпаргалка. Она была найдена на просторах Интернета, честно скопирована и доработана. Может кому-то пригодится.

 

Конфиг редактора находится в файле: ~/.vimrc

Навигация и работа с буфером обмена

Редактирование файлов по сети :e <scp|ftp|ftps>://user@host/path/to/the/file.txt
Файловый менеджер :Ex или :e ./
hjkl перемещение в разные стороны
i режим вставки
I добавление в начало строки
a режим добавления
A добавление в конец строки
o добавить строку сразу за текущей
O добавить строку перед текущей
R писать поверх имеющегося текста
u, :u[ndo] отмена предыдущего действия (undo)
CTR-R, :red[o] отмена отмены предыдущего действия (redo)
dd вырезать (удалить) строку
cc удалить и начать редактирование
yy копировать строку
p вставить из буфера обмена
d удалить n+1 строку
y скопировать n+1 строку
ESC перейти в режим просмотра
DEL удалить следующий символ
: перейти на строку #n
% перейти к парной скобке
:e редактировать файл
:w [fname] записать изменения
:wa сохранить изменения во всех файлах
:q выйти из редактора
:q! выйти из редактора, не сохраняя изменения
:color выбор цветовой схемы. цветвые схемы: /usr/local/share/vim/vim72/colors/*.vim
:pwd текущий каталог
:cd [path] перейти в другой каталог
:! выполнить команду
CTR+p или CTR+n автоматическое дополнение текста (в режиме редактирования)
CTR+r,=, вставить выражение, например 5*2 - 3 (в режиме редактирования)
CTR+u, CTR+d Page Up / Page Down
CTR+y, CTR+e Перемотка вверх/вниз без движения курсора

Подсветка синтаксиса

:syntax on включить подсветку
:syntax off выключить подсветку (по умолчанию)

Перенос строк

:set wrap разрешить word wrap (по умолчанию)
:set nowrap запретить word wrap

Печать

:ha[rdcopy] распечатать документ
:set printoptions=duplex:off отключить двустороннюю печать

Сворачивание

zc свернуть блок
zo развернуть блок
zM закрыть все блоки
zR открыть все блоки
za инвертирование
zf см :set foldmethod=manual
:set foldenable включить свoрачивание
:set foldmethod=syntax сворачивание на основе синтаксиса
:set foldmethod=indent сворачивание на основе отступов
:set foldmethod=manual выделяем участок с помощью v и говорим zf
:set foldmethod=marker сворачивание на основе маркеров в тексте
:set foldmarker=bigin,end задаем маркеры начала и конца блока

Маркеры

ma установить локальный маркер a
mB установить глобальный маркер B
`c перейти к локальному маркеру c
`0 вернуться на позицию, на которой закончили
:marks просмотр маркеров

Регистры

"ayy скопировать строку в регистр a
"bdd вырезать строку и поместить в регистр b
"С2d вырезать три строки и дописать в конец регистра C
:reg [name1][name2][...] просмотреть содержимое регистров

Выделение

v + hjkl выделение текста
SHIFT + v выделить строку
CTR + v выделение прямоугольника
p вставить
y копировать
d удалить
gu к нижнему регистру
gU к верхнему регистру

Отступы

[#]> сдвинуть выделенное вправо
[#]< сдвинуть выделенное влево
[#]>> сдвинуть строку вправо
[#]<< сдвинуть строку влево
set tabstop=# для табуляции используется # пробелов
set shiftwidth=# в командах отступа используется # пробелов
set [no]expandtab заменять ли табуляцию на соответствующее число пробелов

Поиск и замена в файле

/<выражение> поиск выражения в файле
n следующее совпадение
N предыдущее совпадение
:%s/foo/bar/gi замена строк, см http://eax.me/regular-expr/

Нумерация строк

:set number включить нумерацию строк
:set nonumber отключить нумерацию строк

Работа с Tab'ами

:tabnew [fname] создать tab
:tabs вывести список табов
:tabn следующий таб
:tabp предыдущий таб
gt перейти на таб #n
gt следующий таб
gT предыдущий таб

Работа с окнами

:split горизонтальное разбиение
:vsplit вертикальное разбиение
Ctr+W+c закрыть окно
Ctr+W+= установить равный размер окон
Ctr+W+hjkl или стрелочки перемещение между окнами

Проверка орфографии

mkdir -p ~/.vim/spell cd ~/.vim/spell wget http://ftp.vim.org/vim/runtime/spell/ru.koi8-r.sug wget http://ftp.vim.org/vim/runtime/spell/ru.koi8-r.spl wget http://ftp.vim.org/vim/runtime/spell/en.ascii.sug wget http://ftp.vim.org/vim/runtime/spell/en.ascii.spl

setlocal spell spelllang=ru,en включить проверку орфографии
set spell! вкл/выкл проверку во время работы
]s следующее слово с ошибкой
[s предыдущее слово с ошибкой
zg good word
zw wrong word
zG ignore word

Работа с кодировкой

e ++enc=<имя кодировки> Редактирование файла в ??? кодировке
w ++enc=<имя кодировки> Сохранить файл в новой кодировке
set fileencodings=utf-8,koi8-r Список автоматически определяемых кодировок в порядке убывания приоритета

Другое

:set [no]wildmenu При авто-дополнении в командной строке над ней выводятся возможные варианты
:set list Отображать табуляцию и переводы строк
q: История команд
. Повторение последней команды
comments powered by Disqus