Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vi模式下转义点的bash/readline等价物_Bash_Vi_Readline - Fatal编程技术网

vi模式下转义点的bash/readline等价物

vi模式下转义点的bash/readline等价物,bash,vi,readline,Bash,Vi,Readline,最近在bash中切换到vi模式,我错过的一件事是esc。获取最后一个命令的最后一个参数 我知道ctrl,但我总是按ctrl键 是否还有其他与此等效的vi模式?仅使用$\bash变量如何?我一直使用alt。获取最后一个命令的最后一个参数 还有,$将为您提供最后执行的命令的最后一个参数。你可以用感叹号做很多很酷的事情,只需查看bash的手册页并搜索历史扩展。我很确定你仍然可以使用vi模式的等效功能,应该是“ESC+”。我相信最接近你想要的解决方案是: 在你的.bashrc中,就在“set-ovi”之

最近在bash中切换到vi模式,我错过的一件事是esc。获取最后一个命令的最后一个参数

我知道ctrl,但我总是按ctrl键


是否还有其他与此等效的vi模式?

仅使用$\bash变量如何?

我一直使用alt。获取最后一个命令的最后一个参数


还有,
$将为您提供最后执行的命令的最后一个参数。你可以用感叹号做很多很酷的事情,只需查看bash的手册页并搜索历史扩展。

我很确定你仍然可以使用vi模式的等效功能,应该是“ESC+”。

我相信最接近你想要的解决方案是:

在你的.bashrc中,就在“set-ovi”之后

这告诉bash在vi命令模式中使用“.”时调用“insert last argument”操作。这当然意味着你失去了VI的正常的“.”功能;但是如果你像我一样,你会喜欢这个

附录: 您可能还希望Ctrl-A、Ctrl-E、Ctrl-W和Ctrl-L起作用(这些是我最想念的):


您还可以使用以下命令在vi模式下恢复emacs“escape dot inserts last argument”行为:

bindkey -v '\e.' insert-last-word
通过改变或添加~/.inputrc 要在vi模式下恢复某些bash goodies,只需更改或添加~/.inputrc,如下所示:

set completion-ignore-case on
set show-all-if-ambiguous on
set show-all-if-unmodified on

set editing-mode vi
set keymap vi-insert

$if mode=vi
"\C-a": beginning-of-line
"\C-e": end-of-line
"\C-l": clear-screen
"\C-n": next-history
"\C-p": previous-history
"\C-w": backward-kill-word

"\e.": yank-last-arg
"\e_": yank-last-arg
$endif

这是。

我不认为是alt。在vi模式下工作。不过,历史扩张很酷。我知道一些事情,但不知道在哪里可以找到其余的。带您进入插入模式,然后。重复您最后键入的内容。so:touch test.txt;vi“esc+”会给你vivi作为第二行。遗憾的是,这个解决方案不会循环通过参数。我知道这是非常古老的。但我的同事只是给我看了以下内容,它完全复制了行为,只是增加了一个空格(见图)。不幸的是,我无法将其映射到Esc-。组合成功。所以有一些肌肉记忆需要打破。不管怎样,给你:bind-m vi insert C-k:yank last arg我之所以选择C-k,是因为它没有用于任何有用的东西,似乎类似于“Ctrl-Up”。每次击键结束时的点真的必要吗?与…相比。
bindkey -v '\e.' insert-last-word
set completion-ignore-case on
set show-all-if-ambiguous on
set show-all-if-unmodified on

set editing-mode vi
set keymap vi-insert

$if mode=vi
"\C-a": beginning-of-line
"\C-e": end-of-line
"\C-l": clear-screen
"\C-n": next-history
"\C-p": previous-history
"\C-w": backward-kill-word

"\e.": yank-last-arg
"\e_": yank-last-arg
$endif