我在git存储库中工作,它的所有缩进都是制表符,但我喜欢在空格中工作(每个缩进4个空格)。我不想只是对标签进行文本替换,因为那样我最终会在我的差异中出现可怕的混乱。相反,我希望vim将标签显示为,就好像它们是空格一样。
我在阅读完这个问题后创建了这个问题:
答案之一(来自Alan Haggai Alavi)说:
set tabstop=4 " The width of a TAB is set to 4.
" Still it is a \t. It is just that
" Vim will interpret it to be having
" a width of 4.
set shiftwidth=4 " Indents will have a width of 4
set softtabstop=4 " Sets the number of columns for a TAB
set expandtab " Expand TABs to spaces
这似乎表明,运行:set expandtab
会使标签显示为空格。显然情况并非如此。我怎样才能实现我追求的目标?我正在使用vim 7.4
。
答案 0 :(得分:1)
从命令模式,只需调用
:retab
这会将现有的标签转换为空格(假设您拥有:set expandtab
已经拥有.vimrc
)。另外,由于您已将tabstop
值设置为4
个空格,:retab
将使用该值并将现有标签替换为4
个空格。
有关详细信息,请查看内置帮助
:help retab
如果您想要做更多漂亮的事情,请查看以下链接:http://vim.wikia.com/wiki/Super_retab
启用expandtab
不会将现有标签转换为空格,只会展开新的TAB字符插入。
答案 1 :(得分:1)
除非:set list
并且listchars
具有自定义值,否则选项卡与tabstop
空格之间没有区别,外观,。在这里你有和没有:set list
:
<tab>foo
<space><space><space><space><space><space><space><space>bar
所以......你在询问“外观”或功能吗?
答案 2 :(得分:0)
这些是我使用的设置:
set tabstop=4
set shiftwidth=4
set noexpandtab
答案 3 :(得分:0)
gg=G
您的设置正确无误。您只需要重新缩进文档。