2011-03-30 52 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格式。