更新:只有当我从Windows机器访问特定服务器时,才会发生这种情况
使用emacs tramp (plink),我登录到两个不同的服务器,其中一个使用find-file时遇到了问题。
如果我在目录中执行制表符补全,则所有文件名都会附加^M,例如:
Click <mouse-2> on a completion to select it.
In this buffer, type RET to select the completion near point.
Possible completions are:
-name^M ../^M
./^M .bash_history^M
.git/^M .gitconfig^M
.gitignore^M .lesshst^M
.ssh/^M .subversion/^M当我用tab键补齐文件名时,它会以^M后缀结束,这是一个不存在的文件的文件名:
/plink:user@myserver.com:/home/me/.gitignore^M有没有人遇到过类似的问题?^M是无法搜索的!
发布于 2010-01-13 19:53:56
^M实际上是回车符/换行符的回车部分(十六进制0x0d,10月015)。您可能需要将服务器配置为使用换行符作为行尾。也许有一种方法可以在emacs中修复这个问题,但我现在还不知道。
在某种程度上,这是MS Windows (回车/换行符)与Linux (换行符)的问题。然而,这并不是真的那么简单,这两种类型的行结尾都有一个历史上很好的理由。
发布于 2010-01-13 19:57:25
正如在其他地方提到的,^M是CR字符,它构成了在DOS中用作行结束符的half对的前半部分。Unix/Linux只使用LF,因此^M显示为额外的字符。
当我在vim中看到它时,我通过搜索^M并将其替换为空来将其删除。要指定^M,请按ctrl-V,然后按M
我确信emacs有某种方法来做同样的事情。
发布于 2011-02-01 11:12:13
试一试
(add-hook 'comint-output-filter-functions
'shell-strip-ctrl-m nil t)
(add-hook 'comint-output-filter-functions
'comint-watch-for-password-prompt nil t)或者甚至是
'(ansi-color-for-comint-mode-on)
'(ansi-color-for-comint-mode-filter)https://stackoverflow.com/questions/2056319
复制相似问题