Windows 上的 Vim 开始显示 ^M 字符

     2023-02-23     214

关键词:

【中文标题】Windows 上的 Vim 开始显示 ^M 字符【英文标题】:Vim on Windows started showing ^M characters 【发布时间】:2013-05-15 10:35:44 【问题描述】:

我在运行 PowerShell 2.0 版的 Windows 7 上。

我使用以下 PowerShell 代码(来自此答案:https://***.com/a/65148/360840)来修改我的 PowerShell 配置文件:

"`nNew-Alias which get-command" | add-content $profile

正如预期的那样,它在我的个人资料中附加了有问题的行,但是之后,我的 Vim 会话开始在每行的末尾显示 ^M 个字符。很奇怪!关于导致它的原因以及如何解决它的任何线索?我在 Vim 中尝试了set fileformat=dos,但它什么也没做。

这是我的 Vim 版本信息:

(不知道如何将图片放大 - 这不是它的正常尺寸。)

【问题讨论】:

图像会根据周围元素的大小(即您的帖子的宽度)自动调整大小。只需右键单击它并在浏览器中选择“查看图像”或类似选项。 +1 谢谢,成功了。 【参考方案1】:

vim-faq 14.13. I am seeing a lot of ^M symbols in my file. I tried setting the 'fileformat' option to 'dos' and then 'unix' and then 'mac'. None of these helped. How can I hide these symbols? 中有一些解决问题的选项

您的文件可能是unix 文件格式(所有行都以<CR> 结尾),并且您附加了dos 文件格式的行(以<CR><NL> 结尾的行,这让Vim 感到困惑。

【讨论】:

【参考方案2】:

所以,我遇到了这个问题,解决方案略有不同。我检查了我的文件格式,它是 unix,你可以检查你的 :set fileformat? 它显示了我不想要的所有 ^M 字符......有趣的是,在上面指出的 VIM 手册中:http://vimhelp.appspot.com/vim_faq.txt.html#faq-14.13 声明 ^M 行结尾来自 DOS 文件格式和“如果文件有一些以 结尾的行和一些以 结尾的行,则文件格式设置为 'unix'。”

因此,鉴于此,您似乎希望删除所有 ^M 结尾,并保留结尾,但删除带有 :%s/\r$// 的结尾立即为我解决了这个问题,并且文件格式仍然显示“ Unix'。

这对我有用。作为旁注,为了提供更适合 google 的参考,我想指出我在使用 LocomotiveCMS 时遇到了这个问题。我正在使用 Wagon 将我的 CSS 文件拉回本地工作。当我找回它时,它充满了 ^M 字符,该文件仍然可以正常工作,只是很难看。

【讨论】:

【参考方案3】:

问题是文件损坏了。在这种情况下,Vim 开始显示 ^M 字符以提醒您注意问题。修复是手动删除这些字符(%s/^M//g)

我仍然不清楚,因为这些字符应该在文件中,因为 Windows 文件格式使用它们。但至少问题解决了。

编辑:请参阅带有 dash-tom-bang 的 cmets 交换,它提供了说明。

【讨论】:

Vim 向您显示 ^M 字符不要“提醒”您注意文件(可能)处于 'unix' 模式但 some 行结束的事实以 DOS 行结尾。简单的解决方法是删除所有 ^M 字符,然后更改文件格式。 (不幸的是,您不能通过将文件格式更改为 dos 来修复它,但事实如此。) @dash-tom-bang:但是文件是 on Windows(即 DOS)。我同意您删除 ^M 字符可以解决问题,但这些字符实际上是 needed 在 DOS 上的。这就是为什么我说它仍然不清楚。 +1 您需要删除 ^M 字符,以便当您将文件格式切换为 dos 时,它们不会翻倍。重置文件格式后,您将获得正确的 CRLF 行结尾。 @dash-tom-bang:我明白了,将文件格式设置为 DOS 会插入这些字符。谢谢。 +1 我想补充一点,上面的删除命令%s/^M//g 对我不起作用。我的所有行尾都有一个,但是当我运行它时,它说没有可替换的实例......真的它们只是分散注意力,我不在乎它们是否被删除,我只是不不想看他们!我想知道是否有一个配置行可以隐藏它们。

去除vim中打开文件里有的^m字符

现象:在linux下打开Windows编辑的文本文件时会出现^M原因:把文件从一个系统移到另一个不同的系统,你就会遇到与换行相关的问题。解决方法:在命令模式下使用正则表达式进行字符全文空替换:其中"^M"的输入,分别是“Ctrl+v... 查看详情

vim中如何去掉^m字符

基于DOS/Windows的文本文件在每一行末尾有一个CR(回车)和LF(换行),而UNIX文本只有一个换行,即win每行结尾为 ,而linux只有一个 如果win下的文档上传到linux,每行的结尾都会出现一个^M,(^M是ctrl+v,ctrl+m)如果是单个文档的话,... 查看详情

vim字符串替换命令

...str12/替换成/str21/str22/文件中删除^M问题描述:对于换行,Windows下用回车换行(0A0D)来表示,Linux下是回车(0A)来表示。这样,将window上的文件拷到Unix上用时,总会有个^M,请写个用在Unix下的过滤Windows文件的换行符(0D)的s 查看详情

编辑器上的vim插件,常用到的快捷件

【vim】常用到的插件命令[Esc]退出编辑(输入,插入)模式,回到命令模式中(常用)i,I进入插入模式(Insertmode):i为『从目前光标所在处插入』,I为『在目前所在行的第一个非空格符处开始插入』。(常用)a,A进入插入模式(Insertmode):a为... 查看详情

Windows 上的 TagInspector - 寻找显示字符编码的等价物

】Windows上的TagInspector-寻找显示字符编码的等价物【英文标题】:TagInspectoronWindows-lookingforanequivalentthatshowscharacter-encoding【发布时间】:2018-11-1019:18:01【问题描述】:所以我看到了这篇文章,它描述了一个名为“TagInspector”的工... 查看详情

调出控制面板的快捷键是啥?

...建立一个快捷方式项目位置为control确定就行了。单独按Windows:显示或隐藏“开始”功能表Windows+BREAK:显示“系统属性”对话框Windows+D:显示桌面Windows+M:最小化所有窗口Windows+Shift+M:还原最小化的窗口Windows+E:开启“资源管理... 查看详情

windows下vim的安装与配置

gvim7.41.安装2.配置打开安装目录下的_vimrc文件①设置语法高亮setnu!colorschemedesertsyntaxenablesyntaxon显示行号,使用desert配色方案,打开语法高亮功能(用不同颜色显示注释、关键字、字符串等)。 查看详情

vim常用命令(代码片段)

前言?自从用vscode代替eclipse,也就开始使用vim键盘布局了,刚开始也是不太习惯,不过现在越来越顺手了,也是上网搜了不少vim快捷命令,整理下来,防止以后忘记了。ZZ保存退出/name向下检索,高亮显示n向下N向上?name向上检索... 查看详情

如何在 Windows 上的 Bash 的 vim 中“复制到剪贴板”? [关闭]

】如何在Windows上的Bash的vim中“复制到剪贴板”?[关闭]【英文标题】:Howto"copytoclipboard"invimofBashonWindows?[closed]【发布时间】:2017-11-1219:57:16【问题描述】:我曾经使用"+y将文本复制到系统的剪贴板,但在Windows上的Bash... 查看详情

Vim 中的 ^M 字符是啥意思?

】Vim中的^M字符是啥意思?【英文标题】:Whatdoes^McharactermeaninVim?Vim中的^M字符是什么意思?【发布时间】:2011-08-1603:43:52【问题描述】:我的vimrc中不断出现^M字符,它破坏了我的配置。【问题讨论】:顺便说一句this是一个很好... 查看详情

windows上的docker容器内安装vim

Readingpackagelists...DoneBuildingdependencytreeReadingstateinformation...DoneE:Unabletolocatepackagevim首先apt-getupdate更新同步 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的索引 查看详情

Vim 用 unicode 字符替换

...KeyBindings.dict需要cmets将在注释中打印该行中映射的字符。开始:b 查看详情

windows下vim中文乱码处理

现象:gvim安装后,打开中文utf-8编码的文件中文显示乱码处理:1、启动gvim8.0,菜单”编辑“->"启动设定"在文件最开始处添加如下两行setfileencodings=utf-8,ucs-bom,cp936,big5setfileencoding=utf-8 vim关于文件编码常用的命令:setfile... 查看详情

让所有最小化的窗口都显示在屏幕上的快捷键是啥?

用Win+M键xp快捷键大全F1显示当前程序或者windows的帮助内容。F2当你选中一个文件的话,这意味着“重命名”F3当你在桌面上的时候是打开“查找:所有文件”对话框F10或ALT激活当前程序的菜单栏windows键或CTRL+ESC打开开始菜单CTRL+AL... 查看详情

怎样删除运行里面的命令

...t;自定义-高级->清除”即可清除运行里面的命令列表2、Windows+F:显示“搜索所有文件”窗口Windows+Ctrl+F:显示“搜索计算机”窗口Windows+R:显示“运行”命令Windows+Break:显示“系统属性”对话框Windows+Shift+M:撤销最小化所有窗... 查看详情

vim文本编辑工具

...切光标所在行之后的n行yy复制光标所在行p从光标所在行开始,向下粘贴已经复制或者粘贴的内容P(大写)从光标所在行开始,向上粘贴已经复制或者粘贴的内容nyy从光标所在行开始,向下复制n行u还原上一步操 查看详情

特定文件中的 Vim 80 字符行

...cfiles【发布时间】:2015-06-0105:25:04【问题描述】:我最近开始使用Vim。我在.vimrc中设置了80个字符行,使用以下命令:setcolorcolumn=80但这一行并非在所有文件中都显示。看下面的截图:我的.vimrc是here。有谁知道是什么问题?【问... 查看详情

VIM中不需要的模式突出显示[重复]

】VIM中不需要的模式突出显示[重复]【英文标题】:UnwantedhighlightingofpatterninVIM[duplicate]【发布时间】:2014-06-1408:27:45【问题描述】:在使用VIM编辑的任何类型的文件中,我都看到一个不需要的模式突出显示到处,我不知道如何关... 查看详情