如何在 gnome-terminal 中将制表符显示为 4 个空格

问题描述 投票:0回答:7

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

tabs spaces tty gnome-terminal
7个回答
30
投票

您还可以使用隐式间隔,而不是写出显式的制表符列表:

tabs -n

这会将制表位设置为每

n
列出现。有关更多信息,请查看选项卡的联机帮助页:http://manpages.ubuntu.com/manpages/maverick/en/man1/tabs.1.html


5
投票

我找到的独特解决方案是在终端中输入:

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

如果您想要永久更改,请将其附加到 ~/.bashrc 中。

PS:这显然覆盖了最多 10 个制表符缩进。


3
投票

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

理论上,您应该能够使用“setterm -regtabs 4”在 .bashrc 中将制表符宽度设置为 4。

似乎不适用于我的 Linux 发行版,但当我从远程系统 ssh 时它可以工作。

将制表符宽度重置为 8 的最简单方法是使用“tabs -8”(tabs -d8 可以直观地看到变化)。


3
投票

将其设置为“tabs -4”的问题是第一个制表位偏离了一个(至少在我的系统上)。例如,如果我输入“tabs -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”小曲周围的反引号。

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


2
投票

您还可以执行制表符-4,它将每第四列设置一个制表位。


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.