Vim和Notepad ++显示不同的缩进

时间:2013-09-11 06:52:50

标签: vim

以前我主要使用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 ++打开它时,格式就搞砸了。为什么会这样,以及如何解决它?

1 个答案:

答案 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。愚蠢和全面的解决方案是在每个地方使用空格,这就是我刚才描述的设置。