我正在寻找某种插件/ vi代码来检测任何文件中是否有^M
(回车?)或任何类型的指示,表明行结尾不是unix,如果所以要么删除它们,要么在文件上运行dos2unix
。
我需要在文件打开之前/期间自动工作。
此外,对于那些打算建议手动转换行结尾的人,一个答案指出做:set ff=unix
,但我认为这不会杀死unix文件中的^M
。
使用:%s/^M//g
并不是一个技巧,因为使用文字^
不匹配char?
答案 0 :(得分:3)
以下功能很有趣,因为 它将光标保持在原始位置 把它放在你的。的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 :(得分:1)
因为你标记了这个git - 你可以自动在checkin / out上使用git转换行结束(http://www.kernel.org/pub/software/scm/git/docs/git-config.html)< / p>
PS。在替换中执行^ M的技巧是
:%s/{Ctrl+V}{Ctrl+M}//{Enter}
答案 2 :(得分:0)
如果你想在你打开的任何文件中替换任何^ M,你vimrc中的以下autocmd可以提供帮助:
au BufReadPost * %s/^M//g
按照上一个答案中的说明插入^ M.