標籤:程式 esc 修改 分隔字元 下標 啟用 插入 能力 儲存
VIM - Vi IMproved:
vim是vi編輯器的升級版,是linux下標準的編輯器,具有程式編寫能力,可以根據字型顏色辨別文法的正確性,方便程式的設計。
使用:
# vim [OPTION]... FILE...
+#:開啟檔案後,直接讓游標處於第#行的行首
+/PATTERN:開啟檔案後,直接讓游標處於第一個被PATTERN匹配到的行的行首
基本模式:
編輯模式(命令模式):開啟檔案的預設模式,可以上下左右鍵移動游標,複製粘貼刪除資料
輸入模式:編輯模式下按i,I,o,O,a,A等進入,按Esc退出
末行模式:內建的命令列介面,編輯模式下按”:、/、?“3個中任意一個進入
模式轉換:
編輯模式——>輸入模式
i:insert,在游標所在處開始輸入;
a:append,在游標所在處下一個字元處開始輸入;
o:在游標所在行下方插入一個新行;
I:在游標所在行的第一個非空白字元處開始輸入;
A:在游標所在行的最後一個字元處開始輸入;
O:在游標所在行上方插入一個新行;
輸入模式——>編輯模式
Esc
編輯模式——>末行模式
:,/,?
末行模式——>編輯模式
Esc
vim儲存或退出命令:
:w 儲存
:w! 強制儲存
:q 退出
:q! 修改過檔案後不想儲存,強制退出不儲存
:wq 儲存退出
:wq! 強制儲存退出
ZZ 若檔案未改動,則不儲存退出,若檔案改動過,則儲存退出
編輯模式:
游標跳轉:
字元間跳轉:
h或←:游標向左移動一個字元
j或↓:游標向下移動一個字元
k或↑:游標向上移動一個字元
l或→:游標向右移動一個字元
#COMMAND:跳轉#個字元數
單詞間跳轉:
w:下一個單詞的詞首
e:當前或下一個單詞的詞尾
b:當前或前一個單詞的詞首
#COMMAND:跳轉#個單詞數
行首行尾跳轉:
^:跳轉至行首的第一個非空白字元
0:跳轉至行首
$:跳轉至行尾
行間移動:
#G:跳轉至#行
G:最後一行
1G或gg:第一行
編輯命令:
x:向後刪除一個字元
X:向前刪除一個字元
#x或#X:向後或向前刪除#個字元,例如向後刪除10個字元,"10x"
r:替換游標所在處的字元一次
R:一直替換游標所在處字元,直到按下Esc為止
d:刪除命令,可結合游標跳轉字元,實現範圍刪除:
如:”d$“刪除游標所在處至行尾,"d^"刪除游標所在處至行首第一個非空白字元等等。
dd:刪除游標所在的行
#dd:刪除游標所在行向下#行
p:緩衝區存在的如果為整行,則粘貼至當前游標所在行的下方;否則則粘貼至當前游標處的後面
P:緩衝區存在的如果為整行,則粘貼至當前游標所在行的上方;否則則粘貼至當前游標處的前面
y:複製命令,工作方式相似與d命令
如:”y$“複製游標所在處至行尾,"y^"複製游標所在處至行首第一個非空白字元等等。
yy:複製當前游標所在的行
#yy:複製當前游標所在的行向下#行
c:刪除並從編輯模式進入輸入模式,使用方法同d命令,這裡就不多說了
其他編輯操作:
可視化模式:
v:按字元選定
V:按行選定
注意:經常結合的編輯命令d,c,y
撤銷此前的編輯:
u:撤銷此前的操作
#u:撤銷#次的操作
撤銷此前的撤銷:
Ctrl+r
重複前一個編輯操作:
.
翻屏操作:
Ctrl+f:向檔案尾部翻一屏
Ctrl+b:向檔案首部翻一屏
Ctrl+d:向檔案尾部翻半屏
Ctrl+u:向檔案首部翻半屏
末行模式:
內建的命令列介面
(1) 地址定界
#: 具體第#行,例如2表示第2行;
#,#: 從左側#表示行起始,到右側#表示行結尾;
#,+#: 從左側#表示的行起始,到當前游標所在行加上右側#表示的行數;
.: 當前行
$: 最後一行
.,$-1:當前行至倒數第2行
%:全文, 相當於1,$
/PATTERN1/,/PATTERN2/:從第一次被PATTERN1模式比對到的行開始,一直到第一次被PATTERN2匹配到的行結束
#,/PATTERN/:第#行至第一次被PATTERN模式比對到的行
/PATTERN/,$:第一次被PATTERN模式比對到的行至最後一行
使用方式:
後面跟一個編輯命令:
d:刪除
y:複製
w [filename]:將範圍內的行另存至指定檔案中
r [filename]:在指定位置插入指定檔案中的所以內容
(2) 尋找
/PATTERN:從當前游標所在處向檔案尾部尋找;
?PATTERN:從當前游標所在處向檔案首部尋找;
n:與命令同方向尋找下一個;
N:與命令反方向尋找上一個;
(3) 尋找並替換
s: 在末行模式下完成尋找替換操作
s/要尋找的內容/替換為的內容/修飾符
要尋找的內容:可使用模式
替換為的內容:不能使用模式,但可以使用\1, \2, ...等後向引用符號;還可以使用“&”引用前面尋找時尋找到的整個內容;
修飾符:
i: 忽略大小寫
g: 全域替換;預設情況下,每一行只替換第一次出現;
尋找替換中的分隔字元/可替換為其它字元,例如
[email protected]@@
s###
定製vim的工作特性:
設定檔:永久有效
全域:/etc/vimrc
個人:~/.vimrc
末行:當前vim進程有效
(1) 行號
顯示:set number, 簡寫為set nu
取消顯示:set nonumber, 簡寫為set nonu
(2) 括弧匹配
匹配:set showmatch, 簡寫為set sm
取消:set nosm
(3) 自動縮排
啟用:set ai
禁用:set noai
(4) 高亮搜尋
啟用:set hlsearch
禁用:set nohlsearch
(5) 文法高亮
啟用:syntax on
禁用:syntax off
(6) 忽略字元的大小寫
啟用:set ic
不忽略:set noic
vim內建的練習教程:
# vimtutor
linux下vim編輯器使用