有时这可能是个问题,尤其是在Makefiles
需要选项卡的情况下。不幸的是,不同程序的问题无关。每个人可能会有一个非常不同的解决方案。
对于vim,您必须在文件中执行:set noexpandtab
或放置。如果您只希望设置某些文件类型,则可以在我的计算机中执行以下自动命令:set noexpandtab
~/.vimrc
noexpandtab
~/.vimrc
"indenting defaults: 4 spaces for an indent
set shiftwidth=4
set softtabstop=4
set expandtab
"exceptions to indenting for specific languages and files--------
"for shell scripts: 2 spaces for an indent
autocmd filetype sh setlocal shiftwidth=2
autocmd filetype sh setlocal softtabstop=2
"for Makefiles: use tabs for indents
autocmd filetype make setlocal tabstop=8
autocmd filetype make setlocal noexpandtab
这将为制表符中的标签设置默认的4个空格,vim
并为Shell脚本和Makefile设置例外。
对于其他程序,如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 con-
tinue 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.
您注意到的不是错误。“这是一个功能。” 唯一的问题是您需要知道如何关闭它。
less -xn
将其配置为使用n个空格而不是制表符。-U
使它显示为^I
。我还没有找到一种方法来使其发出原义的制表符,以便复制文本将粘贴制表符,但是我很想知道如何。