一、移动
左-下-上-右:h-j-k-l
移动到当间单词的开始:b(begin)
移动到当前单词的结束:e(end)
移动到下一个单词的开始:w
到行尾:$
到行首:0
到代码首(有缩进):^
到某行:nG
到文件开始:gg
到文件结尾:G
向下偏移n行:n+
向上偏移n行:n-
屏首: H
屏尾:L
屏中:M
向上滚动一屏: C-b
向下滚动一屏: C-f
二、删除
删除当前字符:x
删除前一个字符:X
删除一个单词/光标之后的单词剩余部分:dw
删除当前一个单词:daw(delete a word)
删除以当前字符开始的n个字: ndw
删除光标之后的该行部分:d$ 或 D (内容清除,但行不删除)
删除当前行,并马上进入insert状态:cc
删至行首: d0
删除一行: dd
删除2行: d回车
删除以当前行开始的n行: ndd
删除到文件结尾:dG
删除到文件开头:dgg
三、修改
上插一行:O
下插一行:o
前插入:i
后插入:a
复制当前行: yy (dd代表复制并删除)
使用“命名寄存器”进行的复制: "ayy (命名了一个a寄存器)
复制n行:nyy (ndd代表复制并删除)
粘贴: p(向下行插入并粘贴),P(向上行插入并粘贴)
使用“命名寄存器”进行的粘贴:”ap (使用了a寄存器进行粘贴)
把下面一行合并到本行后面: J
四、恢复及重复:
. 重复上一次操作
u 恢复上一次的操作
五、进入和退出Vi命令及工作区参数设定
vi filename 打开或新建文件,并将光标置于第一行首
vi +n filename 打开文件,并将光标置于第n行首
vi + filename 打开文件,并将光标置于最后一行首
vi +/pattern filename 打开文件,并将光标置于第一个与pattern匹配的串处
vi -r filename 在上次正用vi编辑时发生系统崩溃,恢复filename
vi filename ... filename 打开多个文件,依次进行编辑
ZZ 退出vi并保存
:q! 退出vi,不保存
:wq 退出vi并保存
set nu #行号
set tabstop=4 #一个tab为4个空格长度
set ai #设置自动缩进
syntax on #高亮
六、Vi中查找及替换命令
查找:
/pattern 从光标开始处向文件尾搜索pattern
?pattern 从光标开始处向文件首搜索pattern
n 在同一方向重复上一次搜索命令
N 在反方向上重复上一次搜索命令
查找并替换:
:s/p1/p2/g 将当前行中所有p1均用p2替代,若要每个替换都向用户询问则应该用gc选项
:n,ms/p1/p2/g 将第m至n行中所有p1替换成p2
:.,+2s/p1/p2/g 将当前行及后两行中所有p1替换成p2
:%s/p1/p2/g 将文件中所有p1均用p2替换(%s表示所有的行)
七、多窗口操作:
打开及新建文件::e 文件名
执行shell命令::! command
窗口水平分割 :split,
垂直分割::vsplit,
循环移动焦点:ctrl+ww,
上下左右移动焦点:ctrl+w+[hjkl]
网友评论