1. 程式人生 > >對正則表達式,VIM 的基本命令操作

對正則表達式,VIM 的基本命令操作

正則表達式 VIM編輯器

一 (正則表達式)

正則表達式(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

對正則表達式,VIM 的基本命令操作