频道栏目
首页 > 资讯 > 其他 > 正文

对正则表达式,VIM的基本命令的操作

18-06-05        来源:[db:作者]  
收藏   我要投稿

一 (正则表达式)

正则表达式(REGEXP)是由一类特殊字符和文本字符所编写的模式,其中有些字符(元字符)不表示字符字面的意义,而表示控制或通配的功能。

分为两类: 基本正则表达式:BRE 扩展正则表达式: ERE

元字符分类:字符匹配,匹配次数,位置锚定,分组。

字符匹配: · 表示匹配的单个字符

\. 转义,表示(·)的字符本意

【】 表示匹配指定范围内的任意单个字符,【】里的·表示本意,不用转义

【托字符】 表示匹配指定范围外的任意单个字符

【:alnum:】 字母和数字 【:alpha:】 代表任何英文大小写字符

【:lower:】 小写字母 【:upper:】 大写字母

【:blank:】 空白字符 【:space:】 水平和垂直的空白字符(比blank范围大)

【:punct:】 标点符号

匹配次数: 用于在要指定次数的字符后面,是表示前面字符出现的次数。

* 表示匹配前面的字符重复的次数,包括0次

·* 任意长度的任意字符

\? 匹配前面的字符0次或1次

\+ 匹配前面的字符至少1次

\{n\} 匹配前面的字n次,是指定m次

\{n,m\} 匹配前面的字符最少n次,最多m次

\{,n\} 匹配前面的字符最多n次

\{n,\} 匹配前面的字符最多n次

位置锚定: 定位出现的位置。

^ 行首锚定,用于模式的最左侧

$ 行尾锚定,用于模式的最右侧

\> 词尾锚定,用于单词模式的最右侧

\< 词首锚定,用于单词模式的最左侧

\b 单词的边界

分组: \(\) 将一个或多个字符捆绑在一起,当做一个整体进行处理。

二 VIM的基本命令操作

VIM 的文本编辑器

+# 打开文件后,让光标处于第#的行首

-d 可以比较多个文件

-m 只读的方式打开文件,避免误操作

-e 进入ex模式(编辑模式)

三种主要模式

命令模式:默认模式

插入模式:编辑模式

扩展命令模式:ex模式

可以让命令模式进入插入模式的,按ESC退出的一些操作:

按 i 光标不懂

按 I 光标移动到行首

按 a 光标往后移动一个字符

按 A 光标移动到本行的行尾

按 o 在光标下行切换新行

按 O 在光标上行切换新行

在命令模式下按: 就进入ex模式了

在ex模式下:

Wq 存盘退出 q 退出

Q! 强行退出,修改的不算

W 空格 跟文件 就可以把VIM的内容传送到文件

R 空格 跟文件 就可以把文件的内容读入VIM

在命令模式下的一些常用的用法:

字符间的跳动: h 左 l 右 j 下 k 上

# 前面加上数字# ,配合其他按键进行跳动

单词间的跳动: w 跳动到下一个单词的词首

e 跳动到下一个单词的词尾

b 跳动到前一个单词的词首

也可以配合#进行跳动

当前页面跳动: H 跳动到当前页面的页首

M 跳动到当前页面的中间

L 跳动到当前页面的页底

行首行尾的跳动: ^ 跳转至行首的第一个非空白字符

0 跳转至行首

$ 跳转至行尾

行间移动: G 直接跳动到整个文件的最后一行

gg 直接跳动到整个文件的第一行

一些快捷键: ctrl +f 向文件尾部翻一页

Ctrl+b 向文件首部翻一页

Ctrl+d 向文件尾部翻半页

Ctrl+u 向文件首部翻半页

命令模式的字符编辑: x 删除(剪切)光标处的字符

#x 前面加上数字,表示删除几个字符

Xp 交换光标处字符跟后面字符的位置

J 删除当前行后的换行符

~ 转换大小写

替换命令: r 替换光标所在处的字符

R 切换成REPLACE 模式,批量替换字符

删除命令: d 删除字符,可以结合光标跳转字符实现范围删除

d$ 删除到行尾

d^ 删除到非空白字符行首

d0 删除到行首,不包括光标处

dd 删除光标所在行 (配合数字批量删除)

D 从当前光标处一直删除到行尾

复制命令: (复制完可以按P粘贴)

y 复制

y$ 复制到行尾

y0 复制到行首

y^ 复制到非空白字符行首

yy 复制光标所在行

#yy 配合数字实行多行复制

Y 复制整行

改变命令: c 修改后切换成插入模式,配合d进行相应操作

100i wang [esc] 粘贴wang 100次 复制wang 100次

扩展命令模式: (ex)模式

地址定界:

:# 输入数字几,跳到第几行

#,#:从第几行到第几行,后配合相应命令

· 表示当前行

$ 表示最后一行

% 表示全文件内容

S 在扩展模式下完成查找替换操作

格式: s/要查找的内容/替换为的内容/修改符

修改符: i 忽略大小写

g 修改的全局替换(默认情况只替换每行第一次改的)

gc 全局替换时每次前询问

命令模式下: (小写)u 撤销 #u 撤销之前多次修改

(大写)U 撤销光标落在此行后所有的更改

按ctrl -r 重做最后撤销的更改(倒回去)

· 重做前一个操作

n. 重做前一个操作N次

VIM的寄存器

有26个命名的寄存器 (可以在不同窗口进行)

名称以a b c ….z 来表示

格式: 寄存器放在数字和命令之间

如: “ ayy 表示把当前光标所在行复制到a寄存器

“ap 表示把a寄存器的内容粘贴

VIM “F1 F2”一次处理多个文件

刚进去默认在第一个文件

:next 下一个

: prev 前一个

: qall 退出所有

: wqall 保存退出所有

VIM 使用多个窗口

VIM -o 上下分屏

VIM-O 左右分屏

在窗口间来回切换 ctrl+w

完成后 wqall

在VIM里加行号

显示 set nu

取消 set nonu

要想行号永久有效,必须保存配置文件:(用VIM改)

全局:/etc/vimrc 个人:~/.vimrc

在VIM里设置文本宽

启用 set textwidth =65

禁用 set wrapmargin =15

在VIM里设置光标所在的标识线

启用 set cursorline (cul)

禁用 set no cul

更详细用法请查:VIM help

相关TAG标签
上一篇:基于虚拟机上的linux系统,CentOS配置静态IP的步骤讲解
下一篇:Ansible常用模块-file模块解析
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站