关于Cygwin的Vim:警告vimrc正在使用windows end of line char

时间:2011-03-30 14:14:57

标签: vim cygwin

我刚刚在我的机器上安装了cygwin,而我正在设置所有内容。

我在我的cygwin主目录中的.vimrc和我的windows home目录之间创建了一个软链接但是vim在读取.vimrc文件时遇到了一些困难,因为它使用的是Windows行尾字符。

是否有一些方法可以用来警告vim我的vimrc文件正在使用windows end of line char?

这是一些输出。

~ $ ls -la
total 43
drwxr-xr-x+ 1 Jake None    0 Mar 30 10:11 .
drwxrwxrwt+ 1 Jake root    0 Mar 30 09:33 ..
-rw-------  1 Jake None  504 Mar 30 10:10 .bash_history
-rwxr-xr-x  1 Jake None 1103 Mar 29 14:24 .bash_profile
-rwxr-xr-x  1 Jake None 5737 Mar 30 10:06 .bashrc
-rwxr-xr-x  1 Jake None 1461 Mar 29 14:24 .inputrc
-rw-------  1 Jake None   57 Mar 30 10:05 .lesshst
-rwxr-xr-x  1 Jake None 8945 Mar 30 09:52 .mkshrc
-rwxr-xr-x  1 Jake None  792 Mar 29 14:24 .profile
-rw-------  1 Jake None 1087 Mar 30 10:11 .viminfo
lrwxrwxrwx  1 Jake None   29 Mar 30 10:05 .vimrc -> /cygdrive/c/Users/Jake/_vimrc
~ $
~ $ vim
Error detected while processing /home/Jake/.vimrc:
line    2:
E492: Not an editor command: ^M
line    3:
E492: Not an editor command: ^M
line    4:
E492: Not an editor command: ^M
line    5:
E492: Not an editor command: ^M
line   11:
E492: Not an editor command: ^M
line   14:
E492: Not an editor command: ^M
line   16:
E492: Not an editor command: ^M
line   20:
E492: Not an editor command: ^M
line   21:
E492: Not an editor command: ^M
line   22:
E492: Not an editor command: ^M
line   27:
E474: Invalid argument: backspace=indent,eol,start^M
...

4 个答案:

答案 0 :(得分:15)

来自cygwin类型

dos2unix.exe _vimrc

答案 1 :(得分:5)

如果启用了模式行,则可以将其作为vimrc中的第一行输入

" vim: se ff=unix :

当然,你必须在第一次手动修复它(:se ff=dos|w!

这样您就不必收到警告,因为您将始终处于此文件的正确模式。

如果您想要所有文件,请查看自动命令(AuCommand,例如BufEnter)。如果您只想始终看到fileformat,可以将其包含在标尺或状态行

:he 'rulerformat'
:he 'statusline'

e.g。简单的状态线

:set statusline='%{&fileformat}'

HTH

P.S。如果你的文件需要更多的修复,因为它已经混合了行尾,你可以

:%s/^M$//g

一定要添加$或你的中断映射。在Linux上输入^ M作为 Ctrl-Q 输入 Ctrl-V 输入;所有假设默认配置)

答案 2 :(得分:1)

我在状态栏中有这个:

hi User9 term=reverse cterm=bold ctermbg=12 gui=bold guibg=Red
set statusline=...
set statusline+=\ %9*%{&ff=='unix'?'':&ff.'\ format'}%*

这样做是因为如果我加载一个有dos行结尾的文件,我会在状态行中得到漂亮的红色“dos”。

答案 3 :(得分:1)

从cygwin shell中,您可以输入:

dos2unix.exe .vimrc

这会将您的文件转换为unix格式。