在Linux中读取DOS/Windows文本文件

发布于 2024-10-11 05:51:28 字数 292 浏览 6 评论 0原文

众所周知,DOS/Windows 文件中的行结尾与 Unix/Linux 中的行结尾不同,因此每当我打开使用 Windows 创建的文件时,我会在每行后面看到数百个 ^M。许多人建议使用以下方法解决这个问题:

set fileformat=dos

我尝试了这个,但它不起作用,因为据我所知,它告诉 Vim 如何“保存”文件,而不是如何“读取”文件。我想要的是保持行尾不变,无论是 Linux、Windows 还是 MAC,正确读取它们,并在编辑后使用相同的格式保存文件。

有什么想法吗?

As you all know, the line endings in DOS/Windows file differ than those of Unix/Linux, so whenever I open a file that I have created using Windows, I see hundreds of ^M after each line. Many people suggested solving this problem using:

set fileformat=dos

I tried this but it doesn't work, because as far as I noticed, it tells Vim how to "save" the file, rather than how to "read" the file. What I want is keep line-endings as they are, be they Linux, Windows, or MAC, read them correctly, and save the file using the same format aftr editing.

Any idea?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

榕城若虚 2024-10-18 05:51:29
  1. 添加

    set fileformats=unix,dos,mac
    

    到你的 vimrc。

  2. 如果 vim 未能检测到正确的行结尾,请在打开的文件中运行 :e ++ff=dos

  1. Add

    set fileformats=unix,dos,mac
    

    to your vimrc.

  2. Run :e ++ff=dos in opened file if vim failed to detect correct line ending.

你不是我要的菜∠ 2024-10-18 05:51:29
" put this in your ~/.vimrc, resource then and try :Dos2Unix
" dos2unix ^M
fun! Dos2unixFunction()
    let _s=@/
    let l = line(".")
    let c = col(".")
    try
        set ff=unix
        w!
        "%s/\%x0d$//e
    catch /E32:/
        echo "sorry, first save your file."
    endtry
    let @/=_s
    call cursor(l, c)
endfun
com! Dos2Unix keepjumps call Dos2unixFunction()
" put this in your ~/.vimrc, resource then and try :Dos2Unix
" dos2unix ^M
fun! Dos2unixFunction()
    let _s=@/
    let l = line(".")
    let c = col(".")
    try
        set ff=unix
        w!
        "%s/\%x0d$//e
    catch /E32:/
        echo "sorry, first save your file."
    endtry
    let @/=_s
    call cursor(l, c)
endfun
com! Dos2Unix keepjumps call Dos2unixFunction()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文