mooc链接
Vi是Linux下的文本编辑器
三种基本模式
一般模式:动作指令,如移动光标、删除、复制、粘贴等
输入模式:输入字符
命令行模式:命令,如打开、保存、替换等
按下i键,左下角出现”插入“,进入输入模式。
按下esc,编辑器回到一般模式。
移动光标:h左 j下 k上 l右
x:删除
dd:删除当前行(删除后下面行会移上来填补空缺)
gg:移动到第一行开头
G:移动到最后一行开头
H:移动到屏幕最上面一行
M:移动到屏幕中央哪一行
L: 移动到屏幕最下面一行
w:向右移动一个单词
b:向左移动一个单词
0:移动到当前行行首
$:移动到当前行行尾
J:删除当前行的换行符(将下一行移到本行)
u:撤销最近一次的编辑
:wq
将修改的文件写入硬盘退出(:进入命令模式,w保存文件,q退出)
:q!
放弃所有修改并退出(!强制修饰符 ,无需保存文件)
ZZ:修改过则保存并退出 ,未修改则直接退出
vim /var/log/messages //打开文件
:w ./messages.bak //另存为新文件
2.设置vim环境
//: set 环境设置名
//命令模式下的设置均为一次性的。
: set nu //设定行号
: set nowarp //禁止长行自动回绕
: set autowrite //设置自动保存
: set hlsearch //打开查找高亮
: set cursorline //突出当前行
58G //移到58行行首
30l //向右移动30个字符
8G //移动到8行行首
$ //移动到行尾
3b //向左移动3个单词
gg //移动到行首
/\/boot //查找"/boot"(用n和N向前向后遍历)
//第一个斜杠字符/,是vim中的查找命令符号。
//在/boot前有反斜杠\因为要查找的字符串中有特殊字符"/",因此用反斜杠表示后面的斜杠不是查找命令。
G$ //移动到末行行尾
?\<io\> //向上查找单词"io"
//?命令功能与/类似,但是反向查找。
//io前后有\<和\>因为查找的是"io"这个单词,若仅输入/io则可能查找到包含io的字符串。
:50,100s/man/MAN/gc //将50-100行的man用MAN替换并逐个询问
//"50,100"表示50-100行,可以用"1,$"表示所有行,省略,则范围默认当前行。
//"s"为替换命令(substitute)
//"/man/MAN"前一个为要被替换的字符串,后一个为替换的字符串
//"gc"标志位。
//g(global)表示对范围内所有匹配点起作用,若去掉则只对范围内第一个匹配的字符串生效。
//c(confirm)表示命令会在每次替换前向用户询问
替换询问回答:
y:是,执行替换
n:否,跳过
a:对剩下的匹配点全部执行替换,不需要再确认
q:退出,不再执行任何替换
l :替换完当前匹配点后退出
10G //移动到10行行首
20dd //向下删除20行
29G //移动到29行行首
15x //向右删除15个字符
删除命令键:
x:向右删除一个字符
X:向左删除一个字符
D:从当前光标位置开始,删除到行尾
dd:删除所在行
dG:从所在行删除到文件末
dgg:从所在行删除到文件首
200G //移动到200行行首
<ctrl>v //进入可视化模式
//选中要删除的区域
d //删除选中区域
vim可视模式及复制删除命令:
v:字符选择模式
V:行选择模式
ctrl+v:区块选择模式
y:复制选中区域
d:删除选中区域
uuu //撤销第7步和第6步的删除操作
<ctrl>v
<ctrl>v //恢复第6步的操作
u:撤销前一个动作
ctrl+v:重做上一个动作
:e!
将文件恢复到最原始状态
51G
10yy //向下复制10行
G
p //粘贴
61G
y20l //向右复制20个字符
G$
p
81G
20dd //dd删除同时也是剪切
G
p
101G
20x //?
G$
p
y:复制(常与光标移动连用如y10b,y20l,y$复制到行尾)
yy:复制当前行
nyy:向下复制n行
p:粘贴在光标之后
P:粘贴在光标之前
gg
//1.启动记录
qa //q操作录制,a存放寄存器
//2.完成要录制的操作
0i#
<esc>
$
a#
<esc>
j
//3.结束记录
q
//4.回放记录
99@a //回放寄存器a中的操作99次
:sp ./messages01.bak //(split)以分割窗口的方式打开新文件
<ctrl>wj //移动到原文件所处窗口
gg
100yy
<ctrl>wk //移动到新文件所处窗口
gg
p
:wqall //保存所有打开文件并退出
:sp
水平分割窗口
:vsp
垂直分割窗口
ctrl+w+方向键
:跳转文件窗口
:res+/-数字:
调整当前窗口高度
:vertical res+/-数字:
调整当前窗口
:only
关闭除当前窗口的所有窗口
:qall
全部退出
:wall
全部保存,实际上只保存修改过的文件
:wqll
qall和wll的组合命令