如何在gnome-terminal中将选项卡显示为4个空格

19

实际上,gnome-terminal 将制表符显示为 8 个空格,这在查看文件或差异时非常令人烦恼。有没有办法永久更改这个设置?


3
似乎更适合在superuser.com上发布问题。 - glmxndr
有人知道在RHEL中包含这个神奇的“tabs”命令的软件包是什么吗? - Dan Pritts
7个回答

30

你可以使用隐式间隔来代替编写明确的制表位列表:

tabs -n

这将使制表符在每个n列处出现。有关更多信息,请查看tabs的manpage页面


这个不起作用;它将第一个制表位设置为 n 而不是 1,尽管文档说明不同。这是 tabs 中的一个错误。 - Lily Chung
3
对我来说是这样。 - sencer
当我将这个放在.bashrc中时,我遇到了一些奇怪的问题,它直到下次登录才完全生效,尽管这不应该是必要的。 - PBS

5
我找到的独特解决方案是在终端中输入以下命令:
tabs 5,9,13,17,21,25,29,33,37,41

如果您想要永久更改,可以将其附加到~/.bashrc中。
提示:这显然涵盖了最多10个制表符缩进。

3

使用“tabs -4”的问题在于第一个制表符位置可能会有偏差(至少在我的系统上是这样)。例如,如果我输入“tabs -4”,则第一个制表符位置将以第4列开始,前面有3个空格,而不是4个。随后的制表符位置将正确地分隔为4个空格。解决此问题的方法是按如下方式指定制表符位置:

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

3
如果你正在使用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' 旁边的反引号。编辑:在 'done' 语句之前的最后一个 '+4' 当然应该是 +${TABWIDTH}。

每当我打开终端时,它会打印出“setterm: terminal xterm-256color does not support --regtabs”。而且除了倒数第二行外,其他行对于图形和虚拟控制台都是不必要的。 - PBS

3
你需要在底层tty上设置tabwidth,而不是在gnome-terminal本身上设置。
理论上,你应该能够使用“setterm -regtabs 4”在.bashrc中将tabwidth设置为4。
在我的Linux发行版上似乎不起作用,但从远程系统ssh时它有效。
将tabwidth重置为8的最简单方法是使用“tabs -8”(使用“tabs -d8”可以看到更改的视觉效果)。

Setterm 只在 TTY 中起作用,所以我使用了“tabs”,请参见下一个答案。(我之前不知道,所以谢谢;D) - Htechno

2
您可以使用tabs -4命令,这将在每个第四列设置一个制表符停止位。

0

选项卡1、5、9、13、17、21、25等似乎不能完全正确地工作。在输入时,当回退到选项卡上时,gnome-terminal会向后退8个空格,而不是4个。看起来这里有一个gnome-terminal的错误。(注意:如果在shell中进行键入,则看不到此错误,因为它将制表符用于文件完成。您必须首先运行cat或dc或其他一些不会独占制表符字符用于自己目的的命令。)


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