请教如何隐藏^M换行符

259 views
Skip to first unread message

Prim

unread,
May 20, 2012, 5:16:56 AM5/20/12
to vim...@googlegroups.com
由于某些原因代码文件是dos和unix格式换行符混杂的
我没有权利统一改变所有的换行符到统一的格式

如果我将fileformat设置为dos,可以达到隐藏^M这个符号, 但是在保存的时候会自动修正所有的换行符
我能不能禁止这个自动修正的动作?

或者用其他的方式隐藏不显示^M?

Lazymo...@gmail.com

unread,
May 20, 2012, 6:19:35 AM5/20/12
to vim...@googlegroups.com
可以直接删除"^M",nmap <F9> :%s/\r<CR>。。。

On , Prim <uki...@gmail.com> wrote:
> 由于某些原因代码文件是dos和unix格式换行符混杂的我没有权利统一改变所有的换行符到统一的格式

>
>
> 如果我将fileformat设置为dos,可以达到隐藏^M这个符号, 但是在保存的时候会自动修正所有的换行符
> 我能不能禁止这个自动修正的动作?
>
>
> 或者用其他的方式隐藏不显示^M?
>
>
>
>
>
> --
>
> 要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
>
> 更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛
>
>

夏凯

unread,
May 20, 2012, 6:49:04 AM5/20/12
to vim...@googlegroups.com
不用修改ff啊,如果原来是dos的,你保存,默认就是dos的,如果原来是unix的,你报错,默认就是unix的。像我的.vimrc里面是se
ff=unix,打开dos下的文件,不显示^M,保存后也是dos的换行,不会修改位unix的,如果你打开后在se
ff=unix,这样肯定会修改的。

2012/5/20 Prim <uki...@gmail.com>

> --
> 要退订此论坛,请发邮件至 vim-cn+un...@googlegroups.com
> 更多选项,请通过 http://groups.google.com/group/vim-cn 访问该论坛


--
contact me:
MSN: walk...@gmail.com
GTALK: walk...@gmail.com

Prim Che

unread,
May 20, 2012, 7:06:27 AM5/20/12
to vim...@googlegroups.com
呃,再强调下,原有的代码文件是两种换行符混杂~~~
我想要做到以dos方式换行,不显示^M,保存时不会自动修正原有混杂的换行符

夏凯

unread,
May 20, 2012, 11:59:33 AM5/20/12
to vim...@googlegroups.com
严格来说,如果是混杂的话,那么^M就是文件的内容,这个没法不显示吧,比如我要不显示一个txt中的字符a?而且又要保存的时候保留?

2012/5/20 Prim Che <uki...@gmail.com>:

依云

unread,
May 20, 2012, 12:18:36 PM5/20/12
to vim...@googlegroups.com
What about +conceal?
Best regards,
lilydjwg

Linux Vim Python 我的博客:
http://lilydjwg.is-programmer.com/
--
A: Because it obfuscates the reading.
Q: Why is top posting so bad?

Tao Yang

unread,
May 20, 2012, 10:43:59 PM5/20/12
to vim...@googlegroups.com
2012/5/20 Prim Che <uki...@gmail.com>:

> 呃,再强调下,原有的代码文件是两种换行符混杂~~~
> 我想要做到以dos方式换行,不显示^M,保存时不会自动修正原有混杂的换行符
>
这种需求应该没有编辑器能满足吧。。。太那啥了。
P.S. 公司的code style也能允许这样的情况?

