使用Tab键激活时多行编写结构化命令


10

我想在多行中编写结构化命令

$ for i in *;
 do
    file $i;
 done
bmdt.md: ASCII text
breakfast.md: ASCII text
brmdh.md: ASCII text
test.sh: Bourne-Again shell script text executable, ASCII text

但发现该标签不起作用,

如何在bash控制台中激活Tab键?


4
按Control-V Tab键;默认情况下,选项卡绑定到文件/命令完成。
mosvy

Answers:


10

当你按下Enter输入一个不完整的命令后,bash外壳就会显示一个提示继续(二级提示符$PS2),并允许你完成输入的命令。此时,shell的命令行编辑功能与原始提示符(主提示符$PS1)相同,这意味着该Tab键将照常执行命令和文件名补全。

要插入制表符,请使用Ctrl+V Tab或使用空格进行缩进。如果以开头,则可以始终插入制表符(或任何其他文字字符)Ctrl+V


另外,如果在Emacs命令行编辑模式下(我相信这是的默认设置bash),请使用Ctrl+X Ctrl+E来启动编辑器以将命令输入到其中。使用的编辑器将是EDITORshell / environment变量指定的,或者emacs未设置此变量的编辑器。

在Vi命令行编辑模式下,按Escape v以执行相同的操作。

保存并退出编辑器后,将执行该命令。


我可以问一下什么是vi命令行,我知道Vim是一个编辑器,应提前打开,进入和编辑,而不是直接键入命令并运行。
微积分

1
@avirate Vim是原始Vi编辑器的变体。“六命令行编辑模式”是你启用某一模式set -o vi,并且使您能够使用命令行关于vi / vim编辑命令一样(的能力Escdw,删除当前的Word中使用的等结束set -o emacs找回到Emacs命令行编辑模式。
库萨兰达

令人惊奇的是,我立即搜索和探索它。
微积分

1
@avirate请注意,无需提前打开编辑器。如果按Ctrl+X Ctrl+E,外壳将为您打开它。
库萨兰达
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.