vim常见用法
在Linux操作系统中主流的有两款编辑器:nano,vim。但我更倾向于使用vim,因为配合命令,无疑它的功能更加强大。尽管nano入门更加容易,但我还是建议直接使用vim编辑器。ok,进入正题,下面介绍vim常见用法。
一.vim模式
首先vim分为三种命令模式(注意以下都需在英文输入法下输入)
1.命令模式(按下ESC进入)
2.可视模式(在命令模式下按下:进入)
3.插入模式(按下a,i,o进入插入模式)
二.关于正则表达式
正则表达涉及到各种匹配过滤,在Linux运维中是不可缺少的。因此在写博客的同时想将正则表达式加入进来。以下是关于一些正则表达式的常用用法(关于打印字符和非打印字符的说明,打印字符代表数字,大小写字母,标点符号,下划线,非打印字符代表空格,Tab等这里有一份关于ASCII码表的博客非常全可以看一下)
ASCII码表
关于正则表达式一个比较好的博客文章
符号 | 含义 |
---|---|
\d | 匹配数字 |
\D | 匹配非数字字符 |
\w | 匹配字母,数字,下划线 |
\W | 匹配非字母,数字,下划线 |
\s | 匹配非打印字符串 |
\S | 匹配打印字符串 |
. | 匹配除换行符以外的任意字符 |
[] | 指定范围的字符 [1-9a-zA-Z] |
{} | 指定匹配次数 {n} |
{m,n} | 匹配m-n次 |
{m,} | 匹配多余m次 |
^ | 其有两种用法1.匹配行首符号2.结合[]使用如[^1-9a-zA-Z]匹配非字符符号 |
* | 对之前符号零到多次,并尽可能多的重复(不能位于行首) |
+ | 对 之前符号一到多次重复(不能位于行首) |
? | 对 之前符号零次到一次重复(不能位于行首) |
注意关于匹配有一些坑,下面说一下我遇到的一些问题
首先便是关于重复的问题:
1.*,+,?只能重复其前面的符号,不能置于最前面,比如说 *mcc是错误的语句。
2.关于mcc?可以匹配mcc和mc
三.vi常见命令
vi filename1[filename2,filename3······]打开一个或多个文件
命令模式下vi使用(按下ESC进入命令行模式):
ndd | 删除n行(按下一个数字和dd即可删除光标行) |
---|---|
/ | 向下查找(/abc*的意思是查找以abc开头且后面全是c的文件名) |
? | 向上查找 |
:%s/mc/mcc/ | 替换所有行的第一个mc为mcc |
:%s/mc/mcc//g | 替换全文mc为mcc |
:wq | 保存退出 |
:q! | 强制退出 |
:n1,n2 co n3 | 将n1行到n2行之间的内容拷贝到第n3行下 |
:n1,n2 m n3 | 将n1行到n2行之间的内容移至到第n3行下 |
:!command | 执行shell命令command |
ZZ | 保存退出 |
u | 撤销命令 |
nyy | 复制下面的n行 |
: sp + 文件名 | 分屏,打开多个文件 |
关于删除命令有最近在一篇博客上了解到其使用“ndd”,删除连续的n此时被删除的内容并没有真正删除而是临时放在了内存中,此时(在命令模式下)可以将游标移动到指定的位置处,再按下“p”键后就可以将刚才删除的内容又粘帖到此处。相当于只是做了简单的剪切。
总结:这篇博客写到这里也算是一种学习吧,写这篇博客时也参考了特别多的博客,自己也通过一些软件验证了正确性,没办法一一贴图,算是一个遗憾吧,最后还是贴上自己特别喜欢的一个游戏。