Главная | Контакты | Настройки СМЕНИТЬ ПАЛИТРУ:

Главная > Программы > vim

Текстовый редактор VIM

Команды редактора VIM
Большое чтиво по командам VIM (ENG)
Довольно подробное руководство Vim для начинающего пользователя
Справочник по Vim
Сайт, полностью посвященный работе в Vim
Шесть статей про скриптовый язык Vim
Семь привычек эффективного редактирования текстов. Советы от разработчика Vim
IBM DW. Создание сценариев для редактора Vim: Часть 1

КомандаДействие
: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 <fname>редактировать файл
: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+dPage 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просмотр маркеров
Макросы
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/
Нумерация строк
: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=замена слова на альтернативу из списка
zggood word
zwwrong word
zGignore word
Работа с кодировкой
e ++enc=<имя кодировки>Редактирование файла в ??? кодировке
w ++enc=<имя кодировки>Сохранить файл в новой кодировке
set fileencodings=utf-8,koi8-rСписок автоматически определяемых кодировок в порядке убывания приоритета
Другое
:set [no]wildmenuПри авто-дополнении в командной строке над ней выводятся возможные варианты
:set listОтображать табуляцию и переводы строк
q:История команд
.Повторение последней команды
vipвыделить параграф
viwвыделить слово
Shift+v или 0v$выделить строку
^v$выделить строку, начиная с первого непробельного символа
vi(выделить всё между ближайшими круглыми скобками (аналогично 'vi[' и 'vi{' для квадратных и фигурных скобок)
va(выделить всё между ближайшими круглыми скобками, включая сами скобки
v2jвыделить на две строки вниз
dipвырезать параграф
di(вырезать содержимое круглых скобок
da(вырезать содержимое круглых скобок и сами скобки
y2yскопировать две строки
yyскопировать строку
yiwскопировать слово
pвставить после курсора
[pвставить перед курсором
xpпоменять две буквы местами
vt,выделить всё до ближайшей запятой
Ctrl+Gномер текущей строки, общее число строк в файле и его имя
N,M yaкопировать в буфер обмена строки с N до M включительно (потом их можно вставить в нужном месте той же "p")
Nddудалить N строк (любые удалённые строки попадают в буфер обмена)

Главная > Программы > vim