Linux学习日记 6.24(认识Vi)

mooc链接

初识Vi

Vi是Linux下的文本编辑器

三种基本模式
一般模式:动作指令,如移动光标、删除、复制、粘贴等
输入模式:输入字符
命令行模式:命令,如打开、保存、替换等

按下i键,左下角出现”插入“,进入输入模式。
按下esc,编辑器回到一般模式。

移动光标:h左 j下 k上 l右
Linux学习日记 6.24(认识Vi)_第1张图片
x:删除
dd:删除当前行(删除后下面行会移上来填补空缺)
gg:移动到第一行开头
G:移动到最后一行开头
H:移动到屏幕最上面一行
M:移动到屏幕中央哪一行
L: 移动到屏幕最下面一行
w:向右移动一个单词
b:向左移动一个单词
0:移动到当前行行首
$:移动到当前行行尾
J:删除当前行的换行符(将下一行移到本行)
u:撤销最近一次的编辑
:wq 将修改的文件写入硬盘退出(:进入命令模式,w保存文件,q退出)
:q! 放弃所有修改并退出(!强制修饰符 ,无需保存文件)
ZZ:修改过则保存并退出 ,未修改则直接退出

Vim小试牛刀

Linux学习日记 6.24(认识Vi)_第2张图片
1.

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全部保存,实际上只保存修改过的文件
:wqllqall和wll的组合命令

你可能感兴趣的:(Linux学习日记 6.24(认识Vi))