Как я могу использовать ярлыки Readline в командной строке vim?

15

Когда я редактирую команду Vim, я хотел бы использовать те же ярлыки, что и в Bash, и любой другой REPL: M-bдля возврата слова, M-Backspaceудаления предыдущего слова, M-uдля преобразования слова в верхний регистр, C-kдля сокращения до конца я смог настроить некоторые команды, используя :cmap, но не все.

Есть ли плагин или настройка, которая обеспечивает это?

Я знаю о cedit, но я нахожу это громоздким, когда все, что мне нужно, это ввести быструю команду.

Михай
источник
Waitaminute, вы говорите, что используете Bash в режиме Emacs, даже если вы используете Vim в качестве редактора?
Кайл Стрэнд
3
@KyleStrand Я еще не видел кого-то, кто использовал Bash в режиме vi. Кажется, что большинство преимуществ модальных редакторов исчезают, когда вы ограничены только одной строкой.
Михай
1
Интересный. Я использую Bash только в режиме Vi, хотя кажется, что режим Emacs поддерживает некоторые вещи, которых нет в режиме Vi. Мне просто довелось узнать, как работают клавиши Vi, оставаясь при этом почти полностью неосведомленным о привязках Emacs, и я никогда не думал, что это достаточно насущная проблема, чтобы узнать значения по умолчанию.
Кайл Стрэнд

Ответы:

11

Есть ли плагин или настройка, которая обеспечивает это?

Да, плагин rsi.vim :

Характеристики

  • Отображения Readline предоставляются в режиме вставки и режиме командной строки. Нормальный режим намеренно опущен.
  • Важные привязки клавиш Vim (например, завершение Cn и Cp режима вставки) не переопределяются.
  • Привязки мета-ключей обеспечиваются таким образом, чтобы они работали в терминале без опасности повторного отображения.
  • Cd, Ce и Cf отображаются так, что они выполняют поведение Readline в середине строки и поведение Vim в конце. (Думаю об этом.)
mMontu
источник
1

Есть ли плагин или настройка, которая обеспечивает это?

Также есть readline.vim .

Это более новый плагин, который ориентирован исключительно на командную строку. Он также реализует большее подмножество ярлыков Readline и имеет целью реализовать каждый ярлык точно так же, как в Readline.

Что делает этот плагин отличным от аналогичных плагинов, так это то, что он реализует большее подмножество отображений Readline, и что он лучше подражает поведению Readline для каждой команды.

Команды перемещения и удаления слова имеют разное поведение между Vim и Readline. Самая большая разница в том, что в Readline пунктуация всегда пропускается при поиске границы слова. Другое отличие состоит в том, что _ (подчеркивание) рассматривается как разделитель слов. Этот плагин реализует поведение Readline для команд перемещения и удаления слов.

wefwefa3
источник
1
Я удивлен, что кто-то ищет такие вещи. Использовать vim-режим readline так просто, что я думаю, что каждый обычный пользователь vim сделает это. (Я не нахожу лишних команд в режиме emacs настолько убедительными.) Но, может быть, «как» не так широко известно (... и, возможно, мне повезло, что самый первый bashrc, который я увидел / скопировал ...) гораздо больше лет назад, чем я хочу признаться ... было set -o vim:)
B Layer