Skip to content

Шпаргалка по работе в Vim

rsajob edited this page Jun 18, 2015 · 3 revisions
Файл настройки: ~/.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 <fname>                редактировать файл
 :w [fname]                записать изменения
 :wa                       сохранить изменения во всех файлах
 :q                        выйти из редактора
 :q!                       выйти из редактора, не сохраняя изменения
 :color <name>             выбор цветовой схемы. цветвые схемы:
                             /usr/local/share/vim/vim72/colors/*.vim
 :pwd                      текущий каталог
 :cd [path]                перейти в другой каталог
 :!<cmd>                   выполнить команду
 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                    просмотр маркеров

 == Регистры ==
 "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                    предыдущий таб
 <n>gt                    перейти на таб #n
 gt                       следующий таб
 gT                       предыдущий таб

 == Работа с окнами ==
 :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

 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:                         История команд
 .                          Повторение последней команды
Clone this wiki locally