В vimrc
примерном файле
inoremap Ctrl-u Ctrl-G u Ctrl-u
Какое значение inoremap
и какая функция этой линии?
В vimrc
примерном файле
inoremap Ctrl-u Ctrl-G u Ctrl-u
Какое значение inoremap
и какая функция этой линии?
vim
:help inoremap
очень поэтический об этом:
:ino[remap] {lhs} {rhs} mapmode-i :ino :inoremap
:ln[oremap] {lhs} {rhs} mapmode-l :ln :lnoremap
:cno[remap] {lhs} {rhs} mapmode-c :cno :cnoremap
Map the key sequence {lhs} to {rhs} for the modes
where the map command applies. Disallow mapping of
{rhs}, to avoid nested and recursive mappings. Often
used to redefine a command. {not in Vi}
Таким образом, он делает некоторые вставки-вставки для ^U, которые показывают имя файла (^G
, отменяет последнее изменение (u
) и прокручивает буфер вверх на половину экрана (^U
).
Я понятия не имею, почему кому-то нужна эта конкретная последовательность команд, за исключением демонстрации функции inoremap
- ^U
в отношении означает значение, которое команда имела при создании определения, вместо того, чтобы перезвонить в переопределенное отображение ^U
.
Подробнее о том, почему команда имеет такое странное имя, см. это отличное описание между разницей между map
и noremap
. Очень полезно знать!
Подведем итог этой статье: цитата выбора:
Один недостаток команд
*map
- опасность рекурсии...Vim предлагает другой набор команд отображения, которые не будут принимать сопоставления когда они выполняют свои действия.
Итак, noremap
появился, чтобы избежать ужасной рекурсии сопоставлений, таких как
:nmap dd O<esc>jddk
где dd
в правой части карты возвращается к определению левой стороны карты, а Vim застревает в бесконечном цикле!
Я тоже подумал об этом. См. http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-Tutorial (Part_1) #Insert_mode_maps:
Чтобы отобразить ключи, которые работают только в режимах вставки и замены, используйте команду "imap" или "inoremap".
Пример. Следующая команда позволяет вставить имя каталога текущего буфера:
:inoremap <F2> <C-R>=expand('%:p:h')<CR>
Чтобы отобразить текущие карты режимов вставки, используйте команду "imap" без каких-либо аргументов:
:imap
Чтобы удалить раскладку из режима вставки, используйте команду ": iunmap". Например, следующая команда удаляет карту режима вставки для.
:iunmap <F2>
В качестве ключей для печати вставьте символ в текущий буфер в режиме вставки, вы должны использовать непечатаемые ключи для создания карт режима вставки. Некоторые примеры для непечатаемых ключей включают функциональные клавиши, клавиши с префиксом Ctrl или Alt.
[надрез]
Так, например, в моем ~/.vimrc у меня есть
inoremap jk <ESC>
inoremap jj <Esc>
который при нажатии в режиме Вставки возвращает меня в нормальный режим.