为 bash 输出设置制表符

为 bash 输出设置制表符

more是否可以为和命令设置制表符(每个制表符的空格数)less?在 vi 中,我将这一行添加到.vimrc

set tabstop=4

然而,当我通读一个文件时,more每个选项卡仍然使用 8 个空格

$ more style.css
div {
        width: 100%;
}

这是我可以在.bashrc或类似文件中配置的东西吗?

答案1

man less

  -xn,... or --tabs=n,...
         Sets tab stops.  If only one n is specified, tab stops are set at 
         multiples of n.  If multiple values separated by commas are specified,
         tab stops are  set  at  those positions, and then continue with the same
         spacing as the last two.  For example, -x9,17 will set tabs at positions
         9, 17, 25, 33, etc.  The default for n is 8.

手册页还描述了如何使用 setenv 或 export 设置 less 的默认选项。添加LESS="-x4";export LESS到你的 ~/.bashrc 应该可以解决问题

答案2

我认为它不是bash(或zsh, csh... 和其他 shell) 的属性。它是显示输出的终端的属性。

您可以使用expand命令转换tab为数量spaces。从expand手册页:

-t, --tabs=NUMBER
              have tabs NUMBER characters apart, not 8

所以你会这样做:

$ cat test.tabs
a        b        c

$ expand -t 4 test.tabs
a    b    c

相关内容