White space characters include carriage returns, line feeds, spaces, and tabs.
CR: Carriage Returns, 回车,常常标记为\r
LF: Line Feeds,换行,常常标记为\n
Spaces,空格
Tabs,制表符
DOS及Windows下:CR LF(\r\n)回车换行表示切换至新的一行
Linux及Unix下:LF(\n)换行表示切换至新的一行
Mac OS下:CR(\r)回车符表示切换至下一行
跨系统时由于系统间差异导致显示问题:Windows打开Linux下的文件时,所有行合并为一行;Linux打开Windows下的文件后,出现很多^M符号。
Linux下删除^M
的方法:cat test.txt | tr -d "\r" > newTest.txt
Linux也有实现与Windows系统文件格式互换的命令:unix2dos, dos2unix
unix2dos 是把linux文件格式转换成windows文件格式
dos2unix 是把windows格式转换成linux文件格式
显示空格及制表符
Sublime Text默认为选择部分文字显示空格及制表符,这是由于默认配置中"draw_white_space": "selection"
的作用,如果要修改为一直显示空格及制表符,则修改为"draw_white_space": "all"
即可。
这是Sublime原生支持的方法,详见这里的讨论:http://stackoverflow.com/questions/10153998/sublime-text-2-view-whitespace-characters
但是,上述方式无法显示行末的回车CR、换行LF符号,虽然参考[1]和[2]中有关于这一问题的讨论,但仍完美解决方案。
回车换行符的解决方案
Sublime + RawLineEdit
- 首先安装Packages Control
- 安装插件RawLineEdit
- 修改Settings - User,添加如下配置信息:
更多详细请参考:https://github.com/facelessuser/RawLineEdit1
2
3
4
5
6
7
8
9
10
11
12
13// Use a glyph for a visual representation
// for newlines
"use_newline_glyph": true,
// Use the raw line edit theme to allow
// a view that highlights only new lines
// and carriage returns for easy visualization.
// (Colors customizable via your color scheme file)
"use_raw_line_edit_theme": true,
// View only mode: pops up a output panel showing line endings.
// No editing possible.
"view_only": false
4.通过Tools - Command Palette (Ctrl + Shift + P),键入RawLineEdit后回车确定切换至RawLineEdit视图,再次键入RawLineEdit切换至普通视图。
注意:参数"view_only": false
的设置会使得在RawLineEdit视图下时无法编辑,必须再次进行RawLineEdit Toggle切换至普通视图进行编辑。
普通视图与RawLineEdit视图下的对比:
总结
目前在官网论坛也有过一些关于要求Sublime支持显示CR、LF功能的帖子,但目前为止Sublime Text 3059无法直接显示行末的CR、LF符号。
虽然有插件的方案,在一定程度上解决回车CR及换行LF符号的显示,但体验一般,额外操作带来不少困扰。
关注Sublime,如果有可行方案,会更新此文。