Tabs 如何在gnome终端中将选项卡显示为4个空格

Tabs 如何在gnome终端中将选项卡显示为4个空格,tabs,spaces,tty,gnome-terminal,Tabs,Spaces,Tty,Gnome Terminal,实际上,gnome终端将选项卡显示为8个空格,当您使用cat文件或查看差异时,这非常烦人,有什么方法可以永久更改它吗?您需要在底层tty上设置tabwidth,而不是在gnome终端本身中设置 理论上,您应该能够在.bashrc中使用“setterm-regtabs 4”将tabwidth设置为4 在我的linux发行版上似乎不起作用,但当我从远程系统ssh时,它就起作用了 将tabwidth重置为8的最简单方法是使用“tabs-8”(tabs-d8可查看更改)。我发现的唯一解决方案是键入终端:

实际上,gnome终端将选项卡显示为8个空格,当您使用cat文件或查看差异时,这非常烦人,有什么方法可以永久更改它吗?

您需要在底层tty上设置tabwidth,而不是在gnome终端本身中设置

理论上,您应该能够在.bashrc中使用“setterm-regtabs 4”将tabwidth设置为4

在我的linux发行版上似乎不起作用,但当我从远程系统ssh时,它就起作用了


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

我发现的唯一解决方案是键入终端:

tabs 5,9,13,17,21,25,29,33,37,41
如果需要永久更改,请将其附加到~/.bashrc


PS:这显然涵盖了多达10个制表位缩进。

除了写出一个明确的制表位列表,还可以使用隐式间隔:

tabs -n

这将设置tabstops,使其每隔
n列出现一次。有关更多信息,请查看位于的选项卡手册页。

您也可以执行tabs-4,它将每隔第四列设置一个tab-stop。

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

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

如果您使用的是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
#将制表符设置为宽度制表符宽度
TABWIDTH=4
#对于较少(1),增加了选项-x4(见上文);
#其他程序可能需要自己的标志
setterm-regtabs${TABWIDTH}tab1,5,9,13,17,21,25等

似乎不能完全正确地工作。在输入时,当在选项卡上退格时,gnome终端返回8个空格,而不是4个。看起来这里有个侏儒终端错误。(注意:如果在shell中键入,您将看不到这一点,因为它会篡夺制表符以完成文件。您必须首先运行cat或dc或其他一些命令,这些命令不会为自己的目的而滥用制表符。)

对于superuser.com来说似乎更像是一个问题。有人知道RHEL上的哪个包包含这个神奇的“制表符”命令吗?Setterm仅在TTY中工作,所以我应用“标签”,见下一个答案。(我以前不知道,所以谢谢;D)这不起作用;它将第一个制表位设置为n而不是1,即使文档中另有说明。这是
选项卡中的一个bug
。对我来说确实如此。