vi下显示回车换行符等特殊符号
来源:互联网 发布:linux cp强制复制 编辑:程序博客网 时间:2024/06/07 17:15
换行方式
在早期的打印机时代,开始新的一行要占用两个字符的时间。如果到了一行的结尾处,你要快速回到新的一行的开头,需要打印针头在纸面上飞快地掠过,常常会在纸面上留下污点。
解决这个问题的办法就是,用两个字符:一个字符来移到第一列,另一个字符来新增一行。计算机产生以后,存储较为昂贵,在如何解决回车换行这个老问题上,人们产生了不同的意见。UNIX人认为在到达一行的结尾时新增一行 (LF),而Mac人则认同 (CR)的解决办法,MS则坚持古老的 (CRLF)的方法。这就意味着如果你将一个文件从一个系统转移到另一个系统,就面临着回车换行的问题。而Vim编辑器则会自动的认出这种文件格式方面的区别,并做出相应处理。
fileformats选项,用于处理文件格式问题。以下命令,告诉vim将UNIX文件格式做为第一选择,而将MS-DOS的文件格式做为第二选择: set fileformats=unix,dos
检测到的文件格式会被存放在fileformat选项中,我们可以用以下命令来查询: set fileformat?
我们还可以利用fileformat选项,来转换种文件格式。例如,使用以下命令将名为readme.txt的MS-DOS格式的文件,转换为UNIX格式的文件。 set fileformat=unix
在默认情况下,Vim认为文件是由行组成的,并且文件最后一行是以为结束符的。如果你想设置文件以结束符结尾,则可以用以下命令: set endofline
如果你想设置文件不以EOL结束符来结尾,则可以使用以下命令: set noendofline
显示换行
如果你使用以下命令进入<list mode>
,那么就可以清楚的看到以“$”表示的换行符和以“^I”表示的制表符。 set list
vi下显示回车换行符等特殊符号
你可以使用以下命令退出<list mode>
: set nolist
删除换行
可以用以下命令删除换行符: %s/\n//g
可以用以下命令删除DOS文件中的回车符“^M”: %s/\r//g
可以用以下命令转换DOS回车符“^M”为真正的换行符: %s/\r/\r/g
可以用以下命令删除行尾的空格以及DOS回车符。它没有使用“/”字符作为替换命令各个参数间的分隔符,而是使用了“#”字符。命令还使用了“\?”正则表达式,用来匹配它前面出现的字符0次或1次。 %s#\s*\r\?$##
可以用以下命令删除三行空行: %s/^\n\{3}//
可以用以下命令将连续的两个空行替换成一个空行:
:%s/\n\n/\r/g
自动换行
在默认情况下,Vim是不会自动换行的,也就是说我们需要自己决定回车的位置。但是我们也可以通过指定textwidth选项,让Vim自动在指定位置换行。例如,使用以下命令指定在30列时自动换行。由于在遇到空格时才会自动换行,所以换行的精确位置可能会小于你指定的列宽。 set textwidth=29
而以下命令告诉Vim从右面算起当达到10个字符的空格时要换行: set wrapmargin=10
在指定了文本宽度的情况下,当我们将一行中的前几个文字删掉时,Vim并不会将后面行中的文本移动上来,而是形成了一些长短不一的段落,这样看起来不是很好。可以有几种方法处理这个问题:
一种方法是,在可视化模式下选中这些文本,然后用gp命令来格式化选中的段落。
另一种方法是,使用gqmotion
命令来完成格式。例如要格式化5行,就可以用命令gq4j
。
这个命令告诉Vim要格式化本行,同时要格式化下面的4行,这样就达到了格式化5行的目的。如果要格式化整个段落,可以将光标放在段落的第一行上,然后执行命令gq}
。而使用命令gqip
可以格式化当前段落,而且并不必要将光标放在段落的第一行上。
如果要想格式化一行,可以使用命令gqgq
,也可以简记为gqq
。
注意:选项textwidth
优先于wrapmargin
。如果要使wrapmargin
选项生效,必须将textwidth
设置为0(这也是默认值)。
合并行
命令J使两行合并为一行,同时用空格分隔这两行。
通过设置joinspace选项,可以控制合并两行时的分隔符(如果一行是以标点符号来结尾)。如果设置set nojoinspaces
,用J命令合并两行时会用一个空格来分隔;如果设置set joinspaces
,用J命令合并两行时会用两个空格来分隔。如果不希望用空格来分隔合并的行,可以使用gJ命令。
我们也可以使用:join命令,将几行合并为一行并使用空格来分隔各行。如果不希望加入空格,那么可以使用:join!命令。
命令小结
set fileformat 设置文件格式set endofline 设置文件结束符set noendofline 取消文件结束符set list 进入List Modeset nolist 退出List Mode%s/\n//g 删除换行符set textwidth 设置行宽set textwidth 设置行边距join 合并多行J 合并两行
转载地址:http://blog.sina.com.cn/s/blog_4c76784c0100uaf9.html
- vi下显示回车换行符等特殊符号
- vi下显示和处理回车换行符等特殊符号
- vi下显示回车换行符等特殊符号
- vi下显示回车换行符等特殊符号
- vi下显示回车换行符等特殊符号
- vi下显示回车换行符等特殊符号
- vi显示回车换行等特殊字符
- 特殊符号回车换行
- 替换SQL字段中的换行符,回车符,空格等特殊符号
- Notepad++支持显示回车符,换行符,TAB键,行首,行尾等特殊字符
- php 匹配/r/n 回车换行特殊符号
- eclipse显示换行符等
- Java 去掉字符串中的换行符回车符等
- JAVA中去掉空格换行符回车等
- java过滤字符串中的空格、回车、换行符、制表符等
- Eclipse 显示回车、换行字符
- Flex 最全的换行 制表符 回车 空格 特殊符号
- Flex 最全的换行 制表符 回车 空格 特殊符号
- vi下显示回车换行符等特殊符号
- JS模块化工具requirejs(一)
- java学习笔记之多线程的锁接口Lock
- 去除字符串中重复字符
- popd和pushd使用
- vi下显示回车换行符等特殊符号
- Node.js入门到精通(3)使用supervisor工具
- CDH5.9.0在线安装及问题汇总
- PYTHON FABRIC实现远程操作和部署
- POWER PATH调试记录
- 求最长回文子串(不足:时间复杂度较高)
- 指针数组和数组指针的区别
- 关于如何在java中实现中文首字母索引排序的问题 2016-08-25 15:14 86人阅读 评论(0) 收藏 举报 分类: Java(19) 版权声明:本文为博主原创文章,未经博主允许不得转载
- 求两个数的最大公约数