我经常会在服务器上的几个文件之间来回切换。我将按顺序运行以下示例命令:
nano /web/site/path/to/file
/web/site/script.py
nano /web/site/path/to/anotherFile
nano /web/site/path/to/yetAnotherFile
/web/site/script.py
nano /web/site/path/to/etc
要从一个nano
命令转到下一个命令,我当前按下Up并Backspace替换路径的最后一段。问题是我真的非常懒惰。
是否有键盘快捷键(或 Bashism)可以:
- 被最后使用的路径替换(最后有一个额外的位)
- 在当前行中删除(例如在按 后Up)回到最后一行
/
我认为您正在寻找Alt+Backspace快捷方式。
按下Up此按钮后应删除回前一个
/
或space
字符。要检测向后删除单词的 readline 绑定,您可以在终端中使用以下命令:
在默认的 Ubuntu 安装中,输出可能是:
第二行在这一点上似乎并不重要,所以让我们看看第一行是什么意思。据我了解,
backward-kill-word
实际上删除所有字符直到前一个特殊字符( , 等)的 readline 函数/
被;
绑定,
到\e\C-h
键序列。现在,在此序列中代表\e
键Esc,\C
-Ctrl键,\C-h
代表Ctrl+ h,在这种情况下与Backspace键等效。因此,您正在搜索Esc+ Ctrl+h等效于 + 的键盘快捷键,Esc并且Backspace由于xterm 的行为使Altkey 充当元字符,元字符被转换为双字符序列,字符本身前面有Esc(请参阅
man xterm
) , 等同于Alt+Backspace。现在,如果您不喜欢它并且继续忘记它,您可以使用以下命令创建一个新的快捷方式,比如Esc+ w,用于您的目的:
要使此新快捷方式始终适用于所有使用 readline 的命令,请将以下行添加到您的
~/.inputrc
文件中:有关
help -m bind | sensible-pager
详细信息,请参阅。另一个组合键是:
Alt+B然后Ctrl+K
Alt+B然后Alt+D
这将删除最后一个单词而不删除单词之间的特殊字符。