如何在Iterm中插入制表符?

18

简单来说,我知道在bash语句中可以使用ctrl+v+tab插入一个实际的制表符。但是在iTerm中如何执行相同的操作?

5个回答

31
答案是按下control+v,然后再按tab键,而不是同时按下!希望这能帮到某些人。

1

问题不在于iTerm,而是你的shell会影响如何插入制表符。

首先,请确保你正在使用BASH shell:输入以下命令:

$ echo $RANDOM $BASH_VERSINFO
23714 3

第一个是随机数,第二个应该是BASH版本号。如果你得到了一个空行或者只有一个随机数,那么你不在BASH shell中,这可能是你的问题之一。
另外一件事是执行这个命令:
$ set -o
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
[...]
privileged      off
verbose         off
vi              off
trace           off

有两行是我们关注的,分别是emacsvi。其中一个应该是开启的。如果它们都关闭了,您就无法使用Ctrl-V-Tab插入制表符。

vi模式开启时,应该像您说的那样使用Ctrl-V-Tab。在emacs模式下,可以使用Ctrl-V-tab或可能是Ctrl-Q-tab

然而,这不是的问题,而是您的shell正在执行此操作。


0
如果你所说的“物理实际制表符”是指将制表符十六进制代码(0x09)发送到shell,那么你可以通过在iTerm中按Ctrl + Tab(⌃ ⇥)来实现。
这是默认设置,尽管你可以在iTerm >首选项>配置文件>键中更改它(以及添加其他要发送的十六进制代码值)。

0

我不确定你为什么要将“bash语句”与iTerm进行比较。你可以在iTerm中编写bash脚本。这意味着,假设你正在iTerm中编写脚本,那么你已经在做你想做的事情了。

我猜你是指在vi和命令行中编写脚本的区别。我在命令行上输入特殊字符的方法是使用vi编辑模式。执行set -o vi。然后你就可以像以前一样使用ctrl+v,然后再按tab

在我看来,使用vi编辑模式还有其他很多优点,比如搜索历史记录、更快的导航等等。所以,如果你想的话,可以将它添加到你的.bashrc中,并且一直使用它。


假设我需要创建一个包含制表符的变量,那么我需要这样做:var='hello[tab]Tim'。我是在命令行上执行此操作,而不仅仅是在vi中。 - E.Cross

0

还应该尝试 Ctl + V Ctl + I。在 konsole 中,Ctl+V+Tab 不起作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接