Vim на Cygwin: предупредите, что vimrc использует Windows end of line char
Я только что установил cygwin на свою машину, и я просто получаю все настройки.
Я создал softlink между .vimrc в моем cygwin home dir и моем windows home dir, но 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 ответов
если у вас включена modeline, вы можете ввести это как первую строку в vimrc
" vim: se ff=unix :
конечно, вам придется исправить это вручную в первый раз (:se ff=dos|w!
)
таким образом, вы не должны быть предупреждены, потому что вы всегда будете в правильном режиме для этого файла.
если вы хотите его для всех файлов, посмотрите на автокоманды (AuCommand, например BufEnter). Если вы хотите просто всегда видеть fileformat, вы можете включить его в линейку или statusline
:he 'rulerformat'
:he 'statusline'
например, упрощенная строка состояния
:set statusline='%{&fileformat}'
HTH
П. С. если ваш файл нуждается в дополнительной фиксации, потому что он уже смешивал концы строк, вы можете
:%s/^M$//g
обязательно добавьте $ или вы нарушите сопоставления. Введите ^M as Ctrl-QEnter на windows (Ctrl " И " VEnter в Linux; все предполагающие конфигурации по умолчанию)
У меня есть это в моей строке статуса:
hi User9 term=reverse cterm=bold ctermbg=12 gui=bold guibg=Red
set statusline=...
set statusline+=\ %9*%{&ff=='unix'?'':&ff.'\ format'}%*
что это делает, так это то, что если я когда-либо загружу файл с окончаниями строк dos, я получу этот красивый красный "dos" в моей строке состояния.