Я отвечаю на этот вопрос четыре года спустя, потому что предоставленный ответ является частичным решением, которое не полностью решает исходный вопрос.
У меня точно такое же желание, как у olibre, и я хотел найти полное решение. Я подхожу к этому с другой точки зрения - я привык к редактированию строк Emacs в bash - но проблема та же. Я хочу перенести это в режим вставки Vim (только).
Далее рассматриваются все запросы на связывание клавиш в исходном вопросе, заданном olibre, плюс несколько дополнений:
" Mimic Emacs Line Editing in Insert Mode Only
inoremap <C-A> <Home>
inoremap <C-B> <Left>
inoremap <C-E> <End>
inoremap <C-F> <Right>
" â is <Alt-B>
inoremap â <C-Left>
" æ is <Alt-F>
inoremap æ <C-Right>
inoremap <C-K> <Esc>lDa
inoremap <C-U> <Esc>d0xi
inoremap <C-Y> <Esc>Pa
inoremap <C-X><C-S> <Esc>:w<CR>a
Единственные привязки, которые я не могу получить, чтобы работать в этой точке, это <Alt-B>
и <Alt-F>
, которые пропустили бы целые слова. Всякий раз, когда я связываю <Esc>
, <Alt>
или <Meta>
комбинации, gVim (v7.4 на Windows) выводит символы с ударением. Пожалуйста, не стесняйтесь редактировать этот ответ, если у вас есть решение этой проблемы. Я заставил работать комбинации Alt, основываясь на предложении другого поста просто использовать специальные символы. Я вставил их выше.
редактировать
- (редактировать не оригинальным ответным постером) -
Я использовал следующее в Neovim и Windows 10. Возможно, вам придется заменить «A» на «M» в других ОС, поскольку «alt» может быть «meta» в других местах. Я не играл с этим достаточно.
inoremap <A-x> <Esc>:
inoremap <A-f> <Esc>lwi
inoremap <A-b> <Esc>bi
inoremap <A-S-f> <Esc>lWi
inoremap <A-S-b> <Esc>Bi
<Esc>pa
было бы лучше для<C-Y>
<C-K>
, не работает, когда курсор находится в крайнем левом положении - он должен удалить всю строку, ноEsc>lDa
первый символ будет удален.Вы можете сопоставить любую команду в режиме вставки с чем угодно, используя
:imap
команду, или сохранить ввод с помощью:im
. Для первого сопоставления вы можете набрать (в обычном режиме)::im <C-A> <esc>^i
Который переходит в обычный режим (с escape), жмет
^
для вас и возвращается в режим вставки. Смотрите справку для получения дополнительной информации::help :imap
или короче::h :im
Обратите внимание, что вы можете перезаписывать существующие сопоставления клавиш. Поместите команды в свой
.vimrc
файл конфигурации, если вы хотите, чтобы они были там для каждого документа.источник
:im <c-a>
. Если написано «Сопоставление не найдено», вы не будете перезаписывать что-либо. Я не думаю, что это станет намного более надежным, чем это ...vim
команд ... Пожалуйста, знаете, где я могу найти список:im
последних аргументов? FYI, я также использоваться со следующимиbash
командами:M-backspace
,M-F
,M-B
,M-D
... Это будет хорошо , если кто - то уже сделал это и разделяет его работу, не так ли? (что-то вродеevil
) Поэтому я мог бы повторно использовать его:im
сопоставление клавиш, не делая это сам (подвержен ошибкам). Вы видите, что я имею в виду?:im
. Чтобы сделать комментарий более высокого уровня: если вы хотите иметь возможность использовать Vim на нескольких платформах / компьютерах без необходимости всегда загружать свои собственные плагины, специальные режимы или vimrc-файл, я думаю, что лучше всего изучить / использовать стандартные Vim-команды максимально. Я сам сделал несколько сопоставлений клавиш, но всегда стараюсь найти стандартную альтернативу Vim. И это может быть довольно быстро. Одна вещь , которую я сделал это карта<esc>
с;j
, что делает ваше отображение NR 1 , как легко , как;jI
и NR2;jA
.Не полный ответ, но знаете ли вы о так называемом « простом режиме » Vim (
vim -y
)? Он всегда находится в режиме редактирования по умолчанию, и делает довольно много того, что вы хотите, и вам не нужно ничего устанавливать или настраивать. Это делает CTRL-A, C, V, X, Y и т. Д. Из списка ключей :Гораздо более мощная версия - это Cream , который переназначает гораздо больше клавиш и делает основные команды похожими на другие редакторы, с которыми вы, возможно, знакомы.
Существует также плагин Vimacs , который включает все основные сопоставления клавиш в emacs. Он прост в установке и может делать то, что вы хотите (я никогда не пробовал).
источник