vim和source insight使用對比

從2019年開始,比較多的使用了vim,之前一直是source insight用的多。爲什麼突然vim用的多了呢?因爲某些外部因素,公司開始逐步不讓用source insight了,再加上代碼庫的編譯都是在Linux機器上,直接在SSH到Linux服務器上修改編譯比較方便。

先說說source insight的使用體驗。對於C/C++項目,source insight看代碼非常的方便。找文件、找符號、模糊搜索、添加書籤、看函數調用圖(這個尤其贊)都十分的方便,寫代碼的智能提示雖說不像VS之類的IDE一樣那樣精準但也夠用。缺點就是文本編輯體驗比較一般,並且只支持Windows平臺,自由度比較低。總體來說,source insight適合Windows下看代碼,學習成本很低,不同的場景使用自己可使用的合適的工具高效的完成工作,這就是好的,沒必要偏執。

接下來重點說說vim的使用體驗。vim用熟練了,寫代碼會有一種行雲流水的感覺,腦子裏想的修改可以快速反應到對應代碼的修改上,快速找到要修改的點,組合操作快速修改成自己想要改成的內容,可以說在某種程度上提高了寫代碼的體驗,讓寫代碼變得更爽。

vim有一定學習成本,但是這個投資絕對是值得的,熟練後編輯代碼和配置等各種文本的速度會提升很多,大多數的Linux發行版中vim都是內置的,而且很多命令的操作模式都是集成vim的,各種IDE都有VIM插件。學習vim最好的方法就是先用起來再說,然後結合自己的使用場景,看幫助,查資料,不斷優化自己的操作方法,總結出自己的使用經驗。之前自己還寫過兩篇入門的小總結:

vim是多模式設計,不同模式下各種組合可以完成很多的複雜操作,熟悉了這種組合操作後,編輯效率會提高很多。入門階段,最好把vim help中的前5章好好看看,英文幫助可以很好的說明對應快捷鍵的含義,方便記憶,比如cw就是change word。下面說說自己平時的一些使用經驗:

一些通用編輯技巧:

  1. 多使用原生的快捷鍵。不要自己改太多的特殊鍵位,免的換臺機器就不會操作了。很多人會映射ESC鍵,我剛開始也想着這麼做,但是經過一段時間的練習,發現左手無名指按ESC完全沒問題,ctrl 鍵使用左手手掌來按,手型不用變得太多,很快就能適應。
  2. 多用ctrl+p智能聯想,已經輸入過的單詞,在ctags數據庫裏的符號都可以聯想出來。這個功能很強大,在終端下操作一定要學會多用這個可以大幅提高效率。
  3. 多用.操作,這個是重複前面的操作。前面來了一通複雜操作,光標移到特定位置,直接按.重複非常方便。
  4. 快捷鍵也不需要記得特別多,常見場景下最常見最方便記住就行。比如跳到行首按0就行,行內搜索用f鍵。
  5. visual模式要和各種跳轉配合起來,會更方便的選中然後進行刪除修改等操作。比如解決git衝突時,先走索跳轉^<<然後,然後V選中行,在搜索跳轉到^===,就選中了衝突的部分;/x然後跟方向鍵可以聯想歷史所有x開頭的輸入過的搜索。選中後,p直接粘貼覆蓋,c直接刪除並且切換到插入模式,等等。
  6. 多文件操作。當前文件下,執行:e filename 新開一個buffer打開一個文件,可以用e +enc=gbk指定編碼,:ls可以看打開了多少文件,:b xx可以跳轉過去,跳轉指定的xx時可以用tab聯想。跳轉buffer前需要保存當前文件的修改,set autowrite可以自動保存修改。關掉buffer命令bd,表示buffer delete。根據縮寫聯想完整單詞,有利於記憶。還有多標籤tabe xx,用gt來切換。個人比較喜歡用多buffer一些,寫代碼時當前屏幕就是當前文件。
  7. 居中當期那行。zz居中當前行到屏幕;
  8. 選中後自動縮進==,這個對很多類型的文件都支持;

一些寫C/C++代碼的技巧:

  1. 安裝一下 ctags 和 cscope,這兩個插件非常常見也很好安裝。ctags看定義ctrl+],cscope看引用,跳轉到定義或者引用後可以ctrl+o跳回來,ctrl+i是往前跳。這個是基本的使用命令ctags -R --extra=f;cscope -Rb,在項目的根目錄下執行。看代碼不要進到具體的目錄,在根目錄啓動vim,vi -t xx跳轉到符號xx,或者打開後:tj xx跳轉。
  2. 一般IDE寫代碼都有智能提示,對於VIM,有對應的YouCompleteMe插件,不過這個插件安裝配置比較麻煩。那麼如果沒有這個YCM插件,那麼就用好分屏:vs豎着分兩屏,sp橫着分屏,在一個分屏寫代碼,另一個分屏看相關的代碼或者結構體定義、函數聲明等就,寫代碼腦子裏也適當多記憶一些,不要太依賴智能提示了。
  3. 遍歷目錄。直接:e .是打開了當前目錄,:e %:h看打開的當前文件的目錄,可以比較方便的分析同級目錄下的其他文件,e: %r.h看當前文件的本地同名頭文件。跳到系統頭文件位置,光標放在頭文件的文件名處,gf表示go file跳轉到文件。
  4. 用好grep和copen。有時候找代碼,grep搜索很方便。在vim中首先:grep xxx -r dir,然後:copen就會有quickfix list了,ctrl+w兩次跳轉到分屏的quickfix list, 然後回車跳轉到對應文件,配合ctrl+ictrl+o的前後跳轉很方便。如:在.c和.h中搜內容grep -Ir --include "*.[ch]" "xx"就可以指定目錄在指定類型文件中搜索了。在命令模式下拷貝光標所在單詞是ctrl+r ctrl+w組合,十分好用,記住用左手手掌部分按ctrl。退出當前窗口直接:q即可,退出其他分屏只保留當前用:only命令;
  5. 粘貼。設置:set paste, 然後粘貼外部剪切板的內容,這樣就不會有因爲自動縮進而導致的格式混亂了,關閉用set nopaste
  6. 關閉行號。有時候需要複製內容到外部,不需要行號,set nonu快速關閉行號顯示,set nu再顯示回來。
  7. 關閉高亮。經常會*鍵,高亮搜索光標所在的單詞,set noh關閉高亮,下次再次搜索又會高亮了。
  8. 摺疊函數。選中vi{表示選中大括號內內容,然後zf摺疊選中部分,zo打開選中部分。

把VIM高效的用起來,並不需要多複雜的配置,也不需要很多複雜的插件。要做到隨便SSH到一臺Linux服務器,稍微修改下vimrc就可以高效的展開工作。配置和操作上的優化可以隨着自己碰到的使用場景而逐步完善。

發佈了140 篇原創文章 · 獲贊 162 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章