首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件名和find-file中的^M

文件名和find-file中的^M
EN

Stack Overflow用户
提问于 2010-01-13 19:46:26
回答 4查看 217关注 0票数 2

更新:只有当我从Windows机器访问特定服务器时,才会发生这种情况

使用emacs tramp (plink),我登录到两个不同的服务器,其中一个使用find-file时遇到了问题。

如果我在目录中执行制表符补全,则所有文件名都会附加^M,例如:

代码语言:javascript
复制
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后缀结束,这是一个不存在的文件的文件名:

代码语言:javascript
复制
/plink:user@myserver.com:/home/me/.gitignore^M

有没有人遇到过类似的问题?^M是无法搜索的!

EN

回答 4

Stack Overflow用户

发布于 2010-01-13 19:53:56

^M实际上是回车符/换行符的回车部分(十六进制0x0d,10月015)。您可能需要将服务器配置为使用换行符作为行尾。也许有一种方法可以在emacs中修复这个问题,但我现在还不知道。

在某种程度上,这是MS Windows (回车/换行符)与Linux (换行符)的问题。然而,这并不是真的那么简单,这两种类型的行结尾都有一个历史上很好的理由。

票数 0
EN

Stack Overflow用户

发布于 2010-01-13 19:57:25

正如在其他地方提到的,^M是CR字符,它构成了在DOS中用作行结束符的half对的前半部分。Unix/Linux只使用LF,因此^M显示为额外的字符。

当我在vim中看到它时,我通过搜索^M并将其替换为空来将其删除。要指定^M,请按ctrl-V,然后按M

我确信emacs有某种方法来做同样的事情。

票数 0
EN

Stack Overflow用户

发布于 2011-02-01 11:12:13

试一试

代码语言:javascript
复制
    (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)

或者甚至是

代码语言:javascript
复制
'(ansi-color-for-comint-mode-on)
'(ansi-color-for-comint-mode-filter)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2056319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档