Шпаргалка vim
Vi имеет 3 режима:
командный режим- Включается при запуске vi; для перехода в командный режим из других режимов (используйтеESC)
режим ввода- активируется специальными командамиa i A I o O c C s S R и выключается при помощиESCили в случае ошибки.
линейный режим- т.е. ожидание ввода команд после нажатия: ,/ ,? или! (выключается сCR, обрывается с помощьюCTRL-c).CTRLэто клавиша control:CTRL-cозначает “control c”
Команды Shell
TERM=code Помещает имя вашего терминала в переменнуюTERM
export TERM Передаёт значение переменнойTERM(код терминала) любой программе в UNIX системе.
tput init Инициализирует терминал таким образом, чтобы он функционировал правильно с различными UNIX программами.
vi filename Запускаетviи загружает на редактирование указанный файл.
vi file1 file2 file3 Записывает в буферviтри файла для последующего их редактирования. Эти файлыfile1, file2,иfile3.
view fileЗагружает файлfileв режиме только-для-чтения.
vi -R fileАналогично преведущей команде.
vi -r fileВосстанавливаетfileи последние изменения после краха системы.
Установка параметров
:set опция Активизирует опцию
:set опция=значение Назначает значение для опции
:set no опция Деактивирует опцию
:set Показывает опции установленные пользователем.
:set all Показывает все опции, как установленные пользователем, так и опции “по умолчанию”.
:set опцию? Показывает значение опции
Используемые обозначения
CTRL-cCTRLЭто клавиша control:CTRL-cозначает “control c”
CRсимвол возврата каретки (клавиша ENTER)
Обрывание и отмена
ESCОбрывает ввод неправильно или неполностью введенной команды
CTRL-?CTRLэто клавиша control :CTRL-?означает “control ?” удаляет или стирает прерывание.
CTRL-lобновляет экран если CTRL-? замусорила его.
Манипуляции с файлами
ZZСохраняет файл и выходит из vi
:wqСохраняет файл и выходит из vi
:wЗаписывает файл
:w!Записывает файл даже если он защищен от записи
:wимяЗаписывает файл по именемимя
:qВыходит из vi
:q!Выходит из vi (независимо от того были ли внесены изменения)
:e имяЗагружает для редактирования файл под именемимя
:e!Перезагрузить файл,стирая любые изменения которые были внесены
:e + nameЗагружает для редактирования файл под именемимя, начиная с конца.
:e + nНачинает редактирование со строки номерn
:e #Редактирует альтернативный файл
:nРедактирует следующий файл в списке файлов
:argsПоказывает файлы в текущем списке файлов
:rewОбновить текущий список файлов и начать редактировать первый файл.
:n argsУказать новый список файлов
:f Показывает имя текущего файла и номер строки
CTRL-GСиноним для :f
:ta tag to tag file entrytag
CTRL-] :ta, следующее слово - тэг
Перемещение
ArrowsПеремещают курсор
CTRL-dСкроллирует полстраницы вниз
CTRL-uСкроллирует полстраницы вверх
CTRL-fСкроллирует целую страницу вниз
CTRL-bСкроллирует целую страницу вверх
:0Переходит к началу файла
:nПереходит к строке номер n
:$Переходит к концу файла
0Переходит к началу строки
^Переходит к первому символу, не пробелу
$Переходит к концу строки
CRПереходит к началу следующей строки
-Переходит к началу преведущей строки
%Находит соответствующую скобку
G Переходит к строке (по умолчанию - к последней строке)
]] Следующая секция/функция
[[ Преведущая секция/функция
Позиционирование по строкам
H Первая строка экрана
L Последняя строка экрана
M Средняя строка экрана
+ Следующая строка, первый символ не являющийся пробелом
- Предшествующая строка, первый символ не являющийся пробелом
CR возврат, тоже что и +
j Следующая строка, таже колонка
k Преведущая строка, таже колонка
Позиционирование по символам
0 Начало строки
$ Конец строки
h Вперед
l Назад
SPACE Тоже что и l
fx Найти x вперед по тексту
Fx Найти x назад по тексту
; Повторить последнюю операцию f F
, Инверсно ;
| К специфицированной колонке
% Найти соответствующий символ { или }
Слова, предложения параграфы
w Слово вперед
b Слово назад
e Конец слова
) К следующему предложению
( К преведущему предложению
} К следующему параграфу
{ К преведущему параграфу
W К концу большого слова, включая пробел на его конце
B Назад на большое слово W
E К концу большого слова W
Установка отметок и возврат к ним
“(дважды нажмите клавишу `) К преведущей отметки
”(press twice the single-quote ` key) Последняя отметка, первый не пробел в строке
mxУстановка отметки с именем x
`x(обратная кавычка и x) перейти к отметке x
'xПерейти к отметке x, на первый не пробел в строке
Коррекция во время ввода текста
CTRL-hУдаляет последний символ
CTRL-wУдаляет последнее слово
erase Нажмите DELETE, тоже что и CTRL-h
kill Ваша клавиша kill, стирает ввод сделанный на этой строке
\ Экранирует CTRL-h, DELETE и kill
ESC Окончить ввод, назад в командный режим
CTRL-? Прервать, терминирует ввод
CTRL-d Обратная табуляции наautoindentпробелов
CTRL-v Экранирует непечатный символ
Обновления экрана
CTRL-lОчистить и перерисовать
CTRL-rперенабор, убирает @строки
z-CRперерисовать, текущую строку на вершине окна
z-перерисовать, текущую строку на краю окна
z.перерисовать, текущую строку в центре экрана
/pat/z-сгладитькрай строки
tnИспользовать экран с строкой n
CTRL-eСкроллировать окно вниз на 1 строку
CTRL-yСкроллировать окно вверх на 1 строку
Удаление
xУдаляет символ под курсором
XУдаляет символ перед курсором
DУдаляет до конца строки
d^Удаляет до начала строки
ddУдаляет текущую строку
nddУдаляетnстрок начиная с текущей
dnwУдаляетnслов начиная с положения курсора
Вставка, замена
iВходит в режим вставки (с вставкой перед курсором)
IВходит в режим вставки (перед первым не пробелом)
aВходит в режим вставки (вставка после курсора)
AВходит режим вставки (вставка после конца текущей строки)
oСоздать новую строку после текущей и перейти в режим вставки
OСоздает новую строку перед текущей и входит в режим вставки
rЗаменить символ под курсором не переходя в режим вставки
RВойти в режим замены
Cshift-c. Изменить остаток строки
Dshift-d. Удалить остаток строки
sЗаменить символы
SЗаменить строки
JОбъединить строки
Копирование и вставка
"Буфер копирования" заполняется КАЖДОЙ командой удаления,или с помощью Y и yy.
YКопирует текущую строку в буфер
nyyКопируетnстрок начиная с текущей в буфер копирования
pВставляет содержимое буфера копирования после курсора (или перед текущей строкой)
PВставляет содержимое буфера обмена перед курсором (или перед текущей строкой)
“xp Вставить из буфера x
“xy Скопировать в буфер x
“xd Удалить в буфер x
Операции (для применения к строкам вводятся дважды)
d удалить
c изменить
< сдвинуть влево
> сдвинуть вправо
! отфильтровать через команду
= отдать для LISP
y скопировать текст в буфер
Поиск и замена
/textИскать вперед образецtext
?textИскать назад образецtext
nПовторить последний поиск в том же направлении
NПовторить последний поиск в обратном направлении
/Повторить последний поиск вперед
?Повторить последний поиск назад
[ addr ] s/from/to/ [ g ] Искатьfromи заменить его наtoв текущей строке, или в указанном диапазонеaddr(два номера строки разделенные командой; 1,$ весь файл). Заменить одно совпадение на строку либо все совпадения еслиgуказано. Например, :3,20s/someword/anotherword/g. Заменит “someword” на “anotherword” начиная от строки номер 3 до строки 20. ‘g’ - означает замену всех совпадений.
Общие
:shВызывает shell (выход по CTRL-d)
:!командаВызывает shell для исполнениякоманды
:set numberВключает нумерацию строк
:set nonumberВыключает нумерацию строк
Команды линейного редактора
:Говоритviчто следующая введенная команда является командой линейного редактора.
:shВременный выход в shell чтобы исполнить какие либо команды не покидаяvi.
CTRL-dВыходит из shell запущенного преведущей командой вvi.
:nПереходит к строке номерnth текущего буфера.
:x,zwfilenameЗаписывает строки отxдоzв новый файл называемыйfilename.
:$Передвигает курсор к началу последней строки буфера.
:.,$dУдаляет все строки от текущей до последней.
:rfilenameВставляет содержимое файлаfilenameпосле текущей строки буфера.
:s/text/new_text/Заменяет первый встреченный образецtextна текущей строке наnew_text
:s/text/new_text/gЗаменяет все образцыtextна текущей строке наnew_text
:g/text/s//new_text/gЗаменяет все встреченный в буфере образцыtextнаnew_text.
Другие команды
uОтменить последнее изменение
UВосстановить текущую строку
~Изменить регистр
JСоединить текущую строку со следующей
.Повторить последнюю команду изменения текста
CTRL-gПоказать имя файла и номер строки











