vim快捷鍵介紹

開始之前:本來打算傳張圖片上來的,結果串不上來 ,我說我其實是會畫圖的,你們信麼。

vim 是一款強大的屏幕文本編輯器,即一次讀取所有的文本內容,並顯示在屏幕上;與之對應的是行編輯器,每次僅讀取一行內容比如說ed。


vim的選項:

雖然標題是快捷鍵,但是我還是把選項也寫上吧。


vim file :沒有選項的選項,直接使用vim打開文件 
    擴展: vim file1 file2 file3  :使用vim 同時打開多個文件 ,但是隻能顯示一個,但是可以通過命令進行文件之間的切換。
        :next 下一個
        :prev 前一個
        :first 第一個
        :last 最後一個 
        :wall 保存所有
        :qall 退出所有
        :wqall 保存退出所有

.

 行跳轉選項:
     即在打開vim時決定光標停留的行,行跳轉可以使用 數字或模式實現
    +# : 打開文件時光標跳轉到 # 行的行首 
         vim +14 /etc/passwd
    +/patter :打開文件時光標停留在第一次匹配到該字符串的地方.
         vim +/root /etc/passwd

.

vim -m file : 以只讀的方式打開文件

.

vim -b file :以二進制的方式打開文件

.

vim -d file1 file2  : 以分屏的方式 打開兩個文件.高亮顯示差別.

.

vim -o/-O file1 file2 : 代開多個文件 ,但將窗口分割爲多個小窗口
-o 水平分割 
-O 垂直分割

.

vim -e file :打開文件時進入擴展的命令模式
    等價命令ex

vim快捷鍵

個人理解: vim 進入後的界面不同於windows的記事本可以直接編輯,vim編輯器進入之後只能使用命令。包括ed編輯器,也不是直接編輯的。
而且編輯模式命令與擴展命令模式命令,其實都是命令的一種,只是有的命令動作比較長,在動作中可能需要用戶的輸入。也就是inster狀態。有的命令帶有擴展選項,:。

插入操作

i:在當前的光標位置之前插入字符,esc鍵結束插入,
    # i,esc :爲1個完整的動作,重複執行動作#次,當#不指定時,默認爲1 次。
a:光標向後移動一個字符,然後在當前光標前插入。即在當前光標位置之後插入字符。esc鍵結束插入。
    # a,esc :爲1個完整的動作,重複執行動作#次,當#不指定時,默認爲1 次。
l:在當前行的行首插入字符 ,esc鍵結束插入,
    #I,esc :爲一套完整的動作,重複執行動作# 次,當# 不指定時,
A:在當前行的行尾插入一個字符,esc鍵結束插入
    #A,esc :爲一套完整的動作,重複執行動作# 次,當# 不指定時,默認爲1次 。
o:在當前行的下方插入新的空白行,
    #o:無需esc 鍵結束,重複執行o動作 #次,當#不指定時,默認爲1 
O:在當前行的上方插入新的空白行。
    #O:無需esc 鍵結束,重複執行O動作# 次,當# 不指定時,默認爲1 。
c:修改模式,可實現範圍修改,即清空指定範圍,然後進入插入模式。

窗口操作

ZZ :保存退出
ZQ :退出不保存
單文件窗口分割:
    ctrl+w, s :水平分割
    ctrl+w, v :垂直分割
    ctrl+w ,q:取消相鄰窗口
    ctrl+w ,o:取消全部窗口
    : wqall : 退出

跳轉操作

字間跳轉

. . .
. 上k .
左h . 右l
. 下 j .

詞間跳轉:

. .
當前或上一個詞首 b 下一個詞首 w
. 當前或下一個詞尾 e

當前頁跳轉:

. . .
頁首:H 頁中:M 頁底: L

行內跳轉:

. .
^ :非空白字符的行首 .
0:真正的行首 行尾 :$

段落跳轉:

