如何使现有选项卡在vim中显示为4个空格?

qua*_*ant 5 vim

我在git存储库中工作,它的所有缩进都是制表符,但我喜欢在空格中工作(每个缩进4个空格).我不想只是对标签进行文本替换,因为那时我最终会在我的差异中出现可怕的混乱.相反,我希望vim使标签显示为好像它们是空格.

我在阅读完这个问题后创建了这个问题:

将标签重新定义为4个空格

其中一个答案(来自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
Run Code Online (Sandbox Code Playgroud)

这似乎表明,运行:set expandtab会使标签显示为空格.显然情况并非如此.我怎样才能实现我追求的目标?我正在使用vim 7.4.

xk0*_*der 1

从命令模式,只需调用

:retab
Run Code Online (Sandbox Code Playgroud)

这会将现有制表符转换为空格(假设您有:set expandtab,您的 中已经有.vimrc)。另外,由于您已经将tabstop值设置为4空格,:retab因此将使用该值并将现有制表符替换为4空格。

有关更多信息,请查看内置帮助

:help retab
Run Code Online (Sandbox Code Playgroud)

如果您想做更多漂亮的事情,请查看此链接: http: //vim.wikia.com/wiki/Super_retab

启用expandtab不会将现有制表符转换为空格,仅扩展新插入的制表符。