OpenSCADAWiki: Roman Savochenko/ Vim Short All ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of RomanSavochenko/VimShortAll from 2006-02-11 21:16:41..

VIM -- кратко обо всём.


Автор: RomanSavochenko
Примечание: Документ создаётся автором с 2002г. До настоящего момента документ создавался в среде LaTeX. На текущий момент выполняется публикация документа в среде Wiki с последующим оформлением в среде dockbook. LaTeX версию документа можно взять PDF Documentздесь и исходник здесь. Документ оформляется в среде WIKI для привлечения к его развитию общественности. Разрешается вносить изменения в данный документ с целью исправления обнаруженых ошибок или с целью его дополнения.


Contents

1 Опции командной строки

-t {tag} -- При открытии файла позиционирует курсор на функции <teg>. Должен присутствовать файл tags сформированный командой ctags. В случае отсутствия такой функции файл не открывается.
+N -- При открытии файла позиционирует курсор на строке с номером N.


2 VIM-файлы

{home}/.vimrc -- Локальный файл конфигурации VIM.
/usr/share/vim/ -- Каталог ресурсных файлов VIM.

vimrc_example.vim -- Пример конфигурационного файла.

3 Структура команд

[N][команда][объект][N1][команда перемещения]
где:

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 -- Тоже, но курсор остаёться в той-же строке.
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>] -- Открыть новый файл заместив старый (без имени файла - перечитывает текущий).

Доступные опции [++opt]:
enc -- перекодировка (++enc=cp866);
ff -- формат файла (++ff=unix).

Доступные команды [+cmd]:

+ -- начать с конца файла;
+<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>. Префиксы команд:

<ничего> -- нормальная команда;
v_ -- визуальная команда;
i_ -- вставочная команда;
: -- команда командной строки;
с_ -- редактирование командной строки;
- -- командные аргументы.

:! com -- Запускает в оболочке команду <com>.
:!! -- Повторяет предыдущую команду :! .
:r! com -- Вставить в позицию курсора "выхлоп" команды <com>.
:r file -- Вставляет в текст содержимое файла <file>.

4.13 Группировка текста

:mkview -- Создание/сохранение группировок файла.
:loadview -- Загрузка группировок файла.
zf -- Создать группировку выделенного участка (маркер группировки).
zfap -- Создать группировку параграфа (маркер группировки).
zd -- Удалить группировку.
zE -- Удалить все группировки.
zo -- Открыть текущую группировку.
zO -- Открыть текущую группировку рекурсивно.
zr -- Открыть все группировки.
zc -- Скрыть/закрыть текущую группировку.
-- Скрыть/закрыть текущую группировку рекурсивно.
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].
:print -- Распечатать.
: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 -- Показать определение переменной, функций ... .


 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]