Как настроить vim для автоматического преобразования концов строк любого текстового файла, который я открываю, в unix, если он уже не является unix? - PullRequest
6 голосов
/ 18 марта 2011

Я ищу какой-нибудь плагин / vi-код, который обнаруживает, есть ли какие-либо ^M (возврат каретки?) В каких-либо файлах или какой-либо признак того, что окончания строк не являются unix, и если да, то либоудалите их или запустите файл dos2unix.

Мне нужно, чтобы это работало автоматически до / во время открытия файла.

Кроме того, для людей, которые собираются предложить способы конвертацииВ конце строки вручную, один ответ указывает на :set ff=unix, но это не убивает ^M в unix-файле, я думаю.

И нет ли хитрости в использовании :%s/^M//g, потому что использованиелитерал ^ не будет соответствовать символу?

Ответы [ 3 ]

3 голосов
/ 19 марта 2011

Функция ниже интересна тем, что удерживает курсор в исходном положении положить его в свой. vimrc

" dos2unix ^M
fun! Dos2unixFunction()
    let _s=@/
    let l = line(".")
    let c = col(".")
    try
        set ff=unix
        w!
        "%s/\%x0d$//e
    catch /E32:/
        echo "Sorry, the file is not saved."
    endtry
    let @/=_s
    call cursor(l, c)
endfun
com! Dos2Unix keepjumps call Dos2unixFunction()
au BufReadPost * keepjumps call Dos2unixFunction()
1 голос
/ 18 марта 2011

Поскольку вы пометили этот git - вы можете автоматически завершить строку git convert s при регистрации / выходе (http://www.kernel.org/pub/software/scm/git/docs/git-config.html)

ps. Хитрость при выполнении ^ M при замене:

:%s/{Ctrl+V}{Ctrl+M}//{Enter}

0 голосов
/ 19 марта 2011

Если вы хотите заменить любой ^ M в любом файле, который вы открываете, может помочь autocmd, подобный следующему в вашем vimrc:

au BufReadPost * %s/^M//g

Вставка ^ M, как было указано в предыдущем ответе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...