【发布时间】:2012-05-11 02:42:33
【问题描述】:
我正在用 vim 编辑一个文件。我启动另一个vim来编辑同一个文件,它说/tmp/file.swp退出,按“R”恢复它。我选择了康复。但在那之后,语法高亮对该文件不起作用(其他文件仍然可以)。我尝试了 :syntax on 和一些命令,但没有奏效。
【问题讨论】:
-
谢谢..我自己也有同样的问题。
标签: vim syntax highlight recover
我正在用 vim 编辑一个文件。我启动另一个vim来编辑同一个文件,它说/tmp/file.swp退出,按“R”恢复它。我选择了康复。但在那之后,语法高亮对该文件不起作用(其他文件仍然可以)。我尝试了 :syntax on 和一些命令,但没有奏效。
【问题讨论】:
标签: vim syntax highlight recover
我只是用简单的方法解决它。
我找到 ~/.vim/view/ 的文件夹,并删除了关于我刚刚恢复的 py 文件的记录...
cd ~/.vim/view && ls -alh | grep filename_1 | awk '{print $9}' | xargs rm
您可以随意更改...只是一个演示。
:)
【讨论】:
在突然崩溃后,我不得不恢复 vim 缓冲区。虽然文件已正确恢复,但我不能对语法高亮说同样的话。 (我很确定这与语言无关,但为了完整起见,我的文件是一个 python 脚本。)
据我所知,此问题通常是由于会话(如stated in this similar question)或错误加载的语法突出显示造成的。但是vim views 也会影响文件在编辑器中的显示方式。对于像我这样倾向于automatise the loading of previously stored views 的人来说尤其如此。根据这种预感我删除了我存储的视图文件并解决了问题。
请注意,这个解决方案显然是有代价的:文件将以全新的视图打开,即不会记住以前的布局(光标位置、打开/关闭的文件夹等) vim。这很明显,但我想我还是会提到它。
【讨论】:
您可以通过键入编辑当前文件的:e % 重新运行缓冲区打开进程以再次运行所有自动命令。这将使所有 bufread* 自动命令运行,您将恢复所有内容。我相信它们是故意禁用的,以防恢复的文件中有问题,并且自定义自动命令可能会对损坏的文件造成不良影响。
【讨论】:
您可以尝试使用以下命令来指定类型类型。比如c文件:
:set filetype=c
【讨论】:
可能需要为正确的语法设置文件类型:
" C syntax:
:set ft=c
" Java syntax:
:set ft=java
" Python syntax:
:set ft=py
" ... etc.
【讨论】: