VIM 經常使用用法linux
Vim是vi文本編輯器的升級版。也是linux最經常使用的編輯器,其功能之強大。聽說還對此專門出一本500多頁的書。正則表達式
Vim分三個模式:默認模式:命令模式,編輯模式vim
輸入模式:app
末行模式編輯器
模式轉換:ide
編輯模式 --> 輸入模式:spa
i: insert, 實如今當前光標所在處字符前面轉換爲輸入模式;blog
a: append, 實如今當前光標所在處字符後面轉換爲輸入模式;圖片
o: 實如今當前光標所在行的下方新建一個空白行並轉換爲輸入模式;文檔
I: 在當前光標所在行的行首轉爲輸入模式;
A: 在當前光標所在行的行尾轉爲輸入模式;
O: 在當前光標所在行的上方新建一行,並轉爲輸入模式;
輸入模式 --> 編輯模式;
按下Esc鍵;
編輯模式 --> 末行模式;
鍵入:(冒號)
末行模式 --> 編輯模式;
Esc,Esc(雙擊Esc鍵)
光標跳轉:
字符間跳轉:
h: 左
l: 右
j: 下
k: 上
#h: 向左側跳#個字符;
通常用鍵盤上下左右鍵居多。
單詞間跳轉:
w: 後一個單詞的詞首
e: 跳至當前或下一個單詞啓尾;
b: 跳至當前或前一個單詞啓首;
句子間跳轉:段落間跳轉:
) : 下一句; } : 下一段;
( : 前一句; { : 前一段;這2個通常用得不多
行間跳轉:
1G, gg:
G:
#G:
行內跳轉:
^: 行首的第一個非空白字符
$: 絕對行尾
0(零): 絕對行首
關閉文件:
在末行模式下,即鍵入:(冒號)
:w 保存
:q 退出
:! 強制
:x 保存並退出,通常習慣用wq
這些命令均可以組合好比wq, q!, qall, wqall(所有退出,所有保存並退出。這兩個後面介紹適用環境)
在編輯模式下:
ZZ:保存退出;
打開文件:
Vim [opinion] /path/to/file
打開多個文件:
Vim [opinion] /path/to/file /path/to/file
末行模式下輸入:
next 下一個;
last 最後一個;
first 第一個;
prev 前一個;
-O:垂直分割窗口 Ctrl+w 鬆開再點方向鍵切換,固然也能夠用上面的命令。可是沒有加選項,就不能用Ctrl+w,且輸入:q退出時是多個一塊兒退出。
-o:水平分割窗口
這樣就能夠用qall,qwall命令
編輯命令:
x: 刪除當前光標所指的字符
#x:(#填數字)刪除當前光標向右#個字符
d:剪切,刪除命令。
dd: 刪除整行。
dw:刪除單個單詞,可是若是光標不在這個單詞開始位置,則會刪除此單詞當前光標後面的內容。
db:
de:
d^:刪除當前光標至首行的內容
d$:刪除當前光標至末行的內容,包括當前光標內容。
在末行模式下使用d命令
末行模式地址定界:
起始地址,結束地址
$:最後一行;
.:當前光標所在行;
%:全文
1,7d
%: 全文
1,$:
1,+6 即1-7行
1,$-2
.,+3
粘貼操做:p
刪除的是整行:
p: 在當前光標所在行的下方粘貼;
P:在當前光標所在行的上方粘貼
刪除的不是整行:
p: 在當前光標所在處字符的後方粘貼;
P:在當前光標所在處字符的前方粘貼;
複製:y, yank
yy
#yy
y$光標到行尾複製,包括當前光標內容
y^光標到行首複製,不包括當前光標內容
複製的是整行:
p: 在當前光標所在行的下方粘貼;
P:在當前光標所在行的上方粘貼
複製的不是整行:
p: 在當前光標所在處字符的後方粘貼;
P:在當前光標所在處字符的前方粘貼;
編輯操做可撤消:
u: vim默認會最近50次的操做,u命令可逐一撤消此前的編輯操做;
撤消此前的撤消:Ctrl+r:
翻屏:
Ctrl+f: 向文件尾部翻一屏;
Ctrl+b: 向文件首部翻一屏;
Ctrl+d: 向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
文本搜索:
/keyword: 從當前光標所在處向文件尾部查找
?keyword:從當前光標所在處向文件首部查找
n: 下一個,跟查找命令相同的方向
N:前一個,跟查找命令相反的方向
經常使用/keyword
模式
/\<d[[:alpha:]]\{2\}n\>
基本表達式:
.
[]
[^]
*
\?
\{m,n\}
\{m\}
^
$
\<
\>
\(\), \1,\2
擴展的正則表達式元字符:
.
[]
[^]
*
?
+
{m,n}
{m}
^
$
\<
\>
a|b|c ac|b|c 指的是ac或b或c
()
關於正則表達式的內容見前面博客。
編輯命令
c:編輯,轉換至輸入模式
cc其用法就如dd後再編輯該行
#cc
c
c$: 刪除光標之後行,並進行a處理該行。即d$+a.
vim可視化模式
visual模式
v: 選中光標劃過的字符
V:選中光標劃過的行,整行選取
Esc, Esc:回到編輯模式
同一文檔窗口分割:
Ctrl+w,s:水平分割
Ctrl+w,v:垂直分割
Ctrl+w,箭頭
窗口屬性定義:
顯示行號:
set number簡寫set nu
set nonumber, set nonu
自動縮進
set autoindent, set ai
set noai
不區分字符大小寫
set ignorecase, set ic
set noic
獲取幫助:
set
顯示匹配的括號:
set showmatch, set sm
set nosm
語法着色:
syntax on
syntax off
搜索高亮顯示
set hlsearch
set nohlserach
vim的配置文件:
全局:/etc/vimrc
我的:~/.vimrc
查找替換:
:地址定界s/查找模式/替換成的內容/gi
:地址定界s@查找模式@替換成的內容@gi
global
ignorecase 不區分大小寫
/和@這2個只是個符號,有時遇到\這個符號通常就用@代替,方便查看。你本身也用其餘的符號,但3個必須同樣。
查找替換例子:
1.把/dev/null替換成/tmp/a.txt
%s/\/dev\/null/\/tmp\/a.txt/g(沒有g只替換第一個,有了g無論這行有多少都替換)
%s@/dev/null@/tmp/a.txt@g
2.刪除行首開頭的#:
%s@^#@@
3.刪除行首開頭的#及後面緊跟的空白字符;
%s@^#[[:space:]]*@@
4.爲空白字符開頭的行的行首加上#;
%s@^[[:space:]]@#&@