Skip to content

Instantly share code, notes, and snippets.

@RomeoGolf
Last active April 7, 2024 15:06
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RomeoGolf/6c131c4460ecedfce8c32f5cf90b4dbc to your computer and use it in GitHub Desktop.
Save RomeoGolf/6c131c4460ecedfce8c32f5cf90b4dbc to your computer and use it in GitHub Desktop.
Редактирование командной строки и строки поиска
<S-Left> или <C-Left> - смещает курсор на одно слово влево
<S-Right> или <C-Right> - смещает курсор на одно слово вправо
<C-B> = <Home> - в начало строки
<C-E> = <End> - в конец строки
<C-H> = backspace
<C-J> = <CR> = <NL>
<C-C> = <Esc>
<C-W> - удаляет слово, стоящее перед курсором.
<C-U> - удаляет все символы перед курсором.
<C-V> - в Windows – paste, иначе как <C-Q>
<C-Q> - ввод символа тремя цифрами
<C-\> e {expr} вычисляет выражение и заменяет им командную строку
<C-D> - список соответствия шаблону перед курсором для дополнения командной строки
<C-L> - вставляет самое длинное соответствие шаблону перед курсором
<C-R> {символ} вставляет из буфера или спецрегистра
<C-R> <C-F> вставляет имя файла под курсором (работает и для слов)
<C-R> <C-P> вставляет имя файла под курсором с путем к нему (как gf)
<C-R> <C-W> вставляет слово под курсором
<C-R> <C-A> вставляет СЛОВО под курсором (разделители - пробелы)
<C-R> <C-R> {0-9a-z"%#:-=. CTRL-F CTRL-P CTRL-W CTRL-A} вставляет регистр или объект под курсором, как <C-R>, но текст вставляется буквально
<C-R> <C-O> то же
Имя файла в командной строке:
%[опции] текущий файл
:p полный путь к файлу
:8 путь в коротком формате 8:3
:~ путь относительно домашнего каталога
:. путь относительно текущего
:h голова файла без разделителей (последняя часть пути)
(:c:h дает полный путь без последнего разделителя)
:t хвост имени файла, собственно имя
:r корень имени
:e расширение
%:p:h путь к текущему файлу в т. ч. для команд :!
Диапазоны строк:
{число} абсолютный номер строки
. текущая строка
$ последняя строка в файле
% равноценно 1,$ (весь файл)
't позиция отметки t
/{шаблон}[/] следующая строка с соответствием {шаблону}
?{шаблон}[?] предыдущая строка с соответствием {шаблону}
\/ следующая строка с соотв. раннее использованному шаблону поиска
\? предыдущая строка с соотв. раннее использованному шаблону поиска
\& следующая строка с раннее использованным шаблоном замены
Определение диапазона:
a,b от строки a до соответствия b, начиная со строки, где курсор
a;b от строки a до соответствия b, начиная со строки a (курсор ставится в a)
пример диапазона:
.+3 три строки ниже позиции курсора
/это/+1 строка под строкой, следующей после строки, в которой есть слово "это"
.,$ от текущей строки до конца файла
1;/это первая строка после строки 1, в которой есть слово "это"
Некоторые команды позволяют указывать после команды число-счётчик строк. Примеры:
:s/x/X/g 5 заменить 'x' на 'X' в текущей и четырёх последующих строках
:23d 4 удалить строки 23, 24, 25 и 26
В режиме редактирования (вставки):
<CTRL> + T — Вставить табуляцию в начало текущей строки
<CTRL> + D — Удалить табуляцию из начала текущей строки
<CTRL> + Q — Вставляет символ, код которого следует за нажатием комбинации.
<CTRL> + E — Вставляет символ, который в той же позиции, что курсор, но ниже.
<CTRL> + Y — Вставляет символ, который в той же позиции, что курсор, но выше.
<CTRL> + X — Переходит в дополнительный режим.
<C-K> {ch1} {ch2} – вставка диграфов (например, Co = ©, TM = ™, M- = —, >> = », +- = ±)
:digrarhs – список диграфов, :redir > fname | digraphs | redir END
В дополнительном режиме(<CTRL> + X) выполняется автозавершение:
<C-X><C-F> — имена файлов.
<C-X><C-L> — целые строки.
<C-X><C-D> — макроопределения.
<C-X><C-I> — текущий и включенные (included) файлы.
<C-X><C-K> — слова из словаря в параметре 'dictionary'.
<C-X><C-T> — слова из тезауруса в параметре 'thesaurus'.
<C-X><C-]> — теги.
<C-X><C-V> — командная строка Vim.
<C-X><C-O> — имена функций и переменных в исходном коде программ с использованием ctags.
<C-X><C-S> — слова из spell словаря.
Редактирование:
cc, cw, c$ - удаление строки, слова, текста до конца строки с переходом в режим редактирования
S = cc, s - удаление символа с переходом в режим редактирования
D - удалить до конца строки
<CTRL> + h — удаляет последний символ
<CTRL> + w — удаляет последнее слово
<CTRL> + ? — прервать ввод
<CTRL> + v — экранирует непечатаемый символ
<C-[> = <Esc>
<C-I> = <Tab>
<C-H> = <BS>
<C-M> = <Enter>
Метки:
m{имя} Установить метку с именем {имя} - любая (одна) буква
'{имя} Переход к строке с указанной меткой
`{имя} Переход в конкретное место (строка и столбец) помеченное меткой
:marks Показать все определенные метки
' - Позиция курсора до перемещения (метка, ссылка, поиск ...)
" - Позиция курсора во время последнего редактирования
[ - Начало последнего изменения
] - Конец последнего изменения
Регистры копирования и вставки:
["x] p Вставить текст из регистра “х” после курсора
["x] P Вставить текст из регистра “х” до курсора
["x] y Копировать текущую строку в регистр “х”
10 нумерованных регистров от "0 до "9;
26 именованных регистров от "a до "z или от "A до "Z;
В режиме вставки комбинация Ctrl+R позволяет вставлять из специальных регистров:
<"> Безымянный регистр с последним удаленным/скопированным текстом
<%> Имя редактируемого файла
<#> Альтернативное имя файла
<*> Содержимое буфера обмена (X11 непосредственное выделение)
<+> Содержимое буфера обмена
</> Последний ключ поиска
<:> Последняя команда
<.> Последний вставленный текст
<-> Последнее “короткое” удаление (меньше строки)
<=> Регистр выражения, результат вычислений будет вставлен в текст, например, =5*5 - вставит 25. (Мини калькулятор)
<_> Регистр «Черная дыра».
Безымянный регистр используется при всех операциях копирования или удаления, если в качестве целевого регистра не указана «Черная дыра».
Нумерованные регистры (если не указывать целевой регистр):
Регистр "0 содержит последний скопированный фрагмент. Регистр "1 содержит последний удаленный фрагмент, если удаленный фрагмент содержит более одной строки текста. При успешном удалении фрагмент из регистра "1 переносится в регистр "2, из "2 в "3 и так далее. Содержимое регистра "9 безвозвратно теряется.
Именованные регистры записываются по прямому указанию пользователя. Если строчная буква, фрагмент перезаписывается, если заглавная, фрагмент добавляетя.
Вставка:
gp — Тоже что и p, но курсор помещается в конец вставленного текста.
gP — Тоже что и P, но курсор в конец вставленного текста.
]p — Тоже что и p, но дополнительно изменяется отступ вставляемого текста, аналогично отступу текущей строки.
]P — Тоже что и P, но дополнительно изменяется отступ вставляемого текста, аналогично отступу текущей строки.
Форматирование:
Выравнивание:
:%!fmt Выровнять все строки
!}fmt Выровнять все строки в текущей позиции
5!!fmt Выровнять следующие 5 строк
Форматирование текста
:ce выравнивание по центру
:ri по правому краю
:le по левому краю
:{center, right} [width] - выравнивает текст по {центру, правому краю}. width - максимальная ширина строки.
gq} : форматировать параграф
ggVGgq : форматировать весь файл
Vgq : текущую строку
# сделать строки длиной 70 символов, если возможно, ограничить ;
:s/.\{,69\};\s*\|.\{,69\}\s\+/&\r/g
Регистр символов:
Vu Перевести строку в нижний регистр
VU Перевести строку в верхний регистр
g~~ Инвертировать регистр в текущей строке.
g~,~[com] Изменение регистра на участке, заданном командой [com]
gu[com] Превращение букв в строчные на участке переноса команды [com]
guu — Превращение в строчные буквы в текущей строке
gU — Превращение букв в прописные
gUU — Превращение в прописные буквы в текущей строке
g?? — Перекодировка по алгоритму rot13 в текущей строке.
//g?[com] — на участке текста переноса команды [com].
vEU Перевести слово под курсором в верхний регистр
vE~ Инвертировать регистр слова
ggguG Перевести весь текст в нижний регистр
:set ignorecase Регистронезависимый поиск
:set smartcase Игнорировать регистр при поиске, если в искомом выражении нет символов верхнего регистра
:%s/\<./\u&/g Перевести первую букву каждого слова в верхний регистр
:%s/\<./\l&/g Перевести первую букву каждого слова в нижний регистр
:%s/.*/\u& Перевести первую букву первого слова каждой строки в верхний регистр
:%s/.*/\l& Перевести первую букву первого слова каждой строки в нижний регистр
! — Обработка внешней программой.
= — Расстановка отступов для языка программирования С.
<[com] — Сдвиг влево на значение (shiftwidth) строк по команде[com].
<< — Сдвиг влево текущей строки.
>[com] — Сдвиг вправо на значение (shiftwidth) строк по команде [com].
>> — Сдвиг вправо текущей строки.
Перемещение, поиск:
n| - на столбец n
n_ — Вниз на n-1 строк и на первый не пустой символ.
n% — На n процентов от всего буфера.
g — Перемещение по тексту. Объекты:
0, home — на левый край экрана;
^ — на первый непустой символ;
m — на половину ширины экрана;
$, end — на правый край экрана;
k, up — на одну строку экрана вверх;
j, down — на одну строку экрана вниз;
g — на первую строку;
o — на [N] байт в буфере;
e — назад до конца слова;
E — назад до конца слова (от пробела до пробела).
w, e, ge, b - перемещение по словам вперед, на конец слова, назад на конец
слова и назад на слово соответственно. С shift - слова разделяются только пробелами, не пунктуацией.
[[,]] в начало/конец функций с С-подобным синтаксисом (с рамками '{', '}')
[[ — Вперед на одну секцию или до { в начале строки.
][ — Вперед на одну секцию или до } в начале строки.
]] — Назад на одну секцию или до { в начале строки.
[] — Назад на одну секцию или до } в начале строки.
{,} по абзацам (разделенным пустой строкой)
(,) по предложениям (с учетом пробела и точки)
[m Переход назад к началу описания метода (Java)
[M Переход назад к концу описания метода (Java)
]m Переход вперед к началу описания метода (Java)
]M Переход вперед к концу описания метода (Java)
[* Переход назад к началу блока коментария (/*)
]* Переход вперед к концу блока коментария (*/)
[( — Переход к предыдущей незакрытой ( .
[{ — Переход к предыдущей незакрытой { .
[) — Переход к следующей не открытой ( .
[} — Переход к следующей не открытой } .
[# — Переход на предыдущий незакрытый #if или #else.
]# — Переход на следующий неоткрытый #else или #endif.
[*, [/ — Переход на предыдущее начало С-комментария /*.
]*, ] / — Переход на следующий конец С-комментария */.
<Ctrl>+G, :file — Информация о текущем положении курсора в тексте.
gg в начало файла
G в конец файла
nG, ngg к строке номер n = :n<Enter>
% переход к парной скобке (разным парным элементам)
; — Повторить последнюю команду F,f,T,t в том же направлении.
, — Повторить последнюю команду F,f,T,t в противоположном направлении.
- — На строку вверх и на первый не пустой символ.
+, Enter — На строку вниз и на первый не пустой символ.
# как * но в обратном направлении
gd go definition перейти к локальному определению слова (?)
gD go definition перейти к глобальному определению слова (?)
g* То же, что и "*", но без использования "\<" и "\>" вокруг слова. Это позволяет также находить неполные соответствия.
g# То же, что и "#", но без использования "\<" и "\>" вокруг слова. Это позволяет также находить неполные соответствия.
:[address]s/[search]/[repl]/[gcie] - Поиск [search] и замена на [repl]
(в режиме VISUAL - без адреса и в выделенной области):
[gcie]:
< > — первого вхождения;
<g> — всё;
<c> — с запросом подтверждения;
<i> — игнорируя регистр.
<e> — игнорируя ошибку отсутствия соответствия шаблону.
[address]:
<%> — весь текст;
<1> — первая строка;
<.> — текущая строка;
<$> — последняя строка;
<1,3> — между строками 1–3;
<.,$> — от текущей до последней.
Прокрутка экрана
Ctrl+E — Вниз на одну строку.
Ctrl+D — Вниз на scroll строк. если использовать цифру то далее она будет по умолчанию.
Ctrl+F, PgDwn — Вниз на одну страницу.
Ctrl+Y — Вверх на одну строку.
Ctrl+U — Вверх на scroll строк. если использовать цифру то далее она будет по умолчанию.
Ctrl+B, PgUp — Вверх на одну страницу.
zEnter — Прокрутка вверх, пока курсор не окажется на первой строке.
zt — Тоже, но курсор остаётся в той-же строке.
z[N]Enter — Изменить размер окна до <N> строк.
z. — Прокрутка помещающая строку с курсором в центре экрана.
zz — Тоже, но курсор остается в том же столбце.
z- — Прокрутка вниз, пока курсор не окажется в на последней строке.
zb — Тоже, но курсор остаётся в том же столбце.
zl — На один символ влево.
zh — На один символ вправо.
zL — На полуширину экрана влево.
zH — На полуширину экрана вправо.
zs — Помещает курсор на левый край.
ze — Помещает курсор на правый край.
H перемещение на верхнюю строку экрана (5H на пять строк ниже верхней строки)
M перемещение на среднюю строку экрана
L перемещение на последнюю строку экрана (5L на пять строк выше нижней строки)
Разделение окна
:e filename Редактировать filename в текущем окне
:split filename Разделить окно и открыть filename
ctrl-w + стрелка ВВЕРХ Переместить курсор в верхнее окно
ctrl-w ctrl-w Переместить курсор в следующее окно
ctrl-w_ Максимизировать текущее окно
ctrl-w= Подогнать окна по размеру
10 ctrl-w+ Увеличить текущее окно на 10 строк
:vsplit file Вертикально разделить окно
:sview file Разделить окно и открыть file только для чтения
:hide Закрыть текущее окно
:only Закрыть все окна, кроме текущего
:b 2 Открыть #2 в текущем окне
Манипуляции с окнами
^W — Операции с окнами:
i, d, f — новое окно с
i-переменой, d-определением, f-файлом под курсором;
n (:new) — открыть новое окно;
:vnew - то же, но новое окно слева от текущего
s (:sp) — сдублировать еще одно окно от текущего (горизонт.);
v (:vs) — сдублировать еще одно окно от текущего (верт.);
с, q (:clo) — закрыть текущее окно;
o (:only) — закрыть все остальные окна;
r — сдвиг вверх;
R — сдвиг вниз;
x — сдвиг на другое окно с активизацией другого окна;
K — переместить текущее окно вверх;
J — переместить текущее окно вниз;
H — переместить текущее окно влево;
L — переместить текущее окно вправо;
k, Up — активизировать окно сверху;
j, Down — активизировать окно снизу;
h, Left — активизировать окно слева;
l, Right — активизировать окно справа;
w — активизировать следующее окно;
p — активизировать предыдущее окно;
+ (:res+N) — увеличить высоту окна на одну строку;
- (:res-N) — уменьшить высоту окна на одну строку;
> — увеличить ширину окна на один символ;
< — уменьшить ширину окна на один символ;
= — сравнять размеры окон;
_ — установить максимальную высоту окна;
1_ — установить минимальную высоту окна;
| — установить максимальную ширину окна;
1| — установить минимальную ширину окна.
:wa, :qa, :wqa - аналогичны :w, :q и :wq, но со всеми окнами.
:res[ize] [N] - Задает высоту окна.
:vertical res[ize] [N] - Задает ширину окна.
Внешнее (ФС, консоль, окна)
:!pwd Выполнить команду pwd и вернуться
!!pwd Выполнить команду pwd и вставить результат в редактор
:sh Открыть шелл
$exit Вернуться в редактор из шелла
:e . открывает браузер в текущем фрейме
:Exp(lore) : file explorer заметьте заглавную E
:Sex(plore) : file explorer в разделенном окне
:Sex делает split и открывает браузер в новом
:browse e Графический файл-менеджер
:ls Список буферов
:cd .. Перейти в родительскую директорию
:args Список открытых файлов
:args *.php Открыть все файлы с расширением *.php
:sp filename открывает файл в новом буфере и делает split
Работа со встроенным файловым менеджером.
- перейти на каталог выше
mf пометить файл
D удалить помеченые файлы или файл под курсором, если помеченых нет
R переименовать файл под курсором
d создать новый каталог
% создать новый файл
:vimgrep /искомая строка/ <Путь к файлам> | :copen - поиск по файлам в заданном каталоге с определенной строкой и выводом соответствий в окно
:sp = <Ctrl>+W S = <Crtl>+W <Ctrl>+S разделение по горизонтали
:vs = <Ctrl>+W v = <Crtl>+W <Ctrl>+V разделение по вертикали
:new = <Ctrl>+W n = <Crtl>+W <Ctrl>+N разделение по горизонтали с новым чистым буфером
:vne то же вертикально
Персональные (мои) привязки (map):
Ctrl + Up, Ctrl + k прокрутка экрана вниз (сдвиг курсора вверх с сохранением в той же строке экрана)
Ctrl + Down, Ctrl + j то же, в другом направлении
F7 подсветка синтаксиса
Ctrl + F7 отключение подсветки синтаксиса
F12 переключение раскладки рус/лат
Прочее:
определение команды, добавляющей номер (начиная с 1) в начало строки в диапазоне
command -range=% Addln <line1>,<line2>s/^/\=printf('%d] ' , line('.') - <line1> + 1)/g | noh
команда вставки номеров строк с пробелом после номера
:%s/^/\=line('.').' '/ | noh
%s/^/\=printf('%4d ', line('.')) | noh
Прочее:
20<C-a> - увеличит число под курсором на 20. Число может быть dec(134), hex (0x86) или oct (0777).
17<C-x> - уменьшит число под курсором на 17. Если модификатор повторения не указывать, числа будут уменьшаться/увеличиваться на единицу.
yypWE<C-a>E<C-a> - позволяет сдублировать с автоинкрементацией строки вида #define wSIPR0 0x000F.
gf : открыть файл, имя которого под курсором (SUPER)
ga : показать hex,ascii значение символа под курсором
ggVGg? : применить шифрование по алгоритму rot13 ко всему файлу
ggg?G : применить rot13 ко всему файлу (быстрее для больших файлов)
<C-A>,<C-X> : увеличить, уменьшить число под курсором
:%s/\s\+$// удаляет хвостовые пробелы
:w >>~/file.txt Дописать содержимое буфера в конец другого файла
:scriptnames всё подключенное (скрипты)
:set nospell
отключает подчеркивание неправильных слов после проверки правописания по F7
:read file вставляет в текущую позицию содержимое файла
:read !command вставляет результат работы команды
:23r infile Вставить содержимое файла infile после 23 строки
Выполнение глобальной команды:
:[диапазон]g[lobal]/{шаблон}/[команда]
Выполнить команду (по умолчанию: ":p") на строках, лежащих в указанном [диапазоне], где имеется соответствие указанному {шаблону}.
:[диапазон]g[lobal]!/{шаблон}/[команда]
Выполнить команду (по умолчанию: ":p") на строках, лежащих в указанном [диапазоне], где НЕ имеется соответствия указанному {шаблону}.
:v = :g!
Например: Все строки, что содержат "foo" перенести в конец файла, в том же порядке, в каком они встречаются по документу:
:%g/foo/m$
:set textwidth=72 - задает автоматическое форматирование строк таким, чтобы их длина не превышала 72 символа. Во время набора текста Vim будет сам вставлять необходимые переносы строк.
gqap - заставляет Vim переформатировать текущий параграф.
gggqG - заставляет Vim переформатировать весь текст.
Переформатировать часть текста — выделить нужные строки и нажать gq.
Просмотр бинарных файлов
vim -b -c '%!xxd' binary_file
Если необходимо изменить файл - менять hex значения (не printable часть) и выполнить команду :%!xxd -r - она преобразует обратно hex представление в бинарный файл, который затем можно сохранить.
qa - запись макроса в регистр a,
@a - воспроизведение макроса a
Настройка
Всякого рода файлы для vim - vimrc, плагины, цветовые схемы - даже для Windows следует писать в кодировке fileencoding=utf8 и с линуксовым форматом конца строки filetype=unix. Тогда эти файлы будут переносимы из Windows в Linux или Cygwin. Исключение составляют строки, в которых есть текст для отображения в интерфейсе программы, например, в пользовательских меню — такой текст должен быть в системной кодировке, и его логичнее хранить в отдельном подключаемом файле.
Если при редактировании файла появляется файл с аналогичным именем, точкой в начале и расширением un~ - это файл истории изменений для возможности отката по undo после закрытия и повторного открытия файла. Если эта возможность не нужна, следует в vimrc вставить команду
set noundofile
:set — Работа с опциями (без имени опции показывает установленные опции).
all — показать все опции;
termcap — показать только терминальные опции;
<opt> — активирует опцию если она логическая;
<opt>! — инвертирует опцию;
<opt>& — устанавливает стандартное значение опции;
no<opt> — деактивирует опцию;
<opt>=<value> — установка значения опции в <value>;
<opt>? — показать значение опции.
:options — Установка различных опций.
Некоторые сочетания клавиш могут быть привязаны (:map) к другим действиям, например, (Ctrl + a) для Windows может быть настроено на «выделить все» вместо «увеличить число под курсором». Такие сочетания можно перепривязать с помощью noremap на что-нибудь другое, например, функциональные клавиши, если не хочется терять ни их новое значение, ни возможную функциональность.
Если в vimrc вставить строку
set columns=85
то она будет срабатывать и в консольной, и в оконной версиях. В консольной версии vim, запущенный в xterm, не будет вписываться в окно и не будет расширять xterm до указанной ширины. Команду установки ширины следует либо писать в gvimrc (где настраивается именно gvim), либо в vimrc проверять условие:
if has("gui_running")
set columns=85
endif
так же можно проверить "win32" или "unix" для того, чтобы сделать один файл настройки под разные платформы. При этом лучше писать настройки в отдельный подключаемый файл, например, vimrc-personal.vim, который подключать в vimrc или _vimrc с помощью
source $VIM/vimrc-mix.vim
source ~/vimrc-mix.vim
source /usr/vim/vimrc-mix.vim
в зависимости от платформы и личных предпочтений хранения настроек, и vimrc уже не трогать.
Vimball + pathogen
Открыть vimball:
$ vim somthing.vba
или
$ vim
:e /path-to/somthing.vba
:!mkdir ~/.vim/bundle/bundle-dir-name-here
(или создать папку вне vim)
:UseVimball ~/.vim/bundle/bundle-dir-name-here
Некоторые полезные опции:
" отображение выполняемой команды
set showcmd
Вставка возможных кодировок позволяет при открытии файла попытаться определить кодировку автоматически:
set fileencodings=utf8,cp1251,cp866,koi8r,ucs-2le
Индивидуальные настройки файла
При открытии файла vim анализирует его содержимое и использует строку типа
vim: <param1>[:<param2>[:…:<paramN>]]
для своей конфигурации. Обычно в тексте исходного кода эту строку скрывают в комментарии. Размещать её можно в любом месте текста, но лучше в начале.
Пример для Makefile:
# vim: sw=8:ts=8:si:noexpandtab
Пример для ассемблера AVR (при установленной схеме расцветки):
; vim: sw=4:ts=4:si:et:filetype=asm:syntax=avr
Пример для HTML:
<!-- Setup VIM: ex: et ts=2 shiftwidth=2 enc=utf-8 : -->
Пример для C/C++:
// vim: sw=4:ts=4:si:et
Плагины:
calendar matsumoto
:Calendar Открывает календарь на сегодняшней дате в вертикально разделенном окне
:Calendar 1991 11 то же на заданной дате
:CalendarH на сегодняшней дате в горизонтально разделенном окне
:CalendarT на полный экран
Быстрые привязки (\ = <LocalLeader>):
\cal: Vertically-split calendar
\caL: Horizontally-split calendar
qbuf
F4 открыть
l переключает режим «в списке»/«все»
k/j или <Up>/<Down> выбор буфера.
d : удалить буфер
w : стереть буфер
s : открыть буфер в новом горизонтальном окне
u : открыть буфер
<enter> : открыть буфер и выйти из QuickBuf; если этот буфер уже открыт — переключиться на его окно.
<esc> выход
Можно использовать номер буфера в командах: '2d' удалит второй буфер в списке
индикаторы в списке:
* : буфер в активном окне
= : буфер, открытый в неактивном окне
[+] : буфер с незаписанными изменениями
bufexplorer
Быстрые привязки (\ = <Leader>):
\be or :BufExplorer запустить в текущем окне
\bt or :ToggleBufExplorer перекл. (вкл/выкл) в текущем окне
\bs or :BufExplorerHorizontalSplit в новом горизонт. окне
\bv or :BufExplorerVerticalSplit в новом вертикальном окне
b быстрое переключение к буферу b<номер>.
d |:delete| удаляет буфер под курсором в списке. 'buflisted' буфера очищается. Это позволяет снова показать буфер, используя команду 'show unlisted'.
D |:wipeout| вытирает буфер из списка и больше не покажет.
f Toggles whether you are taken to the active window when selecting a buffer or not.
o открывает буфер под курсором в текущем окне.
p переключает объединение пути и имени.
q закрыть bufexplorer.
r обратный порядок сортировки.
R переключает абсолютный/относительный путь.
s циклически переключает сортировку по пути, расширению, частоте использования (MRU) и полному пути.
S то же в обратном порядке.
t открывает буфер под курсором в другой вкладке.
T переключает показывать ли буферы только в этой вкладке.
u показывать ли буферы "unlisted" (не в списке).
Индикация буферов в списке:
u буфер вне списка.
% буфер загружен в активном окне
# "соседний" буфер, для команд ":e #" и CTRL-^
a активный буфер: содержимое буфера загружено и отображается на экране
h скрытый буфер: загружен, но не отображается на экране.
- буфер с выключенной опцией 'modifiable'
= буфер, загруженный только для чтения
+ буфер с изменённым содержанием
x буфер, при чтении которого возникли ошибки
NERD tree commands
:NERDTree [<start-directory> | <bookmark>]
открывает NERD tree. на заданной директории или закладке
:NERDTreeFromBookmark <bookmark>
открывает NERD tree. на заданной закладке
:NERDTreeToggle [<start-directory> | <bookmark>]
если открыт в этой вкладке, переоткрывается заново.
если не открыт — аналогично команде |:NERDTree|.
:NERDTreeMirror
разделяет NERD tree из другой вкладки в данной вкладке.
Изменения в одном влияют на другой.
Если tree один, «зеркалируется» он, иначе скрипт спросит.
:NERDTreeClose закрывает NERD tree в этой вкладке.
:NERDTreeFind ищет текущий файл в tree.
:NERDTreeCWD меняет tree root на текущую директорию.
:Bookmark [<name>]
делает закладку на данном узле tree с именем <name>.
Если имя существует — перезаписывается.
:BookmarkToRoot <bookmark>
Делает директорию, соответствующую закладке, корневой.
:RevealBookmark <bookmark>
If the node is cached under the current root then it will be revealed
and the cursor will be placed on it.
:OpenBookmark <bookmark>
<bookmark> должна указывать на файл. Файл открывается,
как при |NERDTree-o|
:ClearBookmarks [<bookmarks>]
Удаляет все указанные закладки. Если не указаны —
то все закладки данного узла.
:ClearAllBookmarks удаляет все закладки
:ReadBookmarks
перечитывает закладки в |'NERDTreeBookmarksFile'|.
NERD tree mapping
o.......Open files, directories and bookmarks
go......Open selected file, but leave cursor in the NERDTree
t.......Open selected node/bookmark in a new tab
T.......Same as 't' but keep the focus on the current tab
i.......Open selected file in a split window
gi......Same as i, but leave the cursor on the NERDTree
s.......Open selected file in a new vsplit
gs......Same as s, but leave the cursor on the NERDTree
O.......Recursively open the selected directory
x.......Close the current nodes parent
X.......Recursively close all children of the current node
e.......Edit the current dir
<CR>...............same as |NERDTree-o|.
double-click.......same as the |NERDTree-o| map.
middle-click.......same as |NERDTree-i| for files, same as
|NERDTree-e| for dirs.
D.......Delete the current bookmark
P.......Jump to the root node
p.......Jump to current nodes parent
K.......Jump up inside directories at the current tree depth
J.......Jump down inside directories at the current tree depth
<C-J>...Jump down to the next sibling of the current directory
<C-K>...Jump up to the previous sibling of the current directory.
C.......Change the tree root to the selected dir
u.......Move the tree root up one directory
U.......Same as 'u' except the old root node is left open
r.......Recursively refresh the current directory
R.......Recursively refresh the current root
m.......Display the NERD tree menu
cd......Change the CWD to the dir of the selected node
CD......Change tree root to the CWD
I.......Toggle whether hidden files displayed
f.......Toggle whether the file filters are used
F.......Toggle whether files are displayed
B.......Toggle whether the bookmark table is displayed
q.......Close the NERDTree window
A.......Zoom (maximize/minimize) the NERDTree window
?.......Toggle the display of the quick help
vim-bookmarks (Groeger)
mm :BookmarkToggle добавить/удалить закладку
mi :BookmarkAnnotate <TEXT>
добавить/удалить аннотацию
mn :BookmarkNext следюующая закладка
mp :BookmarkPrev предыдущая закладка
ma :BookmarkShowAll показать все закладки
mc :BookmarkClear очистить в этом буфере
mx :BookmarkClearAll очистить все
mkk :BookmarkMoveUp поднять закладку
в эту строку
mjj :BookmarkMoveDown опустить закладку
в эту строку
:BookmarkSave <FILE_PATH> сохранить
закладки в файл :BookmarkLoad <FILE_PATH> загрузить
закладки из файла
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment