如何在gnome-terminal中将标签显示为4个空格

时间:2010-01-05 11:47:10

标签: tabs spaces tty gnome-terminal

实际上gnome-terminal显示标签为8个空格,这对于cat文件或查看差异非常烦人,有没有办法永久地改变它?

7 个答案:

答案 0 :(得分:27)

您也可以使用隐式间隔:

,而不是写出明确的tabstops列表
tabs -n

这将设置每个n列的tabstops。有关详细信息,请查看http://manpages.ubuntu.com/manpages/maverick/en/man1/tabs.1.html上的标签页的联机帮助页。

答案 1 :(得分:4)

我找到的唯一解决方案是输入终端:

tabs 5,9,13,17,21,25,29,33,37,41

如果你想要永久性的改变,请将它附加到〜/ .bashrc。

PS:这显然可以覆盖10个制表符缩进。

答案 2 :(得分:3)

您需要在底层tty上设置tabwidth,而不是在gnome-terminal本身。

理论上,您应该可以使用'setterm -regtabs 4'在.bashrc中将tabwidth设置为4.

似乎没有在我的Linux发行版上工作,但是当我从远程系统ssh时它可以正常工作。

将tabwidth重置为8的最简单方法是使用'tabs -8'(tabs -d8来查看更改)。

答案 3 :(得分:3)

将其作为“标签-4”的问题是第一个标签停止一个(至少在我的系统上)。例如,如果我输入“tabs -4”,第一个制表位将从第4列开始,前面有3个空格而不是4个。后续制表位将全部正确分隔4个空格。解决此问题的方法是指定制表位,如下所示:

tabs 1,+4,+4,+4,+4,...

答案 4 :(得分:2)

您也可以执行制表符-4,它会在每第4列设置制表位。

答案 5 :(得分:2)

如果您正在使用bash,这就是我在〜/ .bashrc中的内容:

# set tabs to width TABWIDTH
TABWIDTH=4
# for less(1) the option -x4 was added (see above);
# other programs may need their own flags
setterm -regtabs ${TABWIDTH} </dev/tty
tabs -0 </dev/tty
# this erroneously imho sets the first tab at offset 3, not offset 4:
#tabs 1,+${TABWIDTH} </dev/tty
# this works:
tabs 1`for i in {0..40}; do echo -n ",+${TABWIDTH}"; done`
unset TABWIDTH

请注意'for ... done'小调的反复注释。

编辑:'完成'语句之前的最后一个'+4'当然应该是+ $ {TABWIDTH}。

答案 6 :(得分:0)

标签1,5,9,13,17,21,25等 似乎没有完全正确地工作。在输入时,当在选项卡上退格时,gnome-terminal返回8个空格而不是4个空格。看起来这里有一个gnome-terminal错误。 (注意:如果输入shell,你就不会看到这一点,因为它会占用文件夹完成的标签。你必须先运行cat或dc或其他一些不会为了自己的目的而擅自使用制表符的命令。)