Vi基本命令
*i ---- 在当前光标的的所在位置,插入随后输入的文本,光标后的文本相应向右移动
*I ---- 在光标所在行的行首插入随后输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首再执行i命令
*a --- 在当前光标所在位置之后,插入随后输入的文本
*A --- 在光标所在行的行尾添加随后输入的文本,相当于光标移动到行尾再执行a命令
*o --- 在光标所在行的下面插入新的一行,光标停在空行的行首,等待输入文本
*O --- 在光标所在行的上面插入新的一行,光标停在空行的行首,等待输入文本
*h,j,k,l h:向左 j:向下 k:向上 l:向右
*w --- 以单词为单位移动
* $ --- 将光标移动到行尾, 0:将光标移动到行尾 n$:将光标移动到当前光标所在行的之后n行的行尾
*fa --- 将光标移动到该行的字符a处
*% --- 查找匹配符号的命令
*nG ---- 将光标快速的定位到指定的行处
*在vi的一般模式中输入"/要查找的字符串",再按回车键,那么就可以从当前的游标处开始向后查找指定的字符串,如果是向前查找,那么只需要输入“?”,回车即可。
/root 在文件中向后查找root字符串
? root 在文件中向前查找字符串
/^root 要查找一个以root为行首的行
/root$ 要查找一个以root为行尾的行
使用vi进行替换:
命令格式为: :替换起始处,替换结束处 s/要被替换的字符串/替换的字符串/g
如果不加g的话,那么只替换每行第一个找到的字符串
如命令: :1,$ s/:/,/g 表示将文件中的所有的“:”改为“,”
使用vi进行删除、粘贴和复制
d: 命令模式下的该命令可以删除光标以后的单个字符
dd:命令模式下的该命令可以删除整行
10dd:连续删掉10行
yy:复制一行,并用p来粘贴复制的内容
u:可以通过该命令来撤销刚才执行的命令,如果撤销过多的话,可以通过使用“Ctrl + r”来重新执行刚才的操作
vi保存退出命令
w:保存不退出
q:不保存退出
!:强制性操作
wq:保存并且退出
w!:强制保存
q!:强制退出
在命令模式下:
输入:set nu 可显示每一行的行号,如果想要去掉行号的话输入:set nonu即可
多窗口编辑
在编辑一个文件file1时,需要参考file2文件,此时可以先使用vi打开第一个文件,接着在命令模式中输入:sp /file2, 然后按回车键,此时如果想回到上一个编辑
窗口,可以先"ctrl + w"键,在按"k"键使游标来到上面窗口中,若想编辑下一个窗口,可以先“ctrl + w”键,再按"j"键使游标来到上面窗口中
如果想将其中一个文件的内容全部复制到另一个文件中,则可以在命令模式中输入":r 被复制的文件名", 这样就实现了文件内容的全部复制
区域复制:先使用vi打开file文件,将游标移动到需要复制的第一行处,此时处于一般模式下,然后按下"ctrl + v"键,这样底部状态栏出现"VIRTUAL BLOCK", 这时
就可以使用上下左右方向键进行区域的选取了,当全部选完后,按下“Y”键,然后将游标移动到目标位置处,按下p键即可完成区域复制。