Vim - 恢复文件后缩进和语法高亮显示已损坏

时间:2012-05-01 15:26:34

标签: vim syntax highlight recover

我正在用vim编辑一个文件。我开始另一个vim编辑同一个文件,它说/tmp/file.swp退出,按“R”恢复它。我选择了恢复。但在那之后,语法高亮不能对该文件起作用(其他文件仍然可以)。我试过:语法和一些命令但没有用。

5 个答案:

答案 0 :(得分:6)

您可以尝试使用以下命令指定类型类型。例如对于c file:

:set filetype=c

答案 1 :(得分:2)

我只是简单地解决它。

我找到了〜/ .vim / view /的文件夹,并删除了我刚恢复的py文件的记录......

cd ~/.vim/view && ls -alh | grep filename_1 | awk '{print $9}' | xargs rm

您可以根据需要更改...只是演示。

:)

答案 2 :(得分:1)

突然崩溃后我不得不恢复vim缓冲区。虽然文件已正确恢复,但我不能对语法高亮显示相同。 (我很确定这不依赖于语言,但为了完整起见,我的文件是一个python脚本。)

据我所知,此问题通常是由会话,stated in this similar question或语法突出显示错误加载引起的。但是vim views也会影响文件在编辑器中的显示方式。对于那些倾向于automatise the loading of previously stored views的人来说尤其如此。在此预感之后我删除了我存储的视图文件并解决了问题。

请注意这个解决方案显然是有代价的:文件将以新视图打开,即没有先前的布局(光标位置,打开/关闭的窗口等)将被记住VIM。这很明显,但我想我还是会提到它。

答案 3 :(得分:0)

可能需要为正确的语法设置文件类型:

" C syntax:
:set ft=c

" Java syntax:
:set ft=java

" Python syntax:
:set ft=py

" ... etc.

答案 4 :(得分:0)

您可以通过键入编辑当前文件的:e %来重新运行缓冲区打开进程以再次运行所有自动命令。这将使所有bufread * auto命令运行,您将获得所有内容。我相信它们是故意禁用的,以防恢复文件中出现问题,而自定义自动命令可能会对文件损坏做坏事。