运维必备技能vim编辑器
Vim是一个类似于Vi的著名的功能强大、高度可定制的文本编辑器,在Vi的基础上改进和增加了很多特性。VIM是自由软件。Vim普遍被推崇为类Vi编辑器中最好的一个模式化编辑器
vim的三种基本模式分别是
命令模式
输入模式
行末模式
打开文件
vim [OPTIONS] [FILE...]
+* 打开文件后光标处于第*行的行首
+/PATTERN 打开文件后光标处于第一个被 PATTERN 所匹配行的行首
模式转换
命令模式 > 输入模式
i : 在光标处输入
a : 在光标处后方输入
I : 在光标所在行的行首输入
A : 在光标所在行的行尾输入
o : 在光标所在行的下方新增一个行输入
O : 在光标所在行的上方新增一个行输入
s : 删除当前光标所在字符并输入
S : 删除当前光标所在行并输入
输入模式 > 命令模式
ESC
命令模式 > 行末模式
:
行末模式 > 命令模式
ESC
关闭文件的常见用法
在命令模式
ZZ 保存并退出
在行末模式
:x 保存并退出
:w FILE 另存为
:w 保存
:q 退出
:! 强制
他们可以组合使用 如:wq!强制保存退出
光标跳转
字符间跳转
h 向左跳转 (键盘上右手放置的位置)
j 向下跳转 h在左 l在右
k 向上跳转 (世界地图上日本在韩国下面所以)
l 向右跳转 j向下 k向上
单词间跳转
w 跳转到下一个单词的词首
e 当前或下一个单词的词尾
b 当前或上一个单词的词首
行首行尾跳转
^ 跳转至行首第一个非空白字符
0 跳转至绝对行首
$ 跳转至绝对行尾
行间跳转
*G | *gg 跳转至*行
gg 跳转至第一行
G 跳转至最后一行
句间跳转
( 前一个句子
) 后一个句子
段间跳转
{ 前一个段落
} 后一个段落
vim的编辑命令
字符编辑
x 删除光标所在处的字符
xp 交换光标所在处字符和后面字符的位置
替换命令
r 替换命令所在处的字符 r CHAR
删除命令
d 可以结合光标跳转 实现范围删除
d$ 删除光标所在处到绝对行尾的字符
d^ 删除光标所在处到非空白行首的字符
dd 删除光标所在行
复制命令
y 可以结合光标跳转 实现范围复制
yy 复制一整行
粘贴命令
大写P 粘贴在光标前面 ,如果是一整行则粘贴在上一行
小写p 粘贴在光标后面 ,如果是一整行则粘贴在下一行
其他编辑操作
可视化模式
v 按字符选定
V 按行选定
结合编辑命令使用
撤销操作
u 撤销此前N个操作
撤销此前的撤销操作
ctrl + r
重复上一个操作
.
vim自带的教程
这是个新手教程 就和玩一个新游戏一样他会教你操作
命令行输入 vimtutor
vim末行模式
查找
/ 从当前光标顺序查找
? 从当前光标逆序查找
n 下一个 与命令方向相同
N 上一个 与命令方向相反
查找并替换
地址定界s/要替换的内容(可以使用正则表达式)/替换为的内容/修饰符
地址定界
% 全文
* 特定行 (可以用,隔开)
$ 最后一行
. 当前行
修饰符
i 忽略大小写
g 全局替换 一行中匹配到多次 则全部替换
vim的多窗口功能
vim -o FILE1 FILE2 ... 水平分割多个文件
vim -O FILE1 FILE2 ... 垂直分割多个文件
ctrl + w s 水平切割当前窗口
ctrl + w v 垂直切割当前窗口
ctrl + w 箭头 切换窗口
退出全部窗口 在之前的行末模式上加all即可
批量注释
ctrl + v 选要注释的行 然后shift + i 输入# 然后ESC 退出
批量取消注释
ctrl + v 选要取消注释的行 然后d
bash脚本编程之算数运算
因为shell是弱变量语言 在变量赋值后全部存储为字符型 所以当要进行数值运算时需要用到下面的方法
1 let name=算数表达式 然后 echo $name ( 经常使用与 let name++ 每运行一次给变量加1 )
2 expr 算数表达式
3 echo "$[算数表达式]"
4 echo "$((算数表达式))"
注意乘法再有些场景需要转义