linux下vi使用

vi下有三种模式
一般模式:
以vi打开一个文件就进入此模式了(默认模式),在此模式下可以上下左右移动光标,可以删除,复制,粘贴处理文本
编辑模式:
在一般模式下按【i,a,o,I,A,O】进入编辑模式,在此模式下可以对文本进行编辑,按ESC退出编辑模式,进入一般模式。
命令行模式:
在一般模式下按【:/?】会将光标移动到最底下那一行,此时进入命令行模式,可以进行查找、替换、读取、保存、退出、显示行号等操作

一般模式的可用按钮说明:
移动光标
【h、j、k、l】可分别控制光标的左、上、下、右移动
【ctrl+b】屏幕向前移动一页
【ctrl+f】屏幕向后移动一页
【n】光标向右移动n个字符
【home】光标移动到所在行最前面
【end】光标移动到所在行的最后面
【w】光标跳到下个字的开头
【e】光标跳到下格子的末尾
【H】光标移动到所在屏幕的最上方那一行的第一个字符
【M】光标移动到所在屏幕的最中间的一行的第一个字符
【L】光标移动到所在屏幕的最下方的那一行的第一个字符
【G】移动到文件的最后一行
【nG】移动到文件的第几行(可配合:setnu)
【gg】移动到文件的第一行(相当于【1G】)
【n】光标向下移动n行
【{】按段上移
【}】按段下移
查找与替换
【/word】从光标处向下寻找名为word的字符串
【?word】从光标处向上寻找名为word的字符串
【n】重复前一个查找动作
【N】与n相反,反向重复前一个查找动作(之前为/word向后查找,输入N则是向前查找)
【:n1,n2s/word1/word2/g】n1与n2为数字,在n1与n2行之前查找word1字符串,并将该字符串替换为word2
【:1,$s/word1/word2/g】在第一行到最后一行之间查找word1字符串,并将该字符串替换为word2
【:1,$s/word1/word2/gc】在第一行到最后一行之间查找word1字符串,并将该字符串替换为word2,且在替换前提示用户是否确认替换

删除复制与粘贴:
【x】向后删除一个字符串
【X】向前删除一个字符串
【nx】向后删除n个字符串
【nX】向前删除n个字符串
【dd】删除光标所在行
【ndd】删除当前行开始向下n行
【d1G】删除光标所在行到第一行的所有数据
【dG】删除光标所在行到最后一行的所有数据
【d$】删除光标所在所,到该行的最后一个字符
【d0】删除光标所在处,到该行的最前一个字符
【yy】复制光标所在的那一行
【nyy】复制光标所在的向下n行
【y1G】复制光标所在行到第一行的所有数据
【yG】复制光标所在行到最后一行的所有数据
【y0】复制光标所在的前一个字符到该行首的所有数据
【y$】复制光标所在字符到该行行尾的所有数据
【p】将已复制的数据在光标的下一行粘贴上
【P】将已复制的数据在光标的上一行粘贴
【u】撤销,恢复上一个操作
【ctrl+r】 重做上一个操作
【.】重复前一个操作

一般模式切换编辑模式可用命令:
【i】从当前光标所在处插入
【I】从当前光标所在行的第一个非空格字符前插入
【a】从当前光标所在的下一个字符插入
【A】从当前光标所在行的最后一个字符插入
【o】从当前光标所在行的下面插入新的一行
【O】从当前光标所在行的上面插入新的一行
【r】会取代光标所在位置的字符一次
【R】会一直取代光标所在的文字,直到按下ESC为止
编辑模式下
【ctrl+p】或者【ctrl+n】自动补全

一般模式切换至命令行模式可用按钮说明:
【:w】保存编辑的内容
【:w!】强制写入该文件
【:q】离开vi
【:q!】不保存强制退出
【:wq】保存并退出,等价于【:x】、【shift + zz】
【:w filename】将编辑的数据保存成为另一个文件
【:r filename】在编辑的数据中读入另一个数据文件。即将filename这个文件的内容加到光标所在行的后面
【:n1,n2 w filename】将n1到n2的内容保存成filename文件
【:! command】暂时离开vi到命令行模式下执行command的显示结果
【: set nu】显示行号
【: set nonu】与set nu相反,取消行号

块选择:
【v】选择字符,会将光标经过的地方反白选择
【V】选择行,会将光标经过的行反白选择
【y】将反白的地方复制
【d】将反白的地方删除
缩进:
一般模式下可以使用<<、>>来缩进行,默认缩进8个空格,可以使用【: set shiftwidth=4】设置每次缩进4个空格

多窗口功能:
【:sp filename】开启一个新窗口,如果有加filename表示在新窗口开启一个
新文件,否则表示两个窗口通为一个文件,同步显示
【ctrl+w+ j】将光标移动至下面的窗口。(按住ctrl不放再按w,松开ctrl和w,按下j)
【ctrl+w+k】将光标移动至上面的窗口

vi +443 test.txt 进入到test.txt的443行行首

你可能感兴趣的:(linux下vi使用)