计算化学公社

标题: cp2k vim 安装插件报错 [打印本页]

作者
Author:
超级菜的菜鸟    时间: 2024-9-28 19:59
标题: cp2k vim 安装插件报错
请教各位老师!!!!!!!!!
我按照官网上的步骤一步一步照做了,但是打开vim文件的时候报错了。
我操作的第一步:mkdir -p ~/.vim/syntax
第二步wget -O ~/.vim/syntax/cp2k.vim http://manual.cp2k.org/trunk/cp2k.vim
第三步:在.vim目录下创建了filetype.vim文件
filetype.vim文件的内容为:
if exists("did_load_filetypes")
   finish
endif
augroup filetypedetect
   au! BufNewFile,BufRead *.inp setf cp2k
augroup END

以上三步完成后,我运行vi filetype.vim命令,出现以下报错信息:
Error detected while processing /home/zpan/.vim/filetype.vim:
line    1:
E15: Invalid expression: exists("did_load_filetypes")^M
line    7:
E171: Missing :endif
line    1:
E15: Invalid expression: exists("did_load_filetypes")^M
line    7:
E171: Missing :endif
line    1:
E15: Invalid expression: exists("did_load_filetypes")^M
line    7:
E171: Missing :endif
Press ENTER or type command to continue

目前不知道如何解决这个问题,恳请各位老师指点!





作者
Author:
乐平    时间: 2024-9-28 20:47
首先,不需要打那么多感叹号…… 社长会来批评你的……

其次,你创建的 filetype.vim 文件是怎么输入的?

从你的报错信息来看
E15: Invalid expression: exists("did_load_filetypes")^M


你看到结尾的 ^M 没有?然后对比一下你输入的
  1. if exists("did_load_filetypes")
复制代码


结尾是不是没有 ^M
这说明什么?

大概率是你在 Windows 系统里编辑的  filetype.vim 文件,然后上传到 Linux 系统里。由于不同系统文本编辑的换行符不同,导致了读取错误。

解决方案:
在 Linux 系统下,命令行状态输入
  1. vi -b ~/.vim/filetype.vim
复制代码


你会看到打开的 filetype.vim 每行结尾的 ^M 符号
【注意】将输入法切换到英文状态
将光标移动到每行结尾,在键盘上按字母 x ,删掉 ^M 符号(有多少个就删掉多少个)
然后按冒号 : 【注意,是英文输入法的冒号,绝对不能是中文输入法的冒号】
然后按 wq (保存并退出)

作者
Author:
Uus/pMeC6H4-/キ    时间: 2024-9-28 22:11
本帖最后由 Uus/pMeC6H4-/キ 于 2024-9-28 22:25 编辑
乐平 发表于 2024-9-28 20:47
解决方案:
在 Linux 系统下,命令行状态输入
  1. vi -b ~/.vim/filetype.vim
复制代码

...

这种经典Windows换行符问题不开vim也能处理,在Linux命令行直接输入一个sed替换就行。前几天刚好被.xyz结构出的类似问题折腾过一小会,现在养成检查的习惯了。任何文件(以下以filename为例,假定已经通过cd切到其目录)传到Linux系统后先在命令行输入:
  1. file ./filename
复制代码

观察输出是否以“with CRLF line terminators”结尾,如果没有则检查通过可以继续,有的话马上输入:
  1. sed -i "s/\r$//" ./filename
复制代码



编辑:Linux的基础知识对搞计算化学的十分重要,楼主要入门的话可以从“计算机教育中缺失的一课”菜鸟教程开始。
作者
Author:
乐平    时间: 2024-9-29 11:05
本帖最后由 乐平 于 2024-9-29 11:10 编辑
Uus/pMeC6H4-/キ 发表于 2024-9-28 22:11
这种经典Windows换行符问题不开vim也能处理,在Linux命令行直接输入一个sed替换就行。前几天刚好被.xyz结 ...

你回复错人了吧……
你希望帮助到楼主,就应该回复楼主的帖子。

作者
Author:
超级菜的菜鸟    时间: 2024-9-30 09:49
乐平 发表于 2024-9-28 20:47
首先,不需要打那么多感叹号…… 社长会来批评你的……

其次,你创建的 filetype.vim 文件是怎么输入的 ...

非常感谢老师,我的问题已经解决,我就是因为filetype.vim 文件在Window系统编辑,然后上传liunx导致的问题。
作者
Author:
超级菜的菜鸟    时间: 2024-9-30 09:52
Uus/pMeC6H4-/キ 发表于 2024-9-28 22:11
这种经典Windows换行符问题不开vim也能处理,在Linux命令行直接输入一个sed替换就行。前几天刚好被.xyz结 ...

十分感谢老师,我的问题已经解决,刚开始接触计算化学,liunx不会,我会好好学习的




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3