--
※ Tao Yang @ Nankai University
※ Website: [http://ninehills.github.com]

夏凯

unread,
May 20, 2012, 11:36:04 PM5/20/12
to vim...@googlegroups.com
依云说的conceal可以,不过要vim 7.3,相当于inline folding。

2012/5/21 Tao Yang <swul...@gmail.com>:

Xell Liu

unread,
May 21, 2012, 3:56:55 AM5/21/12
to vim...@googlegroups.com
也不需要 conceal,直接定义一个新的 syntax match,然后 highlight link 到 Ignore 或自定义的一个与背景同色的高亮即可。

2012/5/21 夏凯 <walk...@gmail.com>:

夏凯

unread,
May 21, 2012, 4:36:23 AM5/21/12
to vim...@googlegroups.com
。。。这样也行,在行末可以,如果在中间就不行了,不过如果用了list的话,会发现$前面有空白,而且我的背景是透明的,这样就不行了吧。

2012/5/21 Xell Liu <xell...@gmail.com>:

Xell Liu

unread,
May 21, 2012, 4:50:48 AM5/21/12
to vim...@googlegroups.com
不太明白你的回复,我没法断句……

其实我刚刚想到还有最简单的,如果你仅仅需要视觉上隐藏的话——直接 :match Ignore /^M/ 即可。请自行将 Ignore
换为一种与背景融合的高亮,另外 ^M 的输入方法是 Ctrl-V Ctrl-M(Win 下可能需要用 Ctrl-Q Ctrl-M)。

2012/5/21 夏凯 <walk...@gmail.com>:

夏凯

unread,
May 21, 2012, 6:55:25 AM5/21/12
to vim...@googlegroups.com
\r就行了吧,^M输入太麻烦了。

2012/5/21 Xell Liu <xell...@gmail.com>:

Xell Liu

unread,
May 21, 2012, 7:03:55 AM5/21/12
to vim...@googlegroups.com
多谢指出,确实 \r 就可以鸟~

2012/5/21 夏凯 <walk...@gmail.com>:

夏凯

unread,
May 21, 2012, 7:32:48 AM5/21/12
to vim...@googlegroups.com
我的意思是,如果我要隐藏行中的\r,那么原来的a\rb就变成了a空格b,但是他要的是ab吧,如果用了se list,那么原来是a^M$,变成了a $而不是a$。
不过\r一般都是行末,除非是一些程序要动态在同一行显示进度条什么的,比如youtube-dl。
还有我的终端背景是透明的,就没法改成背景色了吧。
PS:其实活用\r的话可以出来很多很好玩并且实用的效果的。
2012/5/21 Xell Liu <xell...@gmail.com>:

Ricky

unread,
May 21, 2012, 7:36:51 AM5/21/12
to vim...@googlegroups.com
ʲô��˵�е�ƽ̨�ܼ������ֻ��з�?��Ҫ������ǰ�Ļ��з�,���ı��˻���벻��?

On 2012-5-21 19:32, �Ŀ� wrote:
> �ҵ���˼�ǣ������Ҫ�������е�\r����ôԭ����a\rb�ͱ����a�ո�b��������Ҫ����ab�ɣ��������se list����ôԭ����a^M$�������a $����a$��
> ����\rһ�㶼����ĩ�������һЩ����Ҫ��̬��ͬһ����ʾ�����ʲô�ģ�����youtube-dl��
> �����ҵ��ն˱�����͸���ģ���û���ijɱ���ɫ�˰ɡ�
> PS����ʵ����\r�Ļ����Գ����ܶ�ܺ��沢��ʵ�õ�Ч��ġ�
> 2012/5/21 Xell Liu <xell...@gmail.com>:
>> ��лָ����ȷʵ \r �Ϳ�����~
>>
>> 2012/5/21 �Ŀ� <walk...@gmail.com>:
>>> \r�����˰ɣ�^M����̫�鷳�ˡ�
>>>
>>> 2012/5/21 Xell Liu <xell...@gmail.com>:
>>>> ��̫������Ļظ�����û���Ͼ䡭��
>>>>
>>>> ��ʵ�Ҹո��뵽������򵥵ģ�����������Ҫ�Ӿ������صĻ�����ֱ�� :match Ignore /^M/ ���ɡ������н� Ignore
>>>> ��Ϊһ���뱳���ںϵĸ��������� ^M �����뷽���� Ctrl-V Ctrl-M��Win �¿�����Ҫ�� Ctrl-Q Ctrl-M����
>>>>
>>>> 2012/5/21 �Ŀ� <walk...@gmail.com>:
>>>>> ����������Ҳ�У�����ĩ���ԣ�������м�Ͳ����ˣ������������list�Ļ����ᷢ��$ǰ���пհף������ҵı�����͸���ģ�����Ͳ����˰ɡ�
>>>>>
>>>>> 2012/5/21 Xell Liu <xell...@gmail.com>:
>>>>>> Ҳ����Ҫ conceal��ֱ�Ӷ���һ���µ� syntax match��Ȼ�� highlight link �� Ignore ���Զ����һ���뱳��ͬɫ�ĸ������ɡ�
>>>>>>
>>>>>> 2012/5/21 �Ŀ� <walk...@gmail.com>:
>>>>>>> ����˵��conceal���ԣ�����Ҫvim 7.3���൱��inline folding��
>>>>>>>
>>>>>>> 2012/5/21 Tao Yang <swul...@gmail.com>:
>>>>>>>> 2012/5/20 Prim Che <uki...@gmail.com>:
>>>>>>>>> ������ǿ���£�ԭ�еĴ����ļ������ֻ��з����~~~
>>>>>>>>> ����Ҫ������dos��ʽ���У�����ʾ^M������ʱ�����Զ�����ԭ�л��ӵĻ��з�
>>>>>>>>>
>>>>>>>> ��������Ӧ��û�б༭��������ɡ�����̫��ɶ�ˡ�
>>>>>>>> P.S. ��˾��code styleҲ����������������
>>>>>>>>
>>>>>>>>

vvcoder

unread,
May 21, 2012, 9:57:46 AM5/21/12
to vim...@googlegroups.com
请看此处 http://vvcoder.sourceforge.net/?p=36 

在 2012年5月20日星期日UTC+8下午5时16分56秒,Prim写道:

Prim Che

unread,
May 21, 2012, 12:26:08 PM5/21/12
to vim...@googlegroups.com
非常感谢大家的热情回复哈!:)

具体是这样的,我是做MMORPG的,很大一部分代码都是由游戏策划通过游戏客户端让在linux跑的服务器生成
而开发的程序员则是在win xp下做开发,由于老大一开始就没有规范要统一用哪种换行,所以现在就完全乱套了

我还是项目组里面的新人,不太敢叫他们统一把换行符换成\
他们用的都不是vim,也不晓得有没有这个困扰

具体的代码是python,混杂的换行符对解释器好像一点影响都没有~

最后再次谢谢大家 ^ - ^

--

Tolbkni Kao

unread,
May 22, 2012, 5:54:29 AM5/22/12
to vim...@googlegroups.com
你可以把自己接触到的文件的换号符统一一下,这个一般都会同意,如果不放心的话,向你老大申请。

2012/5/22 Prim Che <uki...@gmail.com>
Reply all
Reply to author
Forward
0 new messages