vi编辑器常用命令

来源:互联网 发布:android源码手册apk 编辑:程序博客网 时间:2024/05/16 09:34

VI编辑器常用命令

一:code 编写

1)显示、隐藏文件的行数

:set nu                        显示文件行号

:set nonu                   不显示文件行号

2)光标移动

上:k nk:向上移动n行
下:j nj:向下移动n行
左:h nh:向左移动n列
右:l nl:向右移动n列

 移动到文件的首行:       gg

移动到文件的末尾: G

移动到第n行上: nG

:n移动到第n行上

移动到行首: ^ 或者 0(数字键)

移动到行尾: $

 w:光标以单词向后移动 nw:光标向后移动n个单词光标到单词的第一个字母上

b:与w相反
e: 光标以单词向后移动 ne:光标向前移动n个单词光标到单词的最后一个字母上
ge:与e相反
        


%:移动到与制匹配的括号上去(),{},[],<>等

向前翻页: CTRL + b

向后翻页 : CTRL + f



3)复制操作

yy:         复制当前行

nyy:         复制当前行开始的n行

yny:         复制当前行开始的n行

任意复制光标选中的一段

光标移动到想要复制地方,按v,按h,j,k,l 进行上,下,左,右移动选中文字块,按y复制,再移动要粘贴的地方,按p粘贴。

:n1,n2 co     n3    拷贝第n1行开始,到n2行结束的文字块,粘贴到第n3+1行开始的地方。

:n1,n2 mo   n3   剪切第n1行开始,到n2行结束的文字块,粘贴到第n3+1行开始的地方

        

在不同文件之间复制文字块

3.1)

:sp   test.c    打开另外一个你要编辑的文件

or

:vsp   test.c    打开另外一个你要编辑的文件

3.2)

在命令模式化下拷贝文字块

3.3) CTRL+ ww 切换窗口,按p粘贴到你要paste的地方。


yw:将光标所在开始单词拷贝入剪贴板,注意如果光标停留在单词的中间,则只会拷贝单词的后半部分

y^  :  拷贝光标所在位置到当前行首到剪贴板

y$ :   拷贝光标所在位置到当前行末尾到剪贴板

ygg: 拷贝光标所在行到第一行的内容到剪贴板

yG  :   拷贝光标所在行到最后一行的内容到剪贴板


4)删除(剪切)操作,删除其实就是剪切

dd: 删除当前行

ndd/dnd: 删除n行

d^:   删除光标所在位置到行首。

d$:  删除光标所在位置到行尾。

dgg: 删除当前行到第一行

dG: 删除当前行到最后一行。

ddp:上下两行交换

dw/ndw: 删除一个单词,n个单词


d%: 删除 ( ),{ },[ ],< > 匹配的内容段。

:n1,n2 d          删除从n1行开始到n2行节省的内容

x: 删除当前字符,相当于delete键。

d回车: 删除当前行开始的2行


拷贝或者移动文字块

光标移到起始行,输入ma;光标移到结束行,输入mb;光标移到粘贴行,输入mc;

然后 :'a,'b co 'c,把 co 改成 m0 就成剪切了


V :选中当前行,上下移动,可以选中多行, 再按d就删除了选中的内容了。

J:把下一行合并到当前行尾

5) 文件保存

:q 不保存退出
:q! 不保存强制性退出
:w 保存编辑
:w file1   存入文件file1中
:w! filename 强制性存入文件filename中
:wq 
/ :x / ZZ 保存退出
:wq!  强制保存然后退出




6)其他常用命令:

进入编辑模式

按i,a,o 任意一键都可进入编辑模式


退出编辑模式

ESC键 或者 CTRL + C

. 重复当前的命令


u 撤销命令

CTRL + R 恢复撤销命令


7)查询命令


设置高亮:

:set hlsearch              高亮搜索的单词

:set nohlsearch         不高亮搜索的单词

:nohlsearch                关闭当前高亮搜索的单词

#  , *  : 高亮search所在位置的所有单词。

 n,N: 光标跳到下一个或上个search的单词。

/string ,?string   搜索string

:+上下箭头 :命令的历史

/+上下箭头 搜索历史

/\<word\> 只匹配word,不匹配wordstr等等,/string, ?string 才匹配wordstring

8)查找替换

:%s/str1/str2/g 将文中的所有str1都替换为str2

:%s/str1/str2/gc 将文中的所有str1都替换为str2,每个替换之前进行询问。

:s/str1/str2/ 替换当前行的第一个str1为str2

:s/str1/str2/g 替换当前行所有的str1为str2

:n,$ s/str1/str2 替换从第n行开始到最后一行结束的每一行的第一个str1为str2

:n,$s/str1/str2替换从第n行开始到最后一行结束的每一行的所有的str1为str2

如果n为. 则代表从当前行开始











原创粉丝点击