如何在vim命令行中使用Readline快捷方式?


15

当我编辑Vim命令时,我想使用 Bash和所有其他REPL中相同的快捷方式M-b返回一个单词,M-Backspace删除前一个单词,M-u将该单词转换为大写字母,C-k剪切至我已经能够使用来配置一些命令:cmap,但不是全部。

是否有提供此功能的插件或设置?

我知道cedit,但是当我需要输入快速命令时,我会觉得很麻烦。


等一下,您是说即使您使用Vim作为编辑器,也要在Emacs模式下使用Bash?
凯尔·斯特兰德

3
@KyleStrand我还没有看到有人在vi模式下使用Bash。当您只限于一行时,模态编辑器的大多数优势似乎消失了。
Mihai 2016年

1
有趣。我只在Vi模式下使用过Bash,尽管Emacs模式似乎支持Vi模式不支持的某些功能。我只是碰巧知道Vi键绑定,而几乎完全不了解Emacs绑定,而且我从来没有想过要学习默认值是一个紧迫的问题。
凯尔·斯特兰德

Answers:


11

是否有提供此功能的插件或设置?

是的,rsi.vim插件

特征

  • 在插入模式和命令行模式下提供了Readline映射。故意省略普通模式。
  • 重要的Vim键绑定(如插入模式的Cn和Cp完成)不会被覆盖。
  • 元密钥绑定以一种可以在终端中工作的方式提供,而没有重新映射转义的危险。
  • 映射Cd,Ce和Cf,以便它们在行的中间执行Readline行为,并在行的最后执行Vim行为。(考虑一下。)

1

是否有提供此功能的插件或设置?

还有readline.vim

它是一个较新的插件,仅专注于命令行。它还实现了Readline快捷方式的较大子集,其目标是完全像在Readline中一样实现每个快捷方式。

该插件与类似插件的不同之处在于,它实现了Readline映射的更大子集,并且在模仿每个命令的Readline行为方面做得更好。

在Vim和Readline之间,单词移动和删除命令的行为不同。最大的区别是,在Readline中,在搜索单词边界时始终会跳过标点符号。另一个区别是_(下划线)被视为单词定界符。此插件为单词移动和删除命令实现Readline行为。


1
我很惊讶有人在寻找这种东西。使用readline的vim模式是如此简单,以至于我认为每个普通的vim用户都会这么做。(我在emacs模式下没有发现所有引人注目的命令。)但是,也许“如何”并不为人所知(...也许我很幸运,我看到/复制了第一个bashrc ...比我不敢承认的还要早很多... set -o vim::
B层
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.