-
-
Save kibal4iw/3fe69305b737a82ff5cdc77051bb18f5 to your computer and use it in GitHub Desktop.
ViM cheatsheet
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Файл настройки: ~/.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 вставить из буфера обмена | |
<n>d удалить n+1 строку | |
<n>y скопировать n+1 строку | |
ESC перейти в режим просмотра | |
DEL удалить следующий символ | |
:<n> перейти на строку #n | |
% перейти к парной скобке | |
:e **/filename.c редактировать файл (с поиском по имени) | |
:w [fname] записать изменения | |
:wa сохранить изменения во всех файлах | |
:q выйти из редактора | |
:q! выйти из редактора, не сохраняя изменения | |
:color <name> выбор цветовой схемы. цветвые схемы: | |
/usr/local/share/vim/vim72/colors/*.vim | |
:pwd текущий каталог | |
:cd [path] перейти в другой каталог | |
:!команда выполнить команду - man, git, и так далее | |
стрелочками веерх и вниз можно автодополнять | |
команды и искать по истории | |
CTR+p или CTR+n автоматическое дополнение текста | |
(в режиме редактирования) | |
CTR+r,=,<expr> вставить выражение, например 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 вернуться на позицию, на которой закончили | |
работу при закрытии vim | |
:marks просмотр маркеров | |
set viminfo='1000,f1 маркеры пишутся в ~/.viminfo, восстанавливаясь | |
при следующем запуске vim. маркер " хранит | |
последнюю позицию курсора в файле | |
== Сессии == | |
mksession file.session сохранить текущую сессию | |
source file.session восстановить ранее сохраненную сессию | |
== Макросы == | |
qa записать макрос с именем a | |
q в режиме записи макроса: закончить запись | |
@a выполнить макрос с именем a | |
@@ повторить последний макрос | |
== Регистры == | |
"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 заменять ли табуляцию на соответствующее | |
число пробелов | |
== Поиск и замена в файле == | |
/Выражение поиск выражения в файле | |
\cВыражение поиск без учета регистра | |
n следующее совпадение | |
N предыдущее совпадение | |
:%s/foo/bar/gi замена строк, см http://eax.me/regular-expr/ | |
== Поиск по всему проекту == | |
:vimgrep /EXPR/ **/*.c поиск по регулярному выражению | |
:copen показать все найденные места | |
:close скрыть все найденные места | |
:cn переход к следующему результату | |
:cp переход к предыдущему результату | |
== Нумерация строк == | |
:set number включить нумерацию строк | |
:set nonumber отключить нумерацию строк | |
== Работа с вкладками (a.k.a табами) == | |
:tabnew [fname] создать таб | |
:tabs вывести список табов | |
:tabn следующий таб | |
:tabp предыдущий таб | |
<n>gt перейти на таб #n | |
gt следующий таб | |
gT предыдущий таб | |
:tabm +1 переместить таб вперед на одну позицию | |
:tabm -1 переместить таб назад на одну позицию | |
:tabm 2 переместить таб на заданную позицию | |
(нумерация начинается с нуля) | |
== Работа с окнами == | |
:split горизонтальное разбиение | |
:vsplit вертикальное разбиение | |
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 | |
:set spell spelllang=ru,en включить проверку орфографии | |
:set nospell выключить проверку орфографии | |
]s следующее слово с ошибкой | |
[s предыдущее слово с ошибкой | |
z= замена слова на альтернативу из списка | |
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: История команд | |
. Повторение последней команды |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment