如何將vim打造成Linux下的source insight

来源:http://www.cnblogs.com/longshike2010/archive/2016/01/06/5104240.html
-Advertisement-
Play Games

編寫者:龍詩科郵箱:[email protected] 眾所周知,windows下的source insight是閱讀項目代碼的神器,其神奇之處在於可以根據當前滑鼠所指的函數名或者變數,來進行全局搜索該函數或變數的定義,而且還會顯示出哪些文件中同樣含有該函數定義,另外可....


編寫者:龍詩科

郵箱:[email protected]

2016-01-06

     眾所周知,windows下的source insight是閱讀項目代碼的神器,其神奇之處在於可以根據當前滑鼠所指的函數名或者變數,來進行全局搜索該函數或變數的定義,而且還會顯

示出哪些文件中同樣含有該函數定義,另外可以顯示當前文件中的變數和函數列表。因此特別適合在windows下用source insight 來進行大項目代碼閱讀和管理。但是Linux下不能

安裝source insight,而vim和Emacs是linux下編輯代碼的神器,其vim的功能可以通過一系列的插件來擴展,很方便,且都是開源的,通過一下午的折騰,終於完成了簡單而又強

大的vim環境搭建,當然自己為了培養碼農能力,並沒有安裝代碼補全的功能插件,折騰之後的效果圖如下:

    

    我用的ubuntu14.03LTS版本,之所以沒有用14.10是因為國內的很多軟體源都不支持該版本的升級,當你安裝好了ubuntu之後,預設已經安裝了vi,這時候,你自己先得安裝

vim,在終端輸入以下命令即可:

    

sudo apt-get install vim

    這時,你可以用以下命令來檢測是否安裝成功:

vim --version

    然後就是安裝插件了,這裡主要參考了以下三個博客文章:

    將你的Vim打造成輕巧強大的IDE

    改造vim編程source insight

    Vim Taglist插件的安裝與配置

    安裝插件之前,首先要安裝ctags,因為插件Taglist是以tags文件為基礎的,需要ctags來生成tags文件。ubuntu下安裝ctags只要在終端輸入以下命令即可:

    

sudo apt-get install ctags

   然後,我是按照以下順序來安裝vim的插件的:

  1.    Taglist插件

      Taglist插件的效果就如上圖左上角視窗,該視窗顯示當前文件中的變數和函數,首先去網上地址下載Taglist插件,下載之後解壓taglist_45.zip,裡面有兩個目錄,分別為doc

plugin,分別將兩個目錄下的文件複製到vim目錄裡面的doc和plugin即可,這個操作你需要先找到解壓的文件,然後在終端輸入:

cp doc/taglist.txt /usr/share/vim/vim74/doc/
cp plugin/taglist.vim /usr/share/vim/vim74/plugin/

   同時你可以設置自己的vim參數,在終端輸入:

  

vim ~/.vimrc

   在該文件中輸入:

   

//語法高亮
syntax on

//顯示行號
set number

//自動縮進與C語言風格縮進
set autoindent
set cindent

//縮進寬度
set tabstop=4
set softtabstop=4
set shiftwidth=4
//建議開啟expandtab選項,會自動將tab擴展很空格,代碼縮進會更美觀set expandtab

//switch case 對齊風格
set cino=g0,:0

//設置 taglist

let Tlist_Show_One_File=1   //只顯示當前文件的tags
let Tlist_WinWidth=30        //設置taglist寬度
let Tlist_Exit_OnlyWindow=1  //tagList視窗是最後一個視窗,則退出Vim
let Tlist_Use_Left_Window=1 //在Vim視窗左側顯示taglist視窗    

     2.   SrcExpl 插件

     該插件就是可以進行搜索功能,是如圖中下麵的框,可以去網上地址進行下載,安裝過程跟Taglist插件一樣,將兩個目錄下麵的文件複製到vim的doc和plugin下麵即可,然後

修改自己的vim下的.vimrc文件,該如何修改,該開源插件給出了具體例子,可以參考其官方開源地址

     3.  Trinity插件

     該插件含有NERD_tree.vim和trinity.vim。

     NERD_tree是實現圖中最右邊的功能框。就是實現文件樹這個功能,而這個Trinity的文件下有一個trinity.vim,是實現三個功能框快速開關的功能。可以從網上地址進行下

載。把這個文件解壓後會有NERD_tree.vim  trinity.vim這兩個插件,直接複製到vim安裝目錄下的plugin文件夾下即可,然後再修改/.vimrc文件。如何修改可以參照其官方的github網址

     修改完之後的效果就是F8打開關閉所有的功能框,F9打開關閉SourceExplorer功能框,剩下的都是相關的鍵控制相關的功能框。可以自己定義功能鍵。F10另一個功能就是更

ctags的內容,如果更改了代碼保存後按下F10更新ctags。當然如果再加上set mouse=a  就可以再vim下使用滑鼠了。

     這時你先在工程目錄下執行ctags -R後,再用vim打開一個文件,按下F8(打開所有的功能框),試一試是不是和source insight一樣了。

     要去到預覽框中的文件直接在預覽框中雙擊滑鼠,要返回就按空格鍵。

     至此,就可以實現如圖所示的效果了。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Quartz.NET是一個被廣泛使用的開源作業調度框架 , 由於是用C#語言創建,可方便的用於winform和asp.net應用程式中。Quartz.NET提供了巨大的靈活性但又兼具簡單性。開發人員可用它快捷的創建並執行一個自動化作業。Quartz.NET有很多特征,如:資料庫支持,集群,插件,.....
  • 關於一隻菜鳥的第一篇博客、請大家多多指教!給予指導和意見!無圖無真相,效果圖如下:為了實現在gridcontrol插入一列checkbox,並通過表頭的checkbox實現全部選中以及全部不選的效果;我參考了很多博客,終於用清爽的代碼提煉出了我想要的清晰效果;1. 表頭的實現: 用了一個數據模板實....
  • 要說,這也是一個很簡單的功能,沒必要開一篇博客這麼大動干戈。 對於一張知道全路徑的照片,如果其路徑包含尾碼名的話,要取得尾碼名,只需要一行代碼即可:1varext = System.IO.Path.GetExtension("C:\\soar.jpg");可是,如果這個文件的文件名不包含尾碼怎麼辦?...
  • 1.gzip, zcat[root@linux ~]# gzip [-cdt#] 檔名參數: -c :將壓縮的數據輸出到屏幕上,可透過數據流重導向來處理; -d :解壓縮的參數; -t :可以用來檢驗一個壓縮檔的一致性~看看檔案有無錯誤; -# :壓縮等級,-1 最快,但是壓縮比最差、-9 最慢,但...
  • 編寫者:龍詩科 郵箱:[email protected] gdb 是Linux 下預設的調試工具,當編譯一個程式文件時,如debug.c,要應用gdb調試,必須在終端命令前添加 cc -g或者gcc -g,則編譯debug.c可以用以下命令來得到gcc -g -o d.....
  • uptime命令回顯中的load average所表示的意思和w命令相似,都是表示過去的1分鐘、5分鐘和15分鐘內進程隊列中的平均進程數量。 這裡需要註意的是load average這個輸出值,這三個值的大小一般不能大於系統邏輯CPU的個數,例如,本輸出中系統有4個邏輯CPU,如果loa...
  • /*-----------------------------前奏-----------------------------------*/mcu型號s6e1c32c(48pin)、s6e1c32b(32pin)本次調試:uart0【與SWD 管腳復用】由於在啟動文件中 :跳轉到SystemInit...
  • 之前安裝Ubuntu時,給/boot單獨分了個區,200M...在內核不斷升級之後,這個區域越來越小,導致無法安裝系統更新...然後想到刪除不用的舊內核1. 查看系統現在使用的內核版本uname -a2. 查看系統中已有的內核dpkg --get-selections | grep linux3. ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...