vim-技巧
反转行序
global
与move
命令结合使用,将所有行移到第一行的前面,实现了反转行序的排列
1 | :global/^/m 0 |
^
匹配一行的开头,所有即使是空行也能匹配到。move
将匹配到的行总是移动到第0行之后(即为第一行),一行一行的往下执行,即实现了反转的效果
统计字数
1.先按g,再按ctrl+g
2.使用命令读取
1 | :r !wc % |
%
表示编辑的文件本身
使用帮助手册
在关键字上按下shift+k
消除多余空格
消除行尾的空格
1 | :%s+\s\+$++ |
\s
表示空白字符,+
表示重复1到正无穷次,$
表示行尾。整个表示行尾的空白字符。然后使用了替换,将这些空白替换为无。
消除空行
使用了global
与delete
命令
1 | :g/^$/d |
^$
匹配一行的开头和结尾,一行只有开头和结尾,中间没有其他的字符,那么匹配到的就是空行了,然后用delete
将其删除
vim搭配grep打开包括某些字符的文件
由于grep
的参数-l
返回的是包含查找字符的文件名。所以可以和vim搭配起来使用
1 | vim `grep -l -w -i "print" ./*.py` |
-w
匹配整个词
-i
忽略大小写
-l
返回查找到的文件名
./*.py
查找当前目录下的所有py文件
回到上次编辑的位置
ctrl+o+o
文本对齐的格式化
1.范围内居中,并不是全文的左右居中,只在一个指定宽度
1 | :{range}center [width] #width指定在某个范围内居中 |
2.右对齐,同样是在某个宽度
1 | :{range}right width |
3.左对齐,表示左边留白的宽度。不指定为0,不留空白
1 | :{range}left [margin] |
1 | eg: |
4.没有左右对齐,可以借助shell命令实现
1 | :%!fmt |
取消折行
将一行的内容只显示在一行中,不折行显示
1 | :set nowrap |
1 | zh 向右滚动 |
设置折行
1 | :set wrap |
设置折行之后保证最后的单词显示完整,不被截断显示
1 | :set linebreak |
page:258