以前我主要使用Notepad ++,并用它来开发许多SQL脚本。在Notepad ++中,缩进很好。现在我切换到Vim,但在Notepad ++中发现很多行缩进,在Vim中没有正确缩进。
例如在Notepad ++中,它显示
declare @a int
declare @b int
declare @c int
但是当在Vim中打开时,它会显示
declare @a int
declare @b int
declare @c int
如果我在Vim中修复它,那么当我使用Notepad ++打开它时,格式就搞砸了。为什么会这样,以及如何解决它?
答案 0 :(得分:4)
Marius在评论中给出了正确的答案,我建议使用
set listchars=tab:»·,trail:·
set list
在.vimrc
中。它将在行尾显示制表和尾随空格。
您可能也想要,但这是个人参考的问题,添加以下内容以确保每次使用 Tab 时,实际插入相同数量的空格。在我的示例中,制表对应于4个空格,但您可以使用其他内容。
set shiftwidth=4 " used by >>, << and tab.
set tabstop=4 " number of space characters used when displaying TAB
set expandtab " replace TAB by spaces
set softtabstop=4 " will erase 4 spaces at once when using BS in the begining of lines only
最后,要将这些新设置应用于现有文件,您可能希望在您的文件上运行。
:%retab
请注意,默认情况下,不同的编辑器倾向于在使用 Tab 时显示不同的宽度,如果不同的人希望他们的代码以不同的方式布局,这可能会很有用,但这也很容易不小心使用时打破缩进。
我认为最好的解决方案仍然是使用标签进行缩进,对齐空间,但这很难维护。查看示例there。愚蠢和全面的解决方案是在每个地方使用空格,这就是我刚才描述的设置。