vim 光標快速移動技巧總結


vim 光標快速移動技巧總結

原文鏈接:https://blog.csdn.net/llzhang_fly/article/details/80474966

vim 快速編輯快捷鍵,總結如下:


**1. 為什么使用hjkl作為方向鍵?**
hjkl :
為什么用 HJKL 鍵作為方向鍵?當 Bill Joy 創建 Vi 文本編輯器時,他使用的機器機器是 ADM-3A 終端機,這機器就是把 HJKL 鍵作為方向鍵。自然而然,Bill Joy 也就用了相同的按鍵了。


hjkl,用熟了,相對其它編輯器或者鼠標來說,確實挺方便的。 



**2. 快速移動光標至行首和行尾**
1)行首:使用鍵盤上的編輯鍵Home;
也可在命令模式中使用快捷鍵"^"(即Shift+6)或0(數字0)。
2)行尾:使用編輯鍵End;
也可以在命令模式中使用快捷鍵"$"(Shift+4)。
快捷鍵"$"前可以加上數字表示移動的行數。例如使用"1$"表示當前行的行尾,"25$"表示當前行的下25的行尾。

3)I是定位到行首,A是定位到行末。



**3. 向下移動100行(適合小范圍移動)**

100j表示向下移動100行(從當前位置開始)



**4. 查找某字符串(適合大范圍移動)**
/hello 
向后查找關鍵詞hello,回車就到了后面第一個hello處。 
?hello 
向前查找關鍵詞hello 
shift+* 向后查找當前光標處的單詞 

shift+# 向前查找當前光標處的單詞



**5. 行內快速移動**
1) 以字符為准(適合行內移動)
利用f命令搜索某字符方式 ,
f表示向后移動到某字符: 
比如fa表示向后移動到字符a處 
Fa表示向前移動到字符a處:
2) 以word為“單位”(適合小范圍移動)
同理,利用w,b,配合數字。 
2w表示向后移動2個word; 
2b表示向前移動2個word; 
2e表示向后移動2個word,但是會移動到word字符之后。 
如果想忽略標點符號的word,就用大寫 
W 
B 

E



**6. 移動到文本開頭或結尾(適合大范圍移動)**
gg表示移動到文本開頭; 

G表示移動到文本結尾;



**7. 利用行號移動到某一行(適合大范圍移動)**

:123表示移動到第123行



**8. 翻頁(適合大范圍移動)**
ctrl+f表示向下翻頁 

ctrl+b表示向上翻頁



**9. 利用標記mark命令**
ma表示標記該行為a;包括第幾列的信息,都在標記a里。 
‘a表示跳轉到標記a處;會跳轉到標記a的行首。單引號’ 
`a表示跳轉到標記a處;會跳轉到標記a的行,包括第幾列。更精准。按鍵在波浪號處。


快速移動技巧基本就這些吧。 
網上還有括號移動的,段落移動的,其實用上述技巧就夠了。如果沒有特別有意義的,不如熟練掌握上述技巧。 

比如移動到上一個{,那么輸入命令?{



**10. 復制、刪除同行一段文字**
比如復制一部分文字,從time到tutor之間的內容。 
The approximate time required to complete the tutor is 25-30 minutes. 

最基本的就是用hjkl移動到time處,v命令,用hjkl移動到tutor,選中后,按y。命令結束。 



熟悉快速移動后,/time回車,y/tutor。命令結束。 
同理,如果delete,一樣。/time回車,d/tutor。命令結束。 
同理,如果change,一樣。/time回車,c/tutor。命令結束。
change命令,適合修改代碼。很有用。具體介紹可以輸入命令:help c 
比如cc表示刪除本行並開始重寫。刪除本行同時執行insert模式。


***\*11. 用ctags命令對當前目錄下的c源程序掃描,生成tags文件(未驗證)\****
$ ctags *.c 
這樣,在vi里通過命令 
:ta fun_name 

就可以直接打開函數fun_name所在的文件,並將光標置於函數開頭



**12. vim在同一個窗口中同時編輯多個文件**
1) 如果在終端中開沒有打開vim,可以:
橫向分割顯示: -o
縱向分割顯示: $ vim -O filename1 filename2  
2) 如果已用vim打開1個文件,想在窗口中再打開另一個文件:
橫向分割顯示: :vs filename  
縱向分割顯示: :vsp xxx.c
[plain] view plain copy
\1. :sp filename  
**其中,vs可以用vsplit替換,sp可以用split替換。**如果finename不存在,則會新建該文件並打開。
3) 關閉窗口
關閉光標所在的窗口: :q  #或  :close  
關閉除光標所在的窗口之外的其他窗口: :only  
關閉所有窗口: :qa  
***\*4) 切換窗口\****
打開了多個窗口,需要在窗口之間切換時:
ctrl + w w : 即按住ctrl鍵,再按兩下w鍵。

或者ctrl + w <h|j|k|l> :即按住ctrl鍵,按一次w鍵,再按一次表示方向的h或j或k或l,則光標會切換到當前窗口的 左|下|上|右 側的窗口



**13. 使用vi打開編輯多個文件;** 
打開一個文件: vi 文件名
然后在vi的命令輸入狀態下輸入
:sp 另外一個文件的路徑及文件名,如此就可以在一個窗口打開多個文件了。


或者用vi -o file1 file2 file3....用分割屏幕窗口方式同時打開多個文件。

可以使用 ctrl + 兩次按 w 或者ctrl + w然后按上下鍵在上下窗口間切換。



**14. 在多個文件間復制粘貼內容**
vi多文件時,文件之間的拷貝復制只能通過命名緩存進行,如:
"a3yy  把3行內容復制到命名為a的緩沖區
"ap 把名字為a的緩沖區內容拷貝到當前位置
(注意:此時,不是輸入冒號,而是輸入“)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM