мета-данные страницы
Это старая версия документа!
vim
За основу взята статья с xgu.ru
Vim (vi improved) — текстовый редактор, идеологическое продолжение текстового редактора vi. Отличительная особенность редактора (как и редактора vi) - поддержка режимов редактирования: поведение редактора и его реакция на нажатие клавиш определяется тем, в каком режиме он сейчас находится.
Теория
Буферы
Буферы - это области в оперативной памяти, куда загружается содержимое открываемых vim файлов. Каждый открытый файл считывается в отдельный буфер. Между ними можно переключаться не теряя сделанных в изменений. Содержимое буфера можно записать в файл (тот же, из которого он был прочитан, или другой).
Регистры
Регистры - это «буферы обмена» / «карманы» для хранения команд и текста.
TODO: написать о типах регистров и работе с ними.
Использование
normal mod
Переключение режимов
c/[/esc- выход из режима:- command modi- insert modv- visual mod (common)V- visual mod (lines)ctrl+v- visual mod (blocks)
Быстрые действия
y- скопироватьp- вставитьx- вырезатьd- удалитьdd- вырезать строку в default регистрzz- сохранить и выйтиZQ- выйти
Навигация
Внутри строки:
0- переход в начало строки^- переход на первый непробельный символ$- переход в конец строкиf символ- переход к первому найденному символуF символ- переход к первому найденному символу в обратном направленииt символ- перейти на один символ левее заданного (почти как f, только идёт на один символ меньше; очень удобно, когда надо «удалить до запятой, но запятую оставить»)T символ- перейти на один символ левее заданного, поиск ведется в обратном направленииw- перейти к началу следующего словаe- перейти в конец следующего словаb- перейти к началу предыдущего слова
По строкам:
gg- перейти на первую строкуG- перейти на последнюю строку30G- перейти на строку 30
По отметкам:
``- к месту, с которого был сделан последний прыжок (прыгнуть назад)`.- к месту последней правки
Прокрутка окна:
ctrl+y- перемещение вверх на одну строку, с сохранением абсолютной позиции курсораctrl+e- перемещение вниз на одну строку, с сохранением абсолютной позиции курсораz-- прокрутить окно так, что строка с курсором будет почти в самом низуz.- прокрутить окно так, что строка с курсором будет почти в центреz Enter- прокрутить окно так, что строка с курсором будет вверху
Поиск
/слово- найти подстроку «слово»n- следующее вхождениеN- предыдущее вхождение
Замена
Для замены будет использоваться такая конструкция:
:%s/искать/заменить/g
command mod
quit/q- выйтиwrite/w- записать буферpwd- текущая рабочая директорияcd- сменить рабочую директориюls- листинг буферовedit файл/e файл- открыть новый буферbuffer n/b n- сменить текущий буфер на nn- переключатся на следующий буферN- переключатся на предыдущий буферset опция- изменить опциюreg- листинг регистровhelp- справка
insert mod
ctrl+t- сдвинуть строку вправоctrl+d- сдвинуть сроку влевоctrl+w- стереть слово слеваctrl+u- стереть всю строку слева
Настройка
TODO: написать о опциях и vimrc
