Chinaunix首页 | 论坛 | 博客
  • 博客访问: 33537
  • 博文数量: 8
  • 博客积分: 411
  • 博客等级: 下士
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-25 18:10
文章分类
文章存档

2010年(8)

最近访客

分类: LINUX

2010-03-31 16:14:53

背景:

在三大主流操作系統Unix, Windows, Mac中,文本文件表示*行尾*時,使用不同的符號。

Unix使用LF,即line feed,為0x0A,或用^J表示

Mac使用CR,即carriage return,為0x0D,或用^M表示

Windows使用CRLF,為0x0D0A,或用^M^J表示


於是,VIM在不同的系統上便採用不同的符號解析行尾,文件格式分為三種:unix, dos, mac,用 fileformat 標識。

查看當前格式: :set ff?

各格式間轉換: :set ff=unix 并 :w


問題:

在同一文件中,若行尾符號使用混亂,如有時按unix方式用LF結尾,有時按dos方式用CRLF結尾,vim便按unix格式解析(在Linux平台)。結果,使用Windows格式CRLF結尾的行,便出顯示出一個多餘的CR,即^M。


解法:

用查找替換將^M刪除。

法一:

:%s/^M//

注意: ^M的輸入要用 ctrl-v + m 或 ctrl-v + 的方式,即按住ctrl-v的同時按m或回車。

法二: vim中 CR 可直接用 \r 表示。

:%s/\r//


參考:

:help ff

:help file-formats

(二者需翻牆)

阅读(1758) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~