小编sro*_*ero的帖子

在 bash 的 vi 模式下恢复最后一个命令的最后一个参数

使用bash的vi模式(set -o vi)时,是否可以恢复上次执行命令的最后一个参数?这是在 emacs 模式下用ESC+ 完成的.,我也想在 vi 模式下完成。

我知道 bash 提供了!$and $_,但它们没有扩展,我发现直接使用它们很危险。

我已经尝试过(但没有成功)我在 Stack Overflow 上找到的一些关于编辑.inputrc和添加的解决方案:

set editing-mode vi
set keymap vi-insert
"\e.": yank-last-arg
"\e_": yank-last-arg
Run Code Online (Sandbox Code Playgroud)

我正在 bash 中切换到 vi 模式,但我已经习惯了ESC+.并且能够使用它或找到快速简便的替代品会很好。

编辑:此问题已被标记为类似问题的重复,该问题询问如何使用 Alt+S 恢复最后一个参数。我专门询问有关 ESC+ 的问题。(这是我习惯的快捷方式,其他答案未涵盖)。

编辑:补充@chaos 的解决方案:以下绑定使 ESC+。(好吧,真的是 '.')粘贴最后一个参数,但是你失去了 Vi 的点 (.) 功能:

bind -m vi-command ".":insert-last-argument
Run Code Online (Sandbox Code Playgroud)

bash inputrc

6
推荐指数
2
解决办法
982
查看次数

相当于 Vim 中的“w”到下一个非字母数字字符?

我想知道是否有一个键(如' w')指定“从当前光标位置到下一个非字母数字字符”。

这是场景:在下面的示例中,将光标置于“e”下,我想删除“示例”字样(下划线之间):

this_example_word 
Run Code Online (Sandbox Code Playgroud)

将光标放在“e”下,如果我按dw,我会删除example_word,而不是example。我知道我可以做dt_,但我想知道 Vim 是否有一个“单词”概念,它只意味着 a-zA-Z0-9,这样我就可以按dXocX并仅删除/替换example

此致,

vim

2
推荐指数
1
解决办法
1061
查看次数

将 bash vi 模式下的光标键重新映射为 <nop> (禁用光标)

当在 Bash 中使用 vi 模式(set -o vi)时,是否可以重新映射光标键以使它们不起作用(并被迫使用 h、j、k 和 l 移动键)?

在 vim (编辑器)下,我可以这样做:

noremap <Up> <nop>
noremap <Down> <nop>
noremap <Left> <nop>
noremap <Right> <nop>
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在readline的vi模式下做到这一点。

bash

1
推荐指数
1
解决办法
675
查看次数

标签 统计

bash ×2

inputrc ×1

vim ×1