[已得到高人指点]求助vim诡异的^M问题

Vim、Emacs配置和使用
头像
lgy0417
帖子: 326
注册时间: 2008-08-03 22:29

[已得到高人指点]求助vim诡异的^M问题

#1

帖子 lgy0417 » 2010-04-11 11:14

俺有一个文件,在cat -v下面明明每行都有^M,但是到了vim下面通通不显示(但是其他的文件有时候就会显示^M)

试着设置set fileformat也没有用

在vim里面做替换%s/^M//g居然说pattern not found,这不是睁眼说瞎话么?明明到处都有,但是vim不显示也不替换

请教下谁明白为什么是这样
上次由 lgy0417 在 2010-04-12 10:02,总共编辑 1 次。
头像
cnkilior
论坛版主
帖子: 4984
注册时间: 2007-08-05 17:40

Re: 求助vim诡异的^M问题

#2

帖子 cnkilior » 2010-04-11 11:20

dos2unix
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

Re: 求助vim诡异的^M问题

#3

帖子 adagio » 2010-04-11 11:41

pocoyo 写了:
%s/^M//g
^M 怎么打的....
:em06
C-v
C-m
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
头像
lgy0417
帖子: 326
注册时间: 2008-08-03 22:29

Re: 求助vim诡异的^M问题

#4

帖子 lgy0417 » 2010-04-11 17:16

adagio 写了:
pocoyo 写了:
%s/^M//g
^M 怎么打的....
:em06
C-v
C-m
我是这么打的啊 话说这个替换我以前做过 只要vim界面里能看到^M,就可以用%s/^M//g替换 但是有的文件明明一堆回车 vim却不显示也不给替换……
头像
lgy0417
帖子: 326
注册时间: 2008-08-03 22:29

Re: 求助vim诡异的^M问题

#5

帖子 lgy0417 » 2010-04-11 17:19

pocoyo 写了:
%s/^M//g
^M 怎么打的....
:em06
没错啊 文件打包上传了 附件~
附件
file.tar.gz
(2.42 KiB) 已下载 72 次
头像
i_NIX
帖子: 450
注册时间: 2008-02-11 15:46

Re: 求助vim诡异的^M问题

#6

帖子 i_NIX » 2010-04-11 17:25

奇怪,我的vim7.2上,一个^M都没有显示哦
Google Talk群组,请来<雨云>一番!
主题:UbuntuLinux编程科幻、民主、科学等。
添加 [email protected] 为好友(然后say hi,并等待验证)
参见 http://goo.gl/xIpxH

Twitter:http://twitter.com/nixzhu
头像
lgy0417
帖子: 326
注册时间: 2008-08-03 22:29

Re: 求助vim诡异的^M问题

#7

帖子 lgy0417 » 2010-04-11 17:36

i_NIX 写了:奇怪,我的vim7.2上,一个^M都没有显示哦
是吧 可是你可以试一试

代码: 全选

cat -v r.vim
于是就有一屏的^M……
我觉得这是vim的问题
JiangHui
论坛版主
帖子: 21308
注册时间: 2007-08-02 20:29
系统: 窓辺とうこ

Re: 求助vim诡异的^M问题

#8

帖子 JiangHui » 2010-04-11 17:44

cat -v 就是show-nonprinting啊
怎么能在vim直接敲^M呢,字符串“^M”和非打印字符不一样的
头像
lgy0417
帖子: 326
注册时间: 2008-08-03 22:29

Re: 求助vim诡异的^M问题

#9

帖子 lgy0417 » 2010-04-11 18:02

JiangHui 写了:cat -v 就是show-nonprinting啊
怎么能在vim直接敲^M呢,字符串“^M”和非打印字符不一样的
没说在insert模式下直接敲啊 只是敲命令才c-v c-m啊
我的问题是为什么vim为什么对于有的文件显示行尾的^M 有的就不显示也不能替换
JiangHui
论坛版主
帖子: 21308
注册时间: 2007-08-02 20:29
系统: 窓辺とうこ

Re: 求助vim诡异的^M问题

#10

帖子 JiangHui » 2010-04-11 18:24

你上传那文件在vim里没显示^M

找了一个满是非打印字符的二进制文件试了替换下完全正常哦,个人问题?
1.jpg
1.jpg (119.27 KiB) 查看 3676 次
头像
lgy0417
帖子: 326
注册时间: 2008-08-03 22:29

Re: 求助vim诡异的^M问题

#11

帖子 lgy0417 » 2010-04-11 18:43

JiangHui 写了:你上传那文件在vim里没显示^M

找了一个满是非打印字符的二进制文件试了替换下完全正常哦,个人问题?
1.jpg
我非常想知道为啥那个满是^M的文件在vim下就显示不出来……
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 求助vim诡异的^M问题

#12

帖子 lilydjwg » 2010-04-11 22:24

代码: 全选

:set ffs=unix
强制不识别 dos 格式即可显示,或者编辑时

代码: 全选

:e ++ff=unix your_file
。set ff 是更改文件,而不是更改处理文件的选项,相当于做了 dos2unix 程序的活,然后要保存一下。

Vim 在处理时内部把所有按照识别出的 ff 所对应的换行符都转换成了 \0,正则中以 \n 匹配,除非你指定命令行选项 '-b' 或者打开文件时使用 ++bin 置位 'binary' 选项,否则你是看不到识别为 dos fileformat 的文件中的 ^M 的,就像你在 Win 下 fopen(file, "rt") 中看不到它一样。

更多请查看:

代码: 全选

:h ++
:h ff
:h ffs
头像
lgy0417
帖子: 326
注册时间: 2008-08-03 22:29

Re: 求助vim诡异的^M问题

#13

帖子 lgy0417 » 2010-04-12 9:57

lilydjwg 写了:

代码: 全选

:set ffs=unix
强制不识别 dos 格式即可显示,或者编辑时

代码: 全选

:e ++ff=unix your_file
。set ff 是更改文件,而不是更改处理文件的选项,相当于做了 dos2unix 程序的活,然后要保存一下。

Vim 在处理时内部把所有按照识别出的 ff 所对应的换行符都转换成了 \0,正则中以 \n 匹配,除非你指定命令行选项 '-b' 或者打开文件时使用 ++bin 置位 'binary' 选项,否则你是看不到识别为 dos fileformat 的文件中的 ^M 的,就像你在 Win 下 fopen(file, "rt") 中看不到它一样。

更多请查看:

代码: 全选

:h ++
:h ff
:h ffs
NB,你是传说中的神?
头像
realfiona
帖子: 137
注册时间: 2007-11-20 10:58
来自: Hangzhou, China
联系:

Re: 求助vim诡异的^M问题

#14

帖子 realfiona » 2010-04-12 13:08

lilydjwg 写了:

代码: 全选

:set ffs=unix
强制不识别 dos 格式即可显示,或者编辑时

代码: 全选

:e ++ff=unix your_file
。set ff 是更改文件,而不是更改处理文件的选项,相当于做了 dos2unix 程序的活,然后要保存一下。

Vim 在处理时内部把所有按照识别出的 ff 所对应的换行符都转换成了 \0,正则中以 \n 匹配,除非你指定命令行选项 '-b' 或者打开文件时使用 ++bin 置位 'binary' 选项,否则你是看不到识别为 dos fileformat 的文件中的 ^M 的,就像你在 Win 下 fopen(file, "rt") 中看不到它一样。

更多请查看:

代码: 全选

:h ++
:h ff
:h ffs
赞 又学到了一点
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 求助vim诡异的^M问题

#15

帖子 lilydjwg » 2010-04-12 21:52

lgy0417 写了: NB,你是传说中的神?
:em02 被认出来了 :em02
回复