vi编辑命令

作者: 小疯子 分类: linux 发布时间: 2018-08-03 12:14
一. 打开文件,保存关闭文件
esc
vi filename     //打开filename文件
:w       //保存文件
:wq         //退出编辑器,且保存文件
:q!        //退出编辑器,且不保存
二. 插入文本或行
esc之后不可编辑,想要继续编辑,必须按插入文本等y一下操作
 a      //在当前光标位置的右边添加文本
i       //在当前光标位置的左边添加文本
A     //在当前行的末尾位置添加文本
I      //在当前行的开始处添加文本(非空字符的行首)
O     //在当前行的上面新建一行
o     //在当前行的下面新建一行
R    //替换(覆盖)当前光标位置及后面的若干文本
J    //合并光标所在行及下一行为一行(依然在命令模式)

三. 移动光标
1、使用上下左右方向键
2、命令模式下:h   向左、j   向下 、k   向上、l  向右。
空格键 向右、Backspace  向左、Enter  移动到下一行首、-  移动到上一行首。
H 屏幕上的第一行 nH 移动到当前屏幕首部下的n行
M 屏幕的中间
L 屏幕中的最后一行 nL 移动到当前屏幕尾部上的n行
b 上一个单词的开头---begin
B 上一个单词的开头,忽略标点符号
e 单词的末尾 ---end,下一个单词的末尾,所以w的用法记不住就算了
E 单词的末尾,忽略标点符号
w 下一个单词的开头
W 下一个单词的开头,忽略标点符号
( 移动到当前句子的首部,连续按就是接着找上个句子的首部,以.句号为判断符
) 移动到下个句子的首部,连续按就是往下找下个句子的首部
{ 移到当前段的首部
} 移到下一段的首部,连续按就是下下段,同()
0 移到当前行的首部
$ 移到当前行的尾部
^ 当前行第一个非空白字符的地方
n| 移动到当前行的字符n的地方
四. 删除,恢复字符或行
x         //删除当前字符
nx         //删除从光标开始的n个字符,往前数的n个字符
dd      //删除当前行
ndd   //向下删除当前行在内的n行
u       //撤销上一步操作
U      //撤销对当前行的所有操作
五. 搜索
/vpser     //向光标下搜索vpser字符串
/ 重复上次搜索的内容向下搜索一次
?vpser     //向光标上搜索vpser字符串
n           //向下搜索前一个搜素动作
N         //向上搜索前一个搜索动作
六. 跳至指定行
n+        //向下跳n行
n-         //向上跳n行
nG        //跳到行号为n的行
G           //跳至文件的底部
七. 设置行号
:set  nu     //显示行号
:set nonu    //取消显示行号
八. 复制、粘贴
yy    //将当前行复制到缓存区,也可以用 "ayy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
nyy   //将当前行向下n行复制到缓冲区,也可以用 "anyy 复制,"a 为缓冲区,a也可以替换为a到z的任意字母,可以完成多个复制任务。
yw    //复制从光标开始到词尾的字符。
nyw   //复制从光标开始的n个单词。
y^      //复制从光标到行首的内容。
y$      //复制从光标到行尾的内容。
p        //粘贴剪切板里的内容在光标后,如果使用了前面的自定义缓冲区,建议使用"ap 进行粘贴。
P        //粘贴剪切板里的内容在光标前,如果使用了前面的自定义缓冲区,建议使用"aP 进行粘贴
九. 替换
:s/old/new      //用new替换行中首次出现的old
:s/old/new/g         //用new替换行中所有的old
:n,m s/old/new/g     //用new替换从n到m行里所有的old
:%s/old/new/g      //用new替换当前文件里所有的old
十. 编辑其他文件
:e otherfilename    //编辑文件名为otherfilename的文件。
十一. 修改文件格式
:set fileformat=unix   //将文件修改为unix格式,如win下面的文本文件在linux下会出现^M。
十二. 修改缩进(我暂时没有试验出来,不知道有用没)
:set autoindent   (或:set ai)       //打开缩进
:set noautoindent (或:set noai)       //关闭自动缩进
:set shiftwidth=4  (或:set sw=4)       //把每级缩进设置为四个空格
n>>                    //让从光标当前行以下的n行增加一级缩进
n<<                    //让从光标当前行以下的n行减少一级缩进
十三.没有权限:
chmod +x 文件名

0
3条评论