1、移动光标
H 移到屏幕的左上角
M 移到屏幕的中间行开头
L 移到屏幕的最后一行
[ 移到文件开始位置 (双击)
] 移到文件结束位置(双击)
:n 移到文件的第n行
Ctrl + b 屏幕上卷一个菜单
Ctrl + F 屏幕下卷一个菜单
h 将光标左移一格
l 将光标右移一格
j 将光标下移一格
k 将光标上移一格
w 将光标移到下一个小字的前面
b 将光标移到前一个小字的前面
0 把光标移到当前行的第一个字符处
$ 把光标移到当前行的最后一个字符处
2、修改内容
nx 删除由光标位置起始的n个字符(含光标位置,按一个x表示删
除光标所在的字符)
ndw 删除光标位置其实的n个字符组(dw删除光标所在的单词)
d0 将行的开始到光标位置的字符全部删除
d$ 或D 将光标位置起始到行尾的字符全部删除
ndd 将光标位置起始的n行(整行)删除(dd表示删除光标所在行)
:start,endd 删除文件的第start到end行
rc 把光符所在字符替换成c
R 覆盖本行内容
u 恢复上一次的修改
cw 改变光标所在单词
C 改变一行光标位置以后的部分
cc或S 修改一整行
3、寻找替换
/pattern 向后寻找指定的pattern ,若遇到文件尾,则从头再开始。
?pattern 向前寻找指定的pattern ,若遇到文件头,则从尾再开始。
n 在上次指定的方向上,再次执行
N 在上次指定的方向的相反方向上,再次执行上次定义的查找
:%s/old/new/g 查找所有old并替换为new
:start,ends/old/new 替换指定区域
4、编辑切换
a 在光标之后开始输入文本
A 在行尾开始输入文本
I 在光标之前开始输入文本
I 在行首第一个非空白字符前输入文本
o 在光标所在行后插入一空行
O 在光标所在行前插入一空行
5、复制及移动文件
yy 把当前行放入缓冲区
yw 把光标所在的单词放入缓冲区
p 将缓冲区内容取到光标所在行的下面一行
P 将缓冲区内容取到光标所在行的上面一行
:first,last co dest 将first 到last行的数据复制到目标行(dest)下面
:Start,end m dest 将start 到 end行的数据移动到目标行(dest)下
:r filename 将指定文件的内容读入光标所在行下
6、其它
vi 进入vi而不读入任何文件
vi filename 进入vi并读入指定名称的文件(新、旧文件均可)。
vi +n filename 进入vi并且由文件的第几行开始。
vi + filename 进入vi并且由文件的最后一行开始
vi filename(s) 进入vi并且将各指定文件列入名单内,第一个文件先读入
u 取消前一指令
Ctrl + l 刷新屏幕显示
:set nu 显示文件的行号,但不会存文件
:set nonu 解除行号显示
e! 重新装入当前文件,若当前文件有改动,则丢弃以前的改动
:sh 启动sh ,从sh中返回可用exit或ctrl+d
:! Command 执行命令command
!! 重新执行上次的:! Command子命令
7、增补
(1)删除多余的回车符:
※vi中执行:g/^Ms///g,其中^M为ctrl+v和ctrl+m组和输入
※执行dos2unix filename
※执行sed 's/^M//' test.sh > back.sh
H 移到屏幕的左上角
M 移到屏幕的中间行开头
L 移到屏幕的最后一行
[ 移到文件开始位置 (双击)
] 移到文件结束位置(双击)
:n 移到文件的第n行
Ctrl + b 屏幕上卷一个菜单
Ctrl + F 屏幕下卷一个菜单
h 将光标左移一格
l 将光标右移一格
j 将光标下移一格
k 将光标上移一格
w 将光标移到下一个小字的前面
b 将光标移到前一个小字的前面
0 把光标移到当前行的第一个字符处
$ 把光标移到当前行的最后一个字符处
2、修改内容
nx 删除由光标位置起始的n个字符(含光标位置,按一个x表示删
除光标所在的字符)
ndw 删除光标位置其实的n个字符组(dw删除光标所在的单词)
d0 将行的开始到光标位置的字符全部删除
d$ 或D 将光标位置起始到行尾的字符全部删除
ndd 将光标位置起始的n行(整行)删除(dd表示删除光标所在行)
:start,endd 删除文件的第start到end行
rc 把光符所在字符替换成c
R 覆盖本行内容
u 恢复上一次的修改
cw 改变光标所在单词
C 改变一行光标位置以后的部分
cc或S 修改一整行
3、寻找替换
/pattern 向后寻找指定的pattern ,若遇到文件尾,则从头再开始。
?pattern 向前寻找指定的pattern ,若遇到文件头,则从尾再开始。
n 在上次指定的方向上,再次执行
N 在上次指定的方向的相反方向上,再次执行上次定义的查找
:%s/old/new/g 查找所有old并替换为new
:start,ends/old/new 替换指定区域
4、编辑切换
a 在光标之后开始输入文本
A 在行尾开始输入文本
I 在光标之前开始输入文本
I 在行首第一个非空白字符前输入文本
o 在光标所在行后插入一空行
O 在光标所在行前插入一空行
5、复制及移动文件
yy 把当前行放入缓冲区
yw 把光标所在的单词放入缓冲区
p 将缓冲区内容取到光标所在行的下面一行
P 将缓冲区内容取到光标所在行的上面一行
:first,last co dest 将first 到last行的数据复制到目标行(dest)下面
:Start,end m dest 将start 到 end行的数据移动到目标行(dest)下
:r filename 将指定文件的内容读入光标所在行下
6、其它
vi 进入vi而不读入任何文件
vi filename 进入vi并读入指定名称的文件(新、旧文件均可)。
vi +n filename 进入vi并且由文件的第几行开始。
vi + filename 进入vi并且由文件的最后一行开始
vi filename(s) 进入vi并且将各指定文件列入名单内,第一个文件先读入
u 取消前一指令
Ctrl + l 刷新屏幕显示
:set nu 显示文件的行号,但不会存文件
:set nonu 解除行号显示
e! 重新装入当前文件,若当前文件有改动,则丢弃以前的改动
:sh 启动sh ,从sh中返回可用exit或ctrl+d
:! Command 执行命令command
!! 重新执行上次的:! Command子命令
7、增补
(1)删除多余的回车符:
※vi中执行:g/^Ms///g,其中^M为ctrl+v和ctrl+m组和输入
※执行dos2unix filename
※执行sed 's/^M//' test.sh > back.sh