当我编辑Vim命令时,我想使用与Bash和其他REPL中相同的快捷方式:Mb返回一个单词,M-Backspace删除一个先前的单词,Mu将单词转换成大写,Ck可以剪切到行尾等。我已经可以使用:cmap配置一些命令,但不是全部。

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

我了解cedit,但是当我只需要输入快速命令时,就会发现它很麻烦。

评论

等一下,您是说即使您使用Vim作为编辑器,也要在Emacs模式下使用Bash?

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

有趣。我似乎只在Vi模式下使用Bash,尽管Emacs模式似乎支持Vi模式不支持的某些功能。我只是碰巧知道Vi键绑定,而几乎完全不了解Emacs绑定,而且我从来没有想到这是学习默认设置的紧迫问题。

#1 楼


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


是,rsi.vim插件:


功能


在插入模式和命令行模式下提供了读取行映射。故意忽略普通模式。
重要的Vim键绑定(如插入模式的Cn和Cp完成)不会被覆盖。 。
映射Cd,Ce和Cf,以便它们在行的中间执行Readline行为,并在行的末尾执行Vim行为。
(考虑一下。)



#2 楼


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


也有readline.vim。纯粹在命令行上。它还实现了Readline快捷方式的较大子集,其目标是完全像在Readline中一样实现每个快捷方式。


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

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


评论


我很惊讶有人在寻找这种东西。使用readline的vim模式是如此简单,以至于我认为每个普通的vim用户都会这么做。 (我在emacs模式下没有发现所有引人注目的命令。)但是,也许“如何”并不那么广为人知(...也许我很幸运,我看到/复制的第一个bashrc ...比我想承认的还要多得多...已经设置了-o vim :)

– B层
19年5月11日在13:41

#3 楼

我将添加我最常用的替代方法:


使用默认的:-编辑绑定(:help commandline-editing或类似的名称,如果有人可以随时使用该参考,则可以随意编辑)。 <C-b>开始,<C-e>结尾,还有其他
如果您启动了<C-f>:?并希望像普通的vim缓冲区一样进行编辑,请使用精美的/
如果知道开始时需要使用q:q?q/,请使用。

我已将<leader>;映射到q:,因此通过vim编辑的命令行可以非常快速地访问。 (我不想在日常编辑中切换;:,但我正在考虑。)