2011-03-30 26 views
11

我刚在我的机器上安装了cygwin,并且我只是安装了一切。Vim on Cygwin:警告vimrc正在使用windows结束行char

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

是否有一些方法可以用来警告vim我的vimrc文件正在使用windows结束行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 
... 
+0

Cygwin的有一个util的,这将帮助你,D2U。 – johnny 2011-12-15 20:21:14

回答

15

cygwin的版本类型

dos2unix.exe _vimrc 
+0

不错,虽然我没有在cygwin中遇到错误,因为我没有在路径上使用cygwin1.dll,但是这解决了这个问题。 http:// stackoverflow。COM /问题/ 6752578 /该程序-着 - 开始 - 因为-cygwin1-DLL-是缺失功能于Eclipse的CDT – enkor 2015-07-07 07:19:49

5

如果你有模式行启用,您可以输入本作中,你的vimrc

" vim: se ff=unix : 
当然

的第一行,你必须手动修复它的第一次围绕(:se ff=dos|w!

这种方式你不必被警告,因为你将永远处于这个文件的正确模式。

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

:he 'rulerformat' 
:he 'statusline' 

例如简单的状态行

:set statusline='%{&fileformat}' 

HTH

附:如果您的文件需要更多的fixin',因为它已经被混合线路两端,可以

:%s/^M$//g 

一定要加$或你会打破映射。输入^ M作为按Ctrl-Q在Windows中输入按Ctrl-V在Linux上输入;所有假设默认CONFIGS)

+0

添加了有关修复混合线端文件的更多信息。这是一次性操作,如果你启用模式行 – sehe 2011-03-30 14:56:58

1

我在我的状态行有这样的:

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

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

1

从cygwin外壳,您可以键入:

dos2unix.exe .vimrc 

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