许多人使用空格而不是标签.我用它们两个.行的开头和第一个非空白字符的空格.启动新文档没有问题,如果我需要修改一个更好的适应使用格式.有时我仍然需要修复空间问题.
根据搜索和替换我可以做到:%s/spaces_for_tab/tab/g.它很简单,适用于很多情况.无论如何,我想只在行的开头重构空格.
这更像是一个正则表达式问题.要锚定在行的开头,请使用插入符号,例如
s/^ /\t/
Run Code Online (Sandbox Code Playgroud)
或者使用vim的内置功能:
:set tabstop=4 "four spaces will make up for one tab
:set noexpandtab "tell vim to keep tabs instead of inserting spaces
:retab "let vim handle your case
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我也更喜欢缩进标签和对齐空间.不幸的是,vim不能很好地处理这个问题(我不知道其他编辑器做了什么),所以我主要使用:set expandtab(也许看看:set softtabstop).
我为它写了一个简单的函数。不管怎样,它只适用于 4 个空格的制表符。
fu! Fixspaces()
while search('^\t* \{4}') != 0
execute ':%s/^\t*\zs \{4}/\t/g'
endwhile
endfu
Run Code Online (Sandbox Code Playgroud)
您可以提出更好的解决方案(如果存在),我会很乐意使用它。问题是这个函数也替换了字符串中的空格。