Tif*_*ulS 38 command-line bash auto-completion
如果我有多个目录,例如:
afoo abar
Run Code Online (Sandbox Code Playgroud)
有时我的终端会在我按下 Tab 键时拒绝自动完成(例如,“cd a”然后是 Tab 键),而是打印目录列表。有时它甚至会发出嘈杂、烦人的声音。知道如何在这种情况下自动完成吗?例如,如果我再次按 Tab,它可以先显示 abar,然后显示 afoo。我在 Windows 中看到了这种情况,或者在 Ubuntu 中看到了一些应用程序
Fab*_*bby 55
对我来说救命的事情是让 bash 循环浏览各种可能性,而不是显示一个愚蠢的列表。
由于 bashreadline
用于自动完成,请将以下几行添加到~/.inputrc
一旦你感到满意,并已低于解决方案彻底测试了几天/周,剪切和粘贴(不要复制!)从相同的设置~/.inputrc
,以/etc/inputrc
包含系统范围的设置,使这适用于所有用户在系统上(包括客人)。
# mappings to have up and down arrow searching through history:
"\e[A": history-search-backward
"\e[B": history-search-forward
# mappings to have left and right arrow go left and right:
"\e[C": forward-char
"\e[D": backward-char
# mapping to have [Tab] and [Shift]+[Tab] to cycle through all the possible completions:
"\t": menu-complete
"\e[Z": menu-complete-backward
Run Code Online (Sandbox Code Playgroud)
然后exit
你的终端(或像腻子这样的远程终端)并再次打开它......
当你有3个文件:file1
,file2
和file3
你键入:
e fTabTabTab
Run Code Online (Sandbox Code Playgroud)
它会循环:
e file1
e file2
e file3
Run Code Online (Sandbox Code Playgroud)
当你想向后循环时,只需点击Shift+Tab
当你输入:
very-complicated-command with lots of command line parameters
Run Code Online (Sandbox Code Playgroud)
下次您需要相同的命令时,只需键入:
very?
Run Code Online (Sandbox Code Playgroud)
它会为你输入:
very-complicated-command with lots of command line parameters
Run Code Online (Sandbox Code Playgroud)Rin*_*ind 21
在第一个之后,tab您需要插入更多字母。所以如果你输入
cd a
Run Code Online (Sandbox Code Playgroud)
和打tab你什么也得不到和第二后tab(紧跟)你首先是名称的列表a
,然后需要插入一个f
有它自动完成剩余如此
cd a
tabtabf
tabtab
会导致
cd afoo
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
186656 次 |
最近记录: |