前言
学习Linux时对Vim比较感兴趣想深入了解一下,于是便有了以下的内容
Vim编辑器
前言
相信不少小伙伴在写SHELL脚本或者编辑一些文件的时候,用到的vim编辑器还蛮多的,VIM编辑器用好了真的很方便用不好真的闹心!
vi基础操作
概念
vi的三种模式
1.命令模式
2.编辑模式
3.末行模式(命令模式下,按“:”即可进入末行模式)
默认情况下,VI编辑器是命令模式,需要在里面写东西的时候需要进入编辑模式
命令模式到编辑模式:插入命令i,附加命令a,打开命令o,修改命令c,取代命令r,替换命令s
编辑模式到命令模式:Esc
退出流程:
1.进入命令模式
2.进入末行模式
3.在末行模式输入以下内容,对应相应操作
1 2 3 4 5 6 7 8 9 10
| 【:w】 保存文件 【:w!】 若文件为只读,强制保存文件 【:q】 离开vi 【:q!】 不保存强制离开vi 【:wq】 保存后离开 【:wq!】 强制保存后离开 【:! command】 暂时离开vi到命令行下执行一个命令后的显示结果 【:set nu】 显示行号 【:set nonu】 取消显示行号 【:w newfile】 另存为
|
插入命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| i:插入光标前一个字符 I:插入行首 a:插入光标后一个字符 A:插入行末 o:向下新开一行,插入行首 O:向上新开一行,插入行首 移动光标 h:左移 j:下移 k:上移 l:右移 M:光标移动中间行 L:光标移动到屏幕最后一行行首 G:移动到指定行,行号 -G {:按段移动,上移 }:按段移动,下移 Ctr-d:向下翻半屏 Ctr-u:向上翻半屏 gg:光标移动文件开头 G:光标移动文件末尾
|
删除命令
1 2 3
| x:删除光标后一个字符,相当于del X:删除光标前一个字符,相当于Backspace dd:删除光标所在行,n dd删除指定的行数D:删除光标后本行所有的内容,包括光标所在字符
|
撤销命令
重复命令
1 2 3 4 5 6 7 8 9 10 11 12 13
| .:重复上一次操作的命令 文本行移动 >>:文本行右移 <<:文本行左移 复制粘贴 yy:复制当前行,n yy 复制n行 p:在光标所在位置向下新开辟一行,粘贴 可视模式 v:按字符移动,选中文本 V:按行移动,选中文本可视模式可以配合d,y,>>,<< 实现对文本块的删除,复制,左右移动 替换 r:替换当前字符 R:替换当前行光标后的字符
|
区域选择 替换 搜索
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| /string 向光标之下寻找一个名称为string字符串
?string 向光标之上寻找一个名称为string字符串
n 正向查找,搜索出的string,可以理解成next
N 反向查找,搜索出的string,可以理解成Not next
n是从上到下,N是从下到上
v和V主要的是进行行选择,而Ctrl+v是进行的列选择,从灵活性上来说,ctrl+v更加的灵活一点
:n1,n2s/string1/string2/g 这里的n1是查找的开始行数,n2是查找结束的行数。【:2,7s/ddd/fff/g】在第2行,第7行之间,将ddd替换成fff
:1,$s/string1/string2/g 从第一行到最后一行寻找 string1 字符串,并将该字符串替换为 string2 !(常用)
:1,$s/string1/string2/gc 从第一行到最后一行寻找 string1 字符串,并将该字符串替换为 string2 !且在替换前显示提示字符给用户确认 (confirm) 是否需要替换!(常用)
:s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sky
:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky :n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky :%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky
:s :%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1/
不加 g,表示只对搜索字符串的首次出现进行替换;
g放在命令末尾,表示对搜索字符串的每次出现进行替换;
g 放在命令开头,表示对正文中所有包含搜索字符串的行进行替换操作
|
补充
以下均在命令模式下
跳到首行和尾行
shift + g 跳到尾行
gg 跳到首行
在当前行下一行插入
按o
删除所有内容
ggdG
显示行号
:set nu
后记
无
Valyn
生于忧患 死于安乐
此文章版权归Valyn所有,如有转载,请注明来自原作者