pjz*_*pjz 1039
dos2unix是一个命令行实用程序,它将执行此操作,或者:%s/^M//g如果您使用Ctrl- v Ctrl- m输入^ M,或者您可以:set ff=unix和vim将为您执行此操作.
'fileformat'设置上的文档在这里,vim wiki有一个全面的页面结束转换.
或者,如果你来回移动文件很多,你可能不想转换它们,而是要做:set ff=dos,所以vim会知道它是一个DOS文件并使用DOS约定来进行行结束.
Lud*_*rin 262
更改视图中的行结尾:
:e ++ff=dos
:e ++ff=mac
:e ++ff=unix
Run Code Online (Sandbox Code Playgroud)
这也可以用作保存操作(:w单独使用你在屏幕上看到的行结尾不会保存):
:w ++ff=dos
:w ++ff=mac
:w ++ff=unix
Run Code Online (Sandbox Code Playgroud)
您可以从命令行使用它:
for file in *.cpp
do
vi +':w ++ff=unix' +':q' "$file"
done
Run Code Online (Sandbox Code Playgroud)
小智 156
我通常使用
:%s/\r/\r/g
Run Code Online (Sandbox Code Playgroud)
这似乎有点奇怪,但因为vim与换行符的方式相同而起作用.我也发现它更容易记住:)
Syl*_*sne 86
我更喜欢使用以下命令:
:set fileformat=unix
Run Code Online (Sandbox Code Playgroud)
您还可以使用mac或dos分别将文件转换为macintosh或MS-DOS/MS-Windows文件约定.如果文件格式正确,则无效.
有关更多信息,请参阅vim帮助:
:help fileformat
Run Code Online (Sandbox Code Playgroud)
mer*_*tio 19
:%s/\r+//g
Run Code Online (Sandbox Code Playgroud)
在Vim中,它会删除所有回车符,并只留下换行符.
Ale*_*ell 13
来自:http://vim.wikia.com/wiki/Change_end-of-line_format_for_dos-mac-unix
[Esc]:%s /\r $ $
dos2unix 可以直接修改文件内容.
您可以直接在文件上使用它,而无需临时文件重定向.
dos2unix input.txt input.txt
Run Code Online (Sandbox Code Playgroud)
以上使用假定的美国键盘.使用-437选项可以使用英国键盘.
dos2unix -437 input.txt input.txt
Run Code Online (Sandbox Code Playgroud)
小智 8
@ https://gist.github.com/sparkida/7773170
find $(pwd) -type f -name "*.ext" | while read file; do sed -e 's/^M//g' -i "$file"; done;
Run Code Online (Sandbox Code Playgroud)
另外,如上所述,^ M = Ctrl+V+ Ctrl+M(不要只输入插入符"^"符号和M)
tr -d '\15\32' < winfile.txt > unixfile.txt
Run Code Online (Sandbox Code Playgroud)
(见:http://kb.iu.edu/data/acux.html)
小智 6
我找到了一个非常简单的方法:用nano打开文件:nano file.txt
按Ctrl+O保存,但在按 之前Enter,按:Alt+D在 DOS 和 Unix/Linux 行结束之间切换,或:Alt+M在 Mac 和 Unix/Linux 行结束之间切换,然后按Enter保存和Ctrl+X退出。
使用以下命令:
:%s/^M$//g
Run Code Online (Sandbox Code Playgroud)
然后获取^M出现的类型. 告诉Vim从字面上输入下一个字符.CtrlVCtrlMCtrlV
以下步骤可以将dos的文件格式转换为unix:
:e ++ff=dos Edit file again, using dos file format ('fileformats' is ignored).[A 1]
:setlocal ff=unix This buffer will use LF-only line endings when written.[A 2]
:w Write buffer using unix (LF-only) line endings.
Run Code Online (Sandbox Code Playgroud)
参考:http://vim.wikia.com/wiki/Change_end-of-line_format_for_dos-mac-unix
关于让 ^M 出现的评论对我有用。仅仅在我的 vi 中输入“^M”一无所获(未找到)。该CTRL+ V CTRL+M序列做到了完美不过。
我的工作替换命令是
:%s/Ctrl-V Ctrl-M/\r/g
Run Code Online (Sandbox Code Playgroud)
它在我的屏幕上看起来像这样:
:%s/^M/\r/g
Run Code Online (Sandbox Code Playgroud)
在 VIM 中:
:e ++ff=dos | set ff=unix | w!
Run Code Online (Sandbox Code Playgroud)
在带有 VIM 的 shell 中:
vim some_file.txt +'e ++ff=dos | set ff=unix | wq!'
Run Code Online (Sandbox Code Playgroud)
e ++ff=dos- 强制以dos格式打开文件。
set ff=unix- 将文件转换为unix格式。