. .
)跳至下一句 .爲分割 (跳至上一句 .爲分割
} 跳至下一句 空行爲分割 { 跳至上一句 空行爲分割

翻頁操作:

. .
ctrl + b 向上全屏 ctrl + u 向上半屏
ctrl + f 向下全屏 ctrl + d 向下半屏

G 行號跳轉

.
gg 跳至首行
G 跳到行號爲#的行
gg 跳到行號爲#的行
G 跳到尾行

字符編輯

x :剪切光標處的字符,光標位置不改變,剪切位置後的字符向前補齊                        
    \#x 重複執行x ,#次
~ :裝換字符的大小寫,轉換後光標位置向後移動一位。
    \#~ 重複執行~ , #次
r/R :替換/連續替換光標處的字符。連續替換時每替換完成一個單詞,光標向後移動1位。
    \#r 重複執行r ,#次,r動作類似於宏。r替換開始,至輸入字符,替換完成,爲一個r動作。所以#r會替換#個相同的字符。
d :刪除操作,可結合光標跳轉字符功能,實現範圍刪除。
    格式:<start>d<end>:從指定的開始位置爲開始,至指定的位置爲結束,對期間的內容[start-end]執行d操作即刪除。其中start的內容可以默認,即使用光標位置。
        1ggdG :刪除全部內容
        d50gg :刪除當前光標位置至50行的所有內容
        0d$ :刪除整行內容            
y :複製操作,可結合光標字符跳轉功能,實現範圍刪除。
p :粘貼操作,
    p:如果粘貼的爲整行則在當前行的下面粘貼,如果是字符則在光標後粘貼。
    P:如果粘貼的爲整行則在當前行的上面粘貼,如果是字符則在光標前粘貼。
J :刪除當前行後的換行符

可視化操作:

.
v:面向字符
V:面向行
c+v:面向塊

撤銷

.
u :撤銷最近一次更改
#u :撤銷之前#次更改
U :撤銷光標移動至該行後的所有更改
ctrl + r 恢復最近1次撤銷

重複操作

.
. 重複之前的操作
. 重複之前的操作#次

擴展命令模式
使用:進入命令擴展模式,使用對應命令進行操作。
個人理解:vim中並無模式,插入模式,命令擴展模式,都不過是執行的命令過程中的一部分,只是有些命令動作較多。擴展命令模式是一條帶有參數的命令。
:q 退出
:w 保存
:x 保存退出
:r 讀取文件的內容或命令的輸出,類似於重定向
:! 在命令之後表示強制執行該命令 ,在外部(對於vim)命令之前表示執行該命令
:!ls
:r!ls

查找:
    :/PATTERN : 從當前光標所在處向文件尾部查找
    :?PATTERN : 從當前光標所在處向文件首部查找
    n: 與命令同方向
    N:與命令反方向    

地址定界:
格式 :start_pos,end_pos
數字表示法:
# : 單一行號,只表示該行號的行
# ,# :使用數字表示具體的行號。表示一段範圍。
# ,+#:從左側#表示的行號爲開始,+#表示增量,即#+#行。
模式匹配法:
/pat1/,/pat2/ :從第一次被pat1匹配到的行開始,一直到第一次被pat2匹配到的行結束,
特殊表示:
. 表示當前的行
-1 表示最後一行的上一行
% 表示全文
使用方法:
地址定界中的表示方法可以混合使用。在地址定界後跟隨一個動作,如d(刪除),y(複製),w file(將定界內容保存到文件),r file(在指定的位置插入指定文件中的內容)
替換:
:s 格式:地址定界 s/要查找的內容/替換爲的內容/修飾符
可以不指定地址定界,在不指定地址定界時,默認爲光標所在的行。
要查找的內容:可使用模式,但是基本的正則表達式。
替換爲的內容:不能使用模式,但是可以使用\1,\2…等後項引用,還可以使用&引用前面查找時找到的整個內容
s前面可以指定範圍 %全文
修飾符
i: 忽略大小寫
g: 全局替換,默認情況下,每一行只替換第一次出現
gc: 全局替換,每次替換前詢問
查找替換中的分隔符/可替換爲其他字符
s@/etc@/var@g
s#/boot#/#!
& :表示之前搜索到的文本
%s/root/&er/g
改變大小寫
gu :變爲小寫
gU :變爲大寫

vim屬性更改:
    更改的屬性僅對當前使用的vim有效,如果長期有效許定義在配置文件中
    :set nu 增加行號    set nonu 取消行號
    :set sm 括號成對高亮
    :set ai 自動縮進
    :syntex on /off 語法高亮
    :set ic 忽略字符的大小寫。
    :set fileformat=dos   啓用windows格式:
    :set fileformat=unix  啓用unix格式:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章