在终端中,可以使用 Tab 键帮助自动完成目录或文件名的输入。但是,如果我犯了错误,输入了错误的目录开头并“将其跳出”,我最终不得不使用退格键并重新输入。是否有快捷键可以撤消终端中的自动完成功能?
编辑澄清
为了扩展我在评论中所说的内容,我想知道是否有撤消到最后一个目录的快捷方式。因此,目前 ctrl+shift+- 似乎工作良好,除了它撤消单个字母。
例如,如果我有以下目录设置:
Documents
--> d1something
--> d2something
我想转到“d2something”但不小心输入了“cd d1”,它会自动填充为:
cd Documents/d1something/
然后,使用 ctrl+shift+- 将会是:
cd Documents/d1something
再次:
cd Documents/d1
再次:
cd Documents
我想知道是否有一条快捷方式可以从cd Documents/d1something/
返回cd Documents
(第一步和最后一步)。如果没有,ctrl+shift+- 就可以了。
答案1
根据bash 手册页,该功能的默认快捷键undo
是Ctrl+ _(请注意,在大多数键盘上,这是Ctrl+ Shift+ )或+后跟+ 。如果您的制表符补全在目录名称后添加了一个斜杠,则可能需要撤消两次,一次是删除斜杠,另一次是删除补全添加的文本。-CtrlxCtrlu
如果您想要从在 bash 中输入的路径中删除最后一个完整的目录组件,最接近的方法是使用函数。默认情况下,它与+组合键backward-kill-word
绑定。这将从命令行中删除最后一个“单词”,其中单词完全由字母数字字符组成。AltBackspace
这似乎适用于您给出的示例目录名称。请注意,如果最后一个目录名称包含空格或标点符号(如-
或 )_
,则这些将被视为单词分隔符,因此您可能需要多次重复此组合键才能擦除回最后一个/
字符。
答案2
使用 Zsh,以及 oh-my-zsh(可选)
按下 Control 和 C,或者如果你想要更好的方法,按下 Control + Shift + 下划线键。抱歉我不使用 Bash,zsh 更胜一筹,试试看吧