如何在Emacs中删除^M
字符?
使用dos2unix文件名
或unix2dos文件名
无效。
通常我看不到任何^M
字符,但使用命令 cat -A文件名
时,这就是输出结果:
请用简单明了的语言详细解释一下......
cat -A ABC.sh
#!/bin/csh -f^M$
^M$
^M$
set input = `ls -1 *.py`^M$
echo $input^M$
如何在Emacs中删除^M
字符?
使用dos2unix文件名
或unix2dos文件名
无效。
通常我看不到任何^M
字符,但使用命令 cat -A文件名
时,这就是输出结果:
请用简单明了的语言详细解释一下......
cat -A ABC.sh
#!/bin/csh -f^M$
^M$
^M$
set input = `ls -1 *.py`^M$
echo $input^M$
[搜索了一下是否有关于替换(而不是防止等)的重复问题,但没有找到。如果有一个重复的话,那么这个或那个应该被关闭。]
在Emacs中,打开包含^M
字符的文件。转到文件开头(M-<
),然后执行以下操作:
M-x replace-string RET C-q C-m RET RET
也就是说,在要替换的提示符处,使用Control
+ q
,然后Control
+ m
,最后按Enter
。在要替换为什么内容的提示符处,只需按下Enter
(不用替换为任何东西)。
replace-string
和 C-q
之间必须插入一个 RET
。 - Ytrog^M
字符吗?C-s C-q C-m
显示了什么? - Drew我一直在使用这个
(defun delete-carrage-returns ()
(interactive)
(save-excursion
(goto-char 0)
(while (search-forward "\r" nil :noerror)
(replace-match ""))))
我相信有更好的方法,但这个方法已经足够好了,所以我不再继续寻找。
dos2unix
应该 可以将其转换。它会给你什么输出? - phils