我想知道是否有任何插件和/或实用程序可以让我的生活变得更加轻松。
当通过控制台从一个文件夹移动到另一个文件夹时,我可以使用Tab键盘上的键自动完成文件夹、查找文件夹(双击)或者只是表达我想在搜索中“前进”。
编码时,Tab使用 键可将代码“向前”或向右“推”。要将代码“向后”“拉”,可以使用Shift+Tab键组合。
有没有等效的方法,例如,按下Shift+Tab键来在控制台中为我写入../
?或者让我知道我处于根级别,并且我不能再“后退”了?
使用示例:
情况1:
user@server:/$ cd ~/Desktop/folder1/
之后Shift+Tab
user@server:/$ cd ~/Desktop/
(删除最后写入的文件夹。不再有退格垃圾邮件!!:D)
案例 2:
user@server:/$ cd
之后Shift+Tab
user@server:/$ cd
(因为我已经 root 了,无法返回)
案例三:
user@server:/home/Desktop/folder1$ cd
之后Shift+Tab
user@server:/home/Desktop/folder1$ cd ../
(因为我可以回到Desktop
)
我知道这听起来很懒。我知道我很懒。
无论如何,感谢您的建议!(:
编辑0:
只是为了清楚起见。我给出了命令作为示例cd
,但我想要的可以应用于任何命令/可执行文件。这将被视为基本用途,就像Tab用于自动完成一样。
这篇文章与以下内容相关这一。
编辑1: 我知道这是来自另一个论坛的同一篇帖子,但我只是希望从这个社区获得更多的观点!
答案1
您可以将unix-filename-rubout
操作绑定到键(请参阅bash
手册页):
bind 'C-b:unix-filename-rubout'
现在按Ctrl+b将“抹去“路径的最后一个组成部分。
unix-filename-rubout
删除 point 后面的单词,使用空格和斜线字符作为单词边界。删除的文本保存在 kill-ring 中。
要绑定unix-filename-rubout
到Shift+ Tab,您可能需要添加以下一行或多行~/.inputrc
(或者两者!):
"\e\t": unix-filename-rubout
"\e[Z": unix-filename-rubout
看这个答案了解为什么Shift这是一个有点奇怪的修饰语,以及如何找出你的终端可能需要什么。
或者,您可以通过按以下方式获得此行为:
- Alt+ B- 返回一个单词
- Ctrl+ K- 删除至行尾
但请注意,Alt+B在“单词“级别不”路径元素“...因此,破折号(-
)、点(.
)等...将标记单词边界,您可能需要多次按它。
答案2
我不知道有任何事物像您所描述的那样“上下文敏感”(也就是说,了解路径)。
但是,键盘快捷键Alt-Backspace
会删除前一个单词,这可能只能满足你的 98% 的要求。
但是,它只满足你举的三个例子中的一个。抱歉。