Автор:Роман Савоченко Примечание: Документ создаётся автором с 2002г. До настоящего момента документ создавался в среде LaTeX. На текущий момент выполняется публикация документа в среде Wiki с последующим оформлением в среде dockbook. LaTeX версию документа можно взять здесь и исходник здесь. Документ оформляется в среде WIKI для привлечения к его развитию общественности. Разрешается вносить изменения в данный документ с целью исправления обнаруженных ошибок или с целью его дополнения.
1 Опции командной строки
-t {tag} — Открывает файл с функцией <tag> и позиционирует курсор на неё. Должен присутствовать файл tags сформированный командой ctags (ctags -h ".h.cpp" ./*). +N — При открытии файла позиционирует курсор на строке с номером N.
N — количество повторений команды;
N1 — количество повторений команды перемещения.
4 Команды
4.1 Перемещение по тексту
h, left — Влево. l, right — Вправо. j, down — Вниз. k, up — Вверх. 0, home — В начало строки. ^ — Первый непустой символ в строке. $, end — В конец строки. [N]| — На <N> столбец. [N]_ — Вниз на <N>-1 строк и на первый не пустой символ. [N]% — На <N> процентов от всего буфера. [N]G, :[N] — Переход на строку <N> (0G - BOF, $G - EOF). g — Перемещение по тексту. Объекты:
0, home — на левый край экрана; ^ — на первый непустой символ; m — на половину ширины экрана; $, end — на правый край экрана; k, up — на одну строку экрана вверх; j, down — на одну строку экрана вниз; g — на первую строку; o — на [N] байт в буфере; e — назад до конца слова; E — назад до конца слова (от пробела до пробела).
f[simb] — На первый найденный справа от курсора символ [simb]. F[simb] — На первый найденный слева от курсора символ [simb]. t[simb] — Перед первым найденный справа от курсора символ [simb]. T[simb] — Перед первым найденным слева от курсора символом [simb]. ; — Повторить последнюю команду F,f,T,t в том же направлении. , — Повторить последнюю команду F,f,T,t в противоположном направлении. - — На строку вверх и на первый не пустой символ. +, Enter — На строку вниз и на первый не пустой символ. G, ^+End — На последнюю строку. H — На первую строку экрана. M — На среднюю строку экрана. L — На последнюю строку экрана. w, Sh+Right — На слово вперед. W, ^+Right — На слово вперед (от пробела до пробела). e — Вперед до конца слова. E — Вперед до конца слова (от пробела до пробела). b, Sh+Left — На слово назад. B, ^+Left — На слово назад (от пробела до пробела). ( — На предложение назад (до точки). ) — На предложение вперед (до точки). { — На абзац назад (до пустой строки). } — На абзац вперед (до пустой строки). [[ — Вперед на одну секцию или до { в начале строки. ][ — Вперед на одну секцию или до } в начале строки. ]] — Назад на одну секцию или до { в начале строки. [] — Назад на одну секцию или до } в начале строки. ^G, :file — Информация о текущем положении курсора в тексте. ^] — Переход по ссылке или на определение функции. ^T — Возврат после перехода по ссылке. ^O — Назад по списку переходов. ^I, Tab — Вперёд по списку переходов. :ju — Список переходов.
4.2 Прокрутка экрана
^+E — Вниз на одну строку. ^+D — Вниз на scroll строк. если использовать цифру то далее она будет по умолчанию. ^+F, PgDwn — Вниз на одну страницу. ^+Y — Вверх на одну строку. ^+U — Вверх на scroll строк. если использовать цифру то далее она будет по умолчанию. ^+B, PgUp — Вверх на одну страницу. zEnter — Прокрутка вверх, пока курсор не окажется на первой строке. zt — Тоже, но курсор остаётся в той-же строке. ZZ — Сохранить и выйти. z[N]Enter — Изменить размер окна до <N> строк. z. — Прокрутка помещающая строку с курсором в центре экрана. zz — Тоже, но курсор остается в том же столбце. z- — Прокрутка вниз, пока курсор не окажется в на последней строке. zb — Тоже, но курсор остаётся в том же столбце. zl — На один символ влево. zh — На один символ вправо. zL — На полуширину экрана влево. zH — На полуширину экрана вправо. zs — Помещает курсор на левый край. ze — Помещает курсор на правый край.
4.3 Смена режимов
Ins, i, a — Переход в режим вставки. v — Визуальный строчный режим (с точностью до символа). V — Визуальный строчный режим (с точностью до строки). ^V — Визуальный блочный режим. gv — Возврат к области, выделенной в прошлый раз. : — Командный режим. r — Переход в режим замены. gR — Переход в виртуальный режим замены. ESC — Возврат в нормальный режим.
4.4 Работа с файлами
:q — Выход (если не требует сохранения). :q! — Закрыть окно без сохранения. :qa! — Выход из всех открытых файлов без сохранения. :x — Выход из всех открытых файлов без сохранения. :wqa — Выход из всех файлов с сохранением. :w — Запись в файл. :w! — Запись в файл даже если он только для чтения. :wq[!] — Сохранить и выйти. :r — Загрузить файл в позицию курсора. :e [++opt] [+cmd] [<file>] — Открыть новый файл заместив старый (без имени файла - перечитывает текущий).
+ — начать с конца файла; +<num> — начать с указанной строки; +/<pat> — начать с первой строки в которой встречается шаблон <pat>.
:e! [++opt] [+cmd] [<file>] — Открыть новый файл заместив старый и игнорируя все изменения (без имени файла - перечитывает текущий). :e #[count] — Открыть файл под номером <count> из :files. :sp — Открыть в новом окне. gf, [f — Редактировать файл под курсором.
4.5 Редактирование
x, del — Удаление символа под курсором. X — Удаление символа перед курсором. u, :u — Откат. U — Отменить все изменения, повлиявшие на текущую строку. [reg]^R, :red — Накат, вставка из регистра. С — Удалить от курсора и до конца строки с переходом в режим ввода. c — Изменение, удаление и ввод нового.
l — символ, аналог s; c — строку, аналог S; [N]o — удаление по команде перемещения "o" [N] раз.
D — Удалить от текущего символа до конца строки. [reg]d — Вырезать часть строки в регистр [reg]. Объекты:
l — аналог x; h — аналог X; d — текущей строки; w — до конца слова; $ — до конца строки; [N]o — удаление по команде перемещения "o" [N] раз.
o, O — Вставка новой строки до и после текущей, с переходом в режим вставки. J — Объединить строку с последующей. r[симв] — Заменить символ под курсором на [симв]. gr[симв] — Заменить виртуальный символ под курсором на [симв]. gJ — Тоже, но не вставляя новых пробелов. [reg]y[com] — Копирование в регистр [reg("a)] строк через которые перенесет команда [com]. [reg]yy, Y — Копирование в регистр [reg("a)] текущую строку. [reg]p — Вставка текста из регистра [reg("a)] после курсора. P, MidMouse — Вставка текста из регистра перед курсором. gp — Тоже что и p, но курсор помещается в конец вставленного текста. gP — Тоже что и P, но курсор в конец вставленного текста. ]p — Тоже что и p, но дополнительно изменяется отступ вставляемого текста, аналогично отступу текущей строки. ]P — Тоже что и P, но дополнительно изменяется отступ вставляемого текста, аналогично отступу текущей строки. . — Повторение предыдущей команды изменившей буфер. g~ , ~ [com] — Изменение регистра букв на участке текста, через который перенесёт команда [com]. g~ ~ — Изменение регистра букв в текущей строке. gu[com] — Превращение букв в строчные на участке текста переноса команды [com]. guu — Превращение в строчные буквы в текущей строке. gU — Превращение букв в прописные. gUU — Превращение в прописные буквы в текущей строке. g?[com] — Перекодировка по алгоритму rot13 на участке текста переноса команды [com]. g?? — Перекодировка по алгоритму rot13 в текущей строке. [N]^A — Добавить число <N> к числу в позиции курсора. [N]^X — Вычесть число <N> от числа в позиции курсора. ! — Обработка внешней программой. = — Расстановка отступов для языка программирования С. <[com] — Сдвиг влево на значение (shiftwidth) строк, через которые перенесла бы команда[com]. << — Сдвиг влево текущей строки. >[com] — Сдвиг вправо на значение (shiftwidth) строк, через которые перенесла бы команда[com]. >> — Сдвиг вправо текущей строки.
4.6 Поиск
/{str}[/[off]] — Переход вперёд на смещение <off> искомой строки <str>. ?{str}[?[off]] — Переход назад на смещение <off> искомой строки <str>. / — Повторить последний поиск в прямом направлении. ? — Повторить последний поиск в обратном направлении. n — Повторить последний поиск. N — Повторить последний поиск в обратном направлении. * — Поиск в прямом направлении идентификатора под курсором. # — Поиск в обратном направлении идентификатора под курсором. gd — Перейти к локальному определению переменной под курсором. gD — Перейти к глобальному определению переменной под курсором. :/[search] — Поиск <search> в прямом порядке. :?[search] — Поиск <search> в обратном порядке. :[address]s/[search]/[repl]/[gci] — Поиск [search] и замена на [repl] (в режиме VISUAL - без адреса и в выделенной области)
[gci]:
< > — первого вхождения; <g> — всё; <c> — с запросом подтверждения; <i> — игнорируя регистр.
[address]:
<%> — весь текст; <1> — первая строка; <.> — текущая строка; <$> — последняя строка; <1,3> — между строками 1-3; <.,$> — от текущей до последней.
4.7 Манипуляции с окнами
^W — Операции с окнами:
i, d, f — новое окно с i-переменой, d-определением, f-файлом под курсором; n — открыть новое окно; s — сдублировать еще одно окно от текущего (горизонтально); v — сдублировать еще одно окно от текущего (вертикально); с, q — закрыть текущее окно; o — закрыть все остальные окна; r — сдвиг вверх; R — сдвиг вниз; x — сдвиг на другое окно с активизацией другого окна; K — переместить текущее окно вверх; J — переместить текущее окно вниз; H — переместить текущее окно влево; L — переместить текущее окно вправо; k, Up — активизировать окно сверху; j, Down — активизировать окно снизу; h, Left — активизировать окно слева; l, Right — активизировать окно справа; w — активизировать следующее окно; p — активизировать предыдущее окно; + — увеличить высоту окна на одну строку; - — уменьшить высоту окна на одну строку; > — увеличить ширину окна на один символ; < — уменьшить ширину окна на один символ; = — сравнять размеры окон; _ — установить максимальную высоту окна; 1_ — установить минимальную высоту окна; | — установить максимальную ширину окна; 1| — установить минимальную ширину окна.
:sp — Разделить окно по горизонтали. :vs — Разделить окно по вертикали. :new — Создать новое окно (горизонтальное разделение). :vne — Создать новое окно (вертикальное разделение).
4.8 Метки
m[M] — Установить метку <M> в позицию курсора. m", m' — Установить метку предыдущего контекста. :[N]ma, [N]k M — Установить метку <M> на строке <N>. 'M — Перемещение в начало строки с меткой <M>. `M — Перемещение на метку <M>. '[ — Первый непустой символ в первой строке части текста, над которой производилась последняя операция. "[ — Первый символ части текста, над которой производилась последняя операция. '] — Первый непустой символ в последней строке части текста, над которой производилась последняя операция. "] — Последний символ части текста, над которой производилась последняя операция. :marks — Показать список меток. :marks ABC.. — Показать метки ABC.. . % — Переход на противоположную скобку: ()[].... . [( — Переход к предыдущей незакрытой ( . [{ — Переход к предыдущей незакрытой { . [) — Переход к следующей не открытой ( . [} — Переход к следующей не открытой } . ]m — Переход к следующему началу метода (Java). ]M — Переход к следующему концу метода (Java). [m — Переход к предыдущему началу метода (Java). [M — Переход к предыдущему концу метода (Java). [# — Переход на предыдущий незакрытый #if или #else. ]# — Переход на следующий неоткрытый #else или #endif. [*, [/ — Переход на предыдущее начало С-комментария /*. ]*, ] / — Переход на следующий конец С-комментария */.
4.9 Регистры
"" — Безымянный регистр (используется по умолчанию). "0 — Содержит текст прочитанный последней командой 'y'. "1-"9 — Сдвиговые регистры удалённого и изменённого текста. "- — Заполняется при удаление текста, занимающего менее одной строки. "a-"z — Именованные регистры, заполняются только при указании их специально. ". — Последний вставленный текст. "% — Содержит имя редактируемого файла. "# — Содержит имя альтернативного файла. ": — Последняя команда в режиме ':'. "= — Ввод выражений. "* — Хранит в себе выбранный мышью текст (X-Window). "/ — Регистр последнего поиска. :reg [reg] — Печать содержимого регистров. q[reg] — Ввод регистра [reg] до нажатия q. @[reg] — Выполнения команд в регистре [reg].
4.10 Настройки
:set — Работа с опциями (без имени опции показывает установленные опции).
all — показать все опции; termcap — показать только терминальные опции; <opt> — активирует опцию если она логическая; <opt>! — инвертирует опцию; <opt>& — устанавливает стандартное значение опции; no<opt> — деактивирует опцию; <opt>=<value> — установка значения опции в <value>; <opt>? — показать значение опции.
:options — Установка различных опций.
4.11 Опции
ai — При начале новой строки отступ копируется из предыдущей. aw — Сохраняет содержимое файла, если он был изменен перед выполнением некоторых команд. bk — Создаёт резервную копию файла при перезаписи. bkc — Определяет метод создание резервной копии:
<yes> — Копирует существующий файл и перезаписывает старый;
<no> — Переименовывает существующий файл и создает новый;
<auto> — Выбирает наиболее оптимальный вариант.
bin — Редактирование файла в бинарном режиме. dict — Список файлов с словарями автозавершения ключевых слов (разделяются запятыми, переключение Ctrl-X + Ctrl-K). dy — Изменяет способ отображение текста. ef — Имя файла с ошибками в режиме быстрой отладки. efm — Описание формата строки файла с ошибками, записанное в стиле scanf. fenc=<code> — Перекодировать файл в кодировку <code> (set fenc=koi8-r). ff=<format> — Изменить формат файла на <format> (dos,unix,mac). fcl — Если равно "all", то группировка автоматически закрываются, при выходе курсора за её пределы. fdm — Определяет метод группировки для текущего окна. ic — Игнорировать регистр при поиске. mef — Имя файла ошибок, возникших при выполнении команды :make . mouse=a — Включить мышь в X или GUI. mp — Программа, используемая при выполнении команды :make . ml — Включает непосредственное включение строки конфигурации в редактируемый файл. number — Показывать номера строк. scrollbind — Установить совместную прокрутку содержимого окон. sbr — Символы, которыми обозначаются автоматически перенесённые строки. sm — Если установлено, то при вводе закрывающей скобки происходит быстрая подсветка соответствующей ей открывающей скобки. sw — Число пробелов используемых при автоотступе. ts — Размер табуляции. tw — Максимальное число символов, которые могут быть введены в одну строку. tsr — Список файлов, по которым осуществляется поиск словарных статей (<CTRL>+X + <CTRL>+T). ul — Максимальное число изменений, которые могут быть отменены. ve — Включает автоматическое заполнение пробелами/табуляторами при навигации по тексту. vb — Заменить звуковой сигнал визуальным. wrap — Заворачивание строк длиннее ширины экрана. wb — При перезаписи файла, создается его временная копия.
4.12 Команды интеграции
:help com — Получение помощи по команде <com>. Префиксы команд:
:! com — Запускает в оболочке команду <com>. :!! — Повторяет предыдущую команду :! . :r! com — Вставить в позицию курсора "выхлоп" команды <com>. :r file — Вставляет в текст содержимое файла <file>.
4.13 Группировка текста
:mkview — Создание/сохранение группировок файла. :loadview — Загрузка группировок файла. zf — Создать группировку выделенного участка (маркер группировки). zfap — Создать группировку параграфа (маркер группировки). zd — Удалить группировку. zE — Удалить все группировки. zo — Открыть текущую группировку. zO — Открыть текущую группировку рекурсивно. zr — Открыть все группировки. zc — Скрыть/закрыть текущую группировку. zС — Скрыть/закрыть текущую группировку рекурсивно. zM — Скрыть/закрыть все группировки.
4.14 Компиляция/отладка программ
:make — Вызов команды make (сборка проекта). :cc[numb] — Отображение ошибки с указанным номером. :cn — Перейти к следующей ошибке. :cp — Перейти к предыдущей ошибке. :cr — Перейти к первой ошибке. :cla — Перейти к последней ошибке. :cq — Выйти из программы с возвратом кода ошибки. :cf [file] — Загрузить указанный файл в качестве файла ошибок. :cl — Отобразить все ошибки. :copen — Открыть окно со списком ошибок. :cclose — Закрыть окно со списком ошибок. :cscope — ?
4.15 Другое
^p, ^n — Дополнение слова используя в качестве словаря весь текст или дополнительные источники (include файлы). Sh+K — Вызов man по команде под курсором. [i — Показать определение (included) переменной, функций ... . [d — Показать определение (defined) МАКРО. ga — Информация о символе под курсором. g ~ [com] — Изменение регистра букв на участке текста, через который перенесет команда [com]. :ls — Список буферов. :badd [file] — Добавить файл в буфер. :bdelete [N] — Выгрузить буфер. :buffer [N] — Перейти к буферу [N]. :hardcopy — Распечатать. :iabbrev — Описание аббревиатур (:iabbrev L$ Linux).
4.16 Часто используемые команды (желательно запомнить)
[N]G — Переход на строку <N>, 0G - BOF, $G - EOF. % — Переходит на противоположную скобку: ()[].... . ^] — Переход по ссылке или на определение функции. ^T — Возврат после перехода по ссылке. ^O — Назад по списку переходов. ^I — Вперёд по списку переходов. u, :u — Откат. U — Отменить все изменения, повлиявшие на текущую строку. ^R,:red — Накат. . — Повторение предыдущей команды изменившей буфер. m[M] — Установить метку <M> в текущую позицию. 'M — Перемещение в начало строки с меткой <M>. `M — Перемещение на метку <M>. :copen — Показать окно ошибок (после вызова команды типа make). ^p, ^n — Дополнение слова используя в качестве словаря весь текст или дополнительные источники (include файлы). [i — Показать определение переменной, функций ... .