在我用Gvim编辑的C ++文件中,我注意到内部块中的代码行
(花括号{})
虽然在屏幕上显示Gvim中正确数量的标签
(即加上代码块之外的代码中的一个选项卡)
当我用另一个编辑器打开相同的文件时
喜欢崇高的文字
代码块内每行必须存在的额外选项卡不存在
因此,在使用十六进制编辑器打开这些文件之后,我注意到Gvim没有在代码块中编写那些额外的选项卡?
为什么会这样? 是因为cindent? 另外,我怎样才能解决这个问题,而不是每次都重新格式化?
答案 0 :(得分:3)
我很确定vim会忠实地保存缓冲区中的所有字符。各种选项会影响选项卡的显示方式,以及是否使用实际制表符或空格进行缩进。您可以检查它们的值,并查看它们的设置位置(默认情况下,在您的vimrc文件中,或通过某个插件)
:verbose set ts? sts? et? sw? sta? ci? pi?
(如果您使用:options
打开选项窗口并将其放在第15节中,则会将这些和更多相关选项组合在一起。)如果您想直观地检查选项卡字符而不是空格,您可以{{ 1}}然后搜索标签字符(或:set hls
),或者您可以:match Search '\t'
。
如果你尝试了所有这些并且你仍然认为vim没有保存缓冲区中的内容,那么有些奇怪的事情要检查,比如你是否有:set list
或相关的自动命令。