nof*_*fle 8 shell autocomplete
在像编辑vim
和emacs
,可以使用像热键C-p
(VIM)或M-/
(emacs)可使用换言之在相同缓冲液当前字执行自动完成功能。
是否可以在 shell 中实现相同的功能?如果我在上一个命令的输出中看到一些单词,并且我想在输入另一个命令时快速自动完成它。
为了清楚起见,举个例子:
$ ls
Desktop/ Mail/ music/ osx@ something_with_a_pretty_long_name
$ someth
Run Code Online (Sandbox Code Playgroud)
从这里开始,我希望能够点击一个热键并让它自动完成我正在输入的内容something_with_a_pretty_long_name
。
编辑:射击。使用文件名是我所追求的一个糟糕的例子。考虑以下第二个示例:
$ cat /var/log/something.log
[19:30] Service started
[19:35] Something else happened
$ happ
Run Code Online (Sandbox Code Playgroud)
仅仅因为它出现在我的终端缓冲区中,我就可以自动完成“happ”到“happened”。我希望这能澄清我所追求的。
简短的回答:不,不适合经典 shell,如zsh
或bash
通常您的 shell 和终端是不同的实体。
长答案:也许吧。典型的情况是您输入命令并按Enter- 现在您的 shell会分叉并执行指定的命令。然后 shell不知道发生了什么,shell 不知道将写入终端的内容或执行的程序做了什么,如果它启动了其他程序,写入您的终端或其他任何内容。
您的问题有两种可能的解决方案:
2 的解决方案是例如使用 emacs 和multi-term
只是使用M-/就像你平常从终端完成事情一样。其他终端可能提供类似的解决方案。
但你真的需要这样的完成吗?现在的 shell 补全可以补全手册页、命令、pid、套接字、命令选项、远程系统的文件路径等等。这可能已经足以满足您的用例,或者可以针对您的特定问题进行增强。
归档时间: |
|
查看次数: |
3096 次 |
最近记录: |