vi常用命令

北战南征 提交于 2020-02-22 15:11:12

统计单词

:%s/xxxx/&/gn

 

查找

/xxxx 或  ?xxx  / 表示向下查找, ? 表示向上查找.其中xxx可以是正规表达式,关于正规式就不多说了.一般来说是区分大小写的, 要想不区分大小写, 那得先输入:set ignorecase

* 或 #            当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的下(上)一个单词. 同样, 再输入 n 查找下一个匹配处, 输入 N 反方向查找.

%                 查找与光标所在处相匹配的反括号(在括号间跳转), 包括 () [] {}

 

光标移动

 

w(e)       移动光标到下一个单词.
b            移动光标到上一个单词.’

^            移动光标到本行最开头的字符处.
$             移动光标到本行结尾处.
gg           移动光标到文档首行.
G            移动光标到文档尾行.
ctrl + f     page down.
ctrl + b         page up.

'  '           同时按2次’,移动光标到上一个标记处, 比如用 gd, * 等查找到某个单词后, 该命令则回到上次停留的位置.

'  .           先后输入 ‘ .   此命令移动光标到上一次的修改行.

` .           先后输入 `  .   此命令移动光标到上一次的修改点.

 

拷贝删除

yw  表示拷贝从当前光标到光标所在单词结尾的内容.
dw  表示删除从当前光标到光标所在单词结尾的内容.
y0  表示拷贝从当前光标到光标所在行首的内容.
d0  表示删除从当前光标到光标所在行首的内容.
y$  表示拷贝从当前光标到光标所在行尾的内容.
d$  表示删除从当前光标到光标所在行尾的内容.
yfa  表示拷贝从当前光标到光标后面的第一个a字符之间的内容.
dfa  表示删除从当前光标到光标后面的第一个a字符之间的内容.

特殊地:
yy  表示拷贝光标所在行.
dd  表示删除光标所在行.
D  表示删除从当前光标到光标所在行尾的内容.

u   撤销上一次操作

 

替换

:s/aa/bb/g     将光标所在行出现的所有包含 aa 的字符串中的 aa 替换为 bb

:%s/aa/bb/g  将文档中出现的所有包含 aa 的字符串中的 aa 替换为 bb

:12,23s/aa/bb/g 将从12行到23行中出现的所有包含 aa 的字符串中的 aa 替换为 bb

:12,23s/^/#/  将从12行到23行的行首加入 # 字符
:%s= *$==  将所有行尾多余的空格删除
:g/^\s*$/d  将所有不包含字符(空格也不包含)的空行删除.

 

 

set命令

:set encoding=utf-8 #设置编码格式

:set ff=unix   #将文件格式转为unix格式  ,换行为\n

:set ff=dos   #将文件格式转为dos格式,换行为\r\n

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!