android開發之VIM快捷鍵使用指南

android的代碼包括JAVA,C,C++和各種腳本,算起來有十幾萬個文件,閱讀,編輯,使用這些代碼,需要尋找一款合適的軟件才能事倍功半。運行在WINE模式下的source insight工具不僅反應很慢,而且有很多符號在閱讀時根本就不會跳轉,令人非常困惑。因此我們大部分人只能入鄉隨俗,要麼使用eclipse,要麼使用VIM或者EMACS.VIM和EMACS作爲linux下的兩大編輯神器,對於從WIN轉過來的朋友來說,還是比較富有挑戰性的,關健在於習慣。他們都能通過命令行和快捷鍵完成所有工作,而且可以通過插件無限擴展,兩者的區別在於,一個更接近DOS,所有操作快捷卻對鼠標支持不是很好。一個和WIN比較接近,對鼠標支持比較好。但聽說這兩大陣營斗的正醋,宛如當年基督教與新教的鬥爭。也許需要兩個都試試才能決定自己加入哪個陣營。在android的develop目錄的IDE目錄下,可以找到android對一些流行編輯器提供的配置文件。

作爲一個典型的WIN用戶,其實我們是無法理解這兩大神器的。從WIN角度來說,一個好的軟件應該需要達到不使用說明書就能操作的地步。但我們的linux同行顯然不這麼認爲,感覺似乎速度,效率,命令的支持纔是一個軟件的魅力的源泉。所以我們只能入鄉隨俗,學習一個軟件,先讀他的說明書,背會他的快捷鍵和命令行。

確切的說,VIM有三種狀態,快捷鍵狀態,命令行狀態,編輯狀態。通過快捷鍵ESC切換。但大部分書都會把命令行和快捷鍵歸入一種狀態,所以常常說是兩種狀態,這也不錯,快捷鍵和命令有時確實不太容易分清,一般來說,快捷鍵不需要回車確認,就會自動執行。

VIM的學習應該分幾步,第一步是命令,快捷操作掌握。第二步是使用各種插什,第三步是編寫自己工作需要的環境腳本文件.vimrc

下面列出我剛開始學習時總結的快捷鍵:

  1. 跳轉,區分大小寫,加shift的是大寫:  
  2. 1,上下左右箭頭 hkjl上下左右移一個字符  
  3.   退格,左移一字符  
  4.   空格,右移一個字符  
  5. 2.Ctrl-f往下滾動一屏  
  6.   Ctrl-b往上滾動一屏  
  7. 3.Ctrl-U往上滾動半屏  
  8.   Ctrl-D往下滾動半屏  
  9. 4.Shift+h頂部第一行字符起始,也即大寫H  
  10.   Shift+m中間  
  11.   shift+l底部最後一行起始  
  12. 5.^,0當前行起始  
  13.   $,當前行尾  
  14. 6.~光標上一行首  
  15.   Enter下一行首  
  16. 7.[n]G。指定行,500G,到500行  
  17.   gg 跳到文章開頭  
  18.   shift+g 跳到文章末尾  
  19. 8.Ctrl-E內容整體上移一行  
  20.   Ctrl-Y內容整體下移一行  
  21. 9.(){} 完整句子句首,完整句子句尾,完整段落首位置,完整段落尾位置  
  22. 插入,記下a,i,使用跳轉也行:  
  23. a,光標之後插數據  
  24. A,光標行尾插數據(即shift+a)  
  25. i,光標之前插數據  
  26. I, 光標行首插數據(即shift+I)  
  27. o.所在行之後  
  28. O,所在行之前(即shift+o)  
  29.   
  30. 修改替換,記了C或者R,其他也能使用跳轉  
  31. shift+c 替換從光標開始的字符  
  32. cw 替換單字  
  33. [n]cc 替換行,n行,n>=1  
  34. [n]s  
  35. shift+s  
  1. r替換一個  
  2. R替換多個  
  3. ~轉換大小寫  
  4. 撤消  
  5. u撤消先前執行的  
  6. U撤消全部  
  7. 刪除,記個x,不停的按就行了  
  8. [n]x刪除當前單個字符  
  9. [n]X刪除前一個字符  
  10. dw  
  11. [n]dd 刪除N行  
  12. D刪除行尾  
  13. 複製刪除粘貼  
  14. yy,Y複製  
  15. p光標行下  
  16. shift+P光標行上面  
  1. EX命令,上面的大都是快捷鍵,下面的大都是命令。  
  2. 多行復制:  
  3. :line#1, line#2 co line#3 從某行#1開始到某行#2結束內容複製到某行#3之後  
  4. .當前行,$文件結尾  
  5. 移動:  
  6. :line#1, line#2 m line#3 從某行#1開始到某行#2結束內容複製到某行#3之後  
  7. 刪除:  
  8. :line#1, line#2 d  
  9. 查找:  
  10. :str 正向查找  
  11. :?str 反向查找  
  12. n 或者 /從當前位置開始檢索下一個,相當於F3  
  13. shift+n 或者 ?從當前位置開始反向檢索下一個,相當於shift+F3  
  14. :/pat/+n 光標移到pat所在行之後第n行  
  15. :/pat?+n 光標移到pat所在行之前第n行  
  16. 模式檢索:  
  17. :/^search 只檢索行首位置  
  18. :/serch$ 只檢索行尾  
  19. :/\<search\>   
  20. 支持通配符.*,[a-z],[dm]  
  21. 替換字符串:  
  22. :[g]/search-staring/s//replace-string/[g][c]  
  23. 如:g/BankA/s//BankB/g  
  24. 如果需要手動確認,加個C:  
  25. g/BankA/s//BankB/gc  
  26. 編輯多個文件:  
  27. vim file1 file2  
  28. 合併文件:  
  29. :line# r filename 把讀取的文件插入當前光標位置  
  30. 刪除特殊字符:  
  31. 1,$ s/^M//  
  32. VIM裏運行shell命令:  
  33. :!command  
  34. !!command  
  35. :sh  
  36. 如:!adb devices  
  37. !!adb devices  
  38.   
  39. 保存文件退出  
  40. :w  寫入不退出  
  41. :w! 強制寫入  
  42. :wq  寫入退出  
  43. :wq! 寫入強制退出  
  44. ZZ 寫入退出,使用shift+兩次ZZ  
  45. :q  退出  
  46. :q! 強制退出  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章