vim运维日常必备操作技巧(常用的全有)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vim运维日常必备操作技巧(常用的全有)相关的知识,希望对你有一定的参考价值。
一、说明
掌握vim的操作技巧能让运维的工作事半功倍,本文将罗列出运维日常使用到的操作技巧,不太常用的操作,本文没有收集,有高要求有兴趣的可以百度查阅vim专题
二、常用技巧
1)普通模式:移动光标的操作
G或者(Shift+g):光标瞬移到文件的最后一行
gg :光标瞬移到文件的第一行,命令等同于“1G”
0(数字0)或者^ :光标瞬移到当前行的行首
$ :光标瞬移到当前行的行尾
b :光标瞬移到当前位置的单词的单词首字母处
e :光标瞬移到当前位置的单词的单词尾字母处
w :光标瞬移到当前位置的单词的下一个单词的单词首字母处
f+字母 :光标往右瞬移到指定的“字母处”,如果指定的字母有重复,则默认跳转到从左至右的第一个
F+字母 :光标往左瞬移到指定的“字母处”,如果指定的字母有重复,则默认跳转到从右至左的第一个
num+回车键 :光标从当前行位置向下移动num行(num是数字)
num+gg :光标移动到文件的第num行,命令等同于“num+G”
H或者(Shift+h):光标瞬移到当前窗口最上面的那一行
M或者(Shift+m):光标瞬移到当前窗口中间的那一行
L或者(Shift+l) : 光标瞬移到当前窗口最下面的那一行
h或者← :光标向左移动一个字符
j或者↓ :光标向下移动一个字符
k或者↑ :光标向上移动一个字符
l或者→ :光标向右移动一个字符
< :光标所在的一整行向左缩进
> :光标所在的一整行向右缩进
2)普通模式:搜索与替换操作
:/dabiaoge :从光标位置开始,向下搜索名为dabiaoge的字符串
:?dabiaoge :从光标位置开始,向上搜索名为dabiaoge的字符串
r :用光标选中字符,按下“r”,并输入替换的新内容,则可以把选中的字符修改成新内容
n :从光标位置开始,向下重复前一个搜索动作
N :从光标位置开始,向上重复前一个搜索动作
:g/A/s//B/g :把全文符合A的内容全部替换成B,斜线都是分隔符,可用"@"和"#"代替(注意中间s后面是两个斜线)
:%s/A/B/g :把全文符合A的内容全部替换成B,斜线都是分隔符,可用"@"和"#"代替(这个操作和“g/A/s//B/g”一模一样的效果)
:num1,num2s/A/B/gc:在第num1行和第num2行之间寻找A,并且把全部的A替换成B(后面的gc的c表示再次确定,如果确认就输入y,也可以不用c,如果直接就是g,则是不用确定并且立即生效)
3)普通模式:复制、粘贴、删除等操作
yy :复制光标当前所在的一整行
num+yy :复制从光标所在行的这一行起向下的num行(光标所在的行为第一行)
小p、大P :小p表示将已复制的数据粘贴到光标所在行的下一行;而大P表示将已复制的数据粘贴到光标所在行的上一行
dd :删除当前光标所在的一整行
num+dd :删除从光标所在行开始向下的num行(光标所在的行为第一行)
u :撤销(回滚)前一个执行过的操作
. :就一个点号,表示重复前一个执行过的操作
4)普通模式:高难度的操作
d+aw :删除光标所在单词以及单词前的一个空格(d就是删除的指令,aw就是光标所在单词加上前一个空格)
gUgU :把光标所在行的一整行的小写字母全部转成大写字母(原本就有的大写字母则是忽略)
gU+t+字母 :gU就是转为大写的操作指令,“t+字母”就是是表示重新定义光标在这一行的位置,而这个字母就是新的光标位置,如果同一行内有多个相同字母,则模式是第一个,表示从光标现在位置开始到“指定字母”这个位置止,之间的凡是小写的字母全部转成大写字母
Ctrl+a :把光标所在的数字加1
num+Ctrl+a :把光标所在的数字加num(num是数字,不能是负数和0,必须是正整数)
5)进入编辑模式的命令(一共就六种进入编辑模式的命令键)
i :在当前光标所在处开始进入编辑模式
a :在当前光标所在处的下一个字符处开始进入编辑模式
I :在当前光标所在行的行首的第一个非空格符处开始进入编辑模式(与A正好相反)
A :在当前光标所在行的行尾最后一个字符处开始进入编辑模式(与I正好相反)
O :在当前光标所在行的上一行插入新的一行(也就是把当前光标所在的行下移一行,但是光标还在这一行,并且光标移动到行首)
o :不是数字0,是字母o,表示在当前光标所在行的下一行插入新的一行(与O正好相反)
Esc :退出编辑模式,切回到命令模式
6)命令行模式的命令
:wq或者x :退出并保存
:wq!或者x! :退出并强制保存,“!”为强制的意思
:q! :强制退出,但不保存
:num1,num2 w filename :将第num1行到第num2行的内容保存到filename这个文件(filename文件无须提前创建)
:num1,num2 co num3 :将第num1行到第num2行的内容复制到第num3行的下面
:num1,num2 m num3 :将第num1行到第num2行的内容移动(剪切)到第num3行的下面
:!任意命令 :表示暂时离开vim页面,转到执行的那个命令的页面,例如:!ls /root
:set nu :所有行都显示行号
:set nonu :取消行号(与“set nu”相反)
:vs filename :以垂直分屏的方式显示,会左右显示当前文件和filename文件的内容
:sp filename :以水平分屏的方式显示,会上下显示当前文件和filename文件的内容
:,$d :注意最前面有个逗号,表示删除当前光标所在行以及后面的所有行(光标所在的那一行也删除)
:num,.d :注意num和d之间有个逗号和点,表示删除第num行到光标所在行的内容(光标所在的那一行也删除)
7)可视化模式
可视化模式类型分为三种:字符可视化、行可视化、块可视化
在普通模式下:按v(小写),进入字符可视化
按V(大写,也可以Shift+v),进入行可视化
按“Ctrl+v”,进入块可视化
什么是可视化?就是一种控制选择粒度的方案。
字符可视化:选择粒度是一个字符,就是以字符为单位,一次选择一个字符
行可视化 : 选择粒度是一整行,就是为行为单位,一次选择一行
块可视化 : 最强大的选择粒度,没有选择单位,可自由选择,选择完的区域形成一个块,所以叫块可视化
下面罗列工作中用到可视化最常用的操作:
**把连续的几行代码在行首部注释掉**:
①num1+gg:把光标定位到需要注释掉的几行代码的首行的行首
②按“Ctrl+v”,进入块可视化
③再次执行num2+gg:把光标定位到需要注释掉的几行代码的末行的行首(如果行数不多,就连续按↓或者j,直到末行为止即可)
④执行“Shift+i”或者I
⑤输入“#”
⑥按Esc退出 //如果行数比较多,按下Esc不能立即给所选的所有行加上#号,需要等待1~2秒即可
**既然有一次性注释的方法,那么也就有一次性取消注释的方法**:
①num1+gg:把光标定位到需要取消注释掉的几行代码的首行的行首
②按“Ctrl+v”,进入块可视化
③再次执行num2+gg:把光标定位到需要取消注释掉的几行代码的末行的行首 //如果行数不多,就连续按↓或者j,直到末行为止即可
④执行d删除,即可删除所有的“#”
**把连续的几行代码在行尾部加上相同字符(比如C++代码是在行尾部加“;”才能生效)**:
①num1+gg:把光标定位到需要加“;”的几行代码的首行的行首
②按“Ctrl+v”,进入块可视化
③再次执行num2+gg:把光标定位到需要注释掉的几行代码的末行的行首 //如果行数不多,就连续按↓或者j,直到末行为止即可
④执行$:光标瞬移到当前行的行尾
⑤执行“Shift+a”或者A
⑥输入“;”
⑦按Esc退出 //如果行数比较多,按下Esc不能立即给所选的所有行加上;号,需要等待1~2秒即可
**一次性删除N行代码(我知道可用Ndd完成,这里用行可视化完成)**
①num1+gg:把光标定位到需要删除的几行代码的首行的行首
②按“Shift+v”或者V,进入行可视化
③再次执行num2+gg:把光标定位到需要删除掉的几行代码的末行的行首 //如果行数不多,就连续按↓或者j,直到末行为止即可
④执行d删除
**一次性删除所选内容(这个用Ndd可完成不了,这里用块可视化完成)**
①num1+gg:把光标定位到需要删除内容的起始行的行首
②执行“f+字母/数字”:跳转到需要删除部分的起始位置
③按“Ctrl+v”,进入块可视化
④再次执行num2+gg:把光标定位到需要删除部分的末尾部分所在行的行首 //如果行数不多,就连续按↓或者j,直到末行为止即可
⑤再次执行“f+字母/数字”:跳转到需要删除部分的结尾位置
说明:如果行数不是太多,需要删除的部分全部在一个窗口内,则不用④和⑤那么麻烦,直接使用“← ↓ ↑→”方向键来选定需要删除的区域即可
⑥执行“d”删除即可
**既然有添加和删除,那么一定也有替换**:
①num1+gg:把光标定位到需要替换内容的起始行的行首
②执行“f+字母/数字”:跳转到需要替换部分的起始位置
③按“Ctrl+v”,进入块可视化
④再次执行num2+gg:把光标定位到需要替换部分的末尾部分所在行的行首 //如果行数不多,就连续按↓或者j,直到末行为止即可
⑤再次执行“f+字母/数字”:跳转到需要替换部分的结尾位置
说明:如果行数不是太多,需要替换的部分全部在一个窗口内,则不用④和⑤那么麻烦,直接使用“← ↓ ↑→”方向键来选定需要替换的区域即可
⑥执行“r”替换命令
⑦输入新的字符即可
以上是关于vim运维日常必备操作技巧(常用的全有)的主要内容,如果未能解决你的问题,请参考以下文章