0

之前我主要使用Notepad++,用它开发了很多SQL脚本。在 Notepad++ 中,缩进很好。现在我切换到 Vim,但发现很多行在 Notepad++ 中缩进很好,在 Vim 中没有正确缩进。

例如在记事本++中,它显示

   declare @a int
   declare @b int
   declare @c int

但是在 Vim 中打开时,它显示

  declare @a int
       declare @b int
 declare @c int

如果我在 Vim 中修复它,那么当我使用 Notepad++ 打开它时,格式就会混乱。为什么会发生,如何解决?

4

1 回答 1

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,如果不同的人希望他们的代码以不同的方式布局,这可能很有用,但如果不小心使用,这也会破坏缩进。

我认为最好的解决方案仍然是使用制表符进行缩进,使用空格对齐,但这很难维护。见那里的一个例子。愚蠢且万无一失的解决方案是在任何地方都使用空格,这就是我刚刚描述的设置。

于 2013-09-11T07:18:41.180 回答