首先說明,vi 和 vim 是兩個不同的版本,vi是 vim 的精簡版本,功能要弱很多,所以如果你的系統裡面只有 vi,請執行apt install vim
命令更新到 vim,而且最好更新到 8.0 版本。
如果你系統裡面沒有安裝 vim,你開啟 vi,看到的應該是下面這樣的。
安裝 vim 後,你開啟 vim,看到的介面是這樣的。
注意區分。
ctags 的作用是掃瞄工程中的**,為**中定義的函式、變數生成乙份 tags 資料庫檔案,然後我們用 vim 瀏覽**的的時候,當游標移動到某個函式或者變數上,只要按下 ctrl + ] 組合按鍵,就會自動跳轉到這個函式或者變數定義地方。
ctag 目前有兩個版本: exuberant-ctags 和 universal-ctags,exuberant-ctags 比較老,目前已經停止維護, universal-ctags 則是新版本,一直在更新,功能更強大,支援的語言也更多,所以這裡安裝新版本。
git clone
cd ctags
git checkout 61cc66cf
sudo apt install gcc make pkg-config autoconf automake python3-docutils
libseccomp-dev libjansson-dev libyaml-dev libxml2-dev
./autogen.sh
./configure
make
sudo make install
目前只能通過編譯原始碼的方式安裝,而且我發現最新的**有問題,所以回退到了乙個可用的版本。
ripgrep 是乙個超級強大的命令列搜尋工具,看名字就知道,它是來挑戰 grep 的,它確實比 grep 好用,強大、簡單,目前在 github 上超過了一萬六千個 star,可見其受歡迎程度。我現在基本用它來代替了 grep 命令。vim 裡面也可以用它來結合 leaderf 插鍵搜尋函式和變數。
curl -lo
sudo dpkg -i ripgrep_11.0.2_amd64.deb
curl -flo ~/.vim/autoload/plug.vim --create-dirs
vimrc 是 vim 配置檔案,通過它可以定製各種 vim 特性。
配置比較精簡, 之簡單解釋兩個地方:
第一部分:安裝了四個外掛程式,這四個外掛程式都是 github star 量非常高的開源專案。
在命令列輸入vim
然後回車。
在 vim 介面輸入: plugstatus
,回車,可以看到所有的外掛程式都處於未安裝狀態
在 vim 介面輸入:pluginstall
, 回車,開始安裝插鍵。
安裝完成後在 vim 介面再輸入: plugstatus
,回車,可以看到所有韌體已經處於 ok 狀態。
在 linux kernel 的根目錄下建立乙個 .root 資料夾:
可以看到,這裡面不用輸入準確的檔案名字,只需要部分關鍵字,匹配度最高的檔案出現在最上面,還可以通過ctrl + j 或者 k 上下移動游標, 來選擇檔案,很高效吧,這是通過 leaderf 的模糊匹配演算法實現的。
游標移動到函式syscon_regmap_lookup_by_phandle
,按 ctrl + ] 組合鍵,就跳到這個函式原型處,按ctrl + o 組合鍵返回。
vim 通過 j k 兩個鍵上下移動游標。
按ctrl + j 或者 k 上下移動游標, 來選擇檔案,這裡選了atmel-ebi.c 這個檔案,然後敲 enter
鍵跳過去。
這裡直接用了leaderffunction
這個命令,也可以定義成快捷鍵。
十分鐘教你配置frp實現內網穿透
十分鐘教你配置frp實現內網穿透 一 frp的作用 二 配置說明 1 實現功能 1 外網通過ssh訪問內網機器 2 自定義繫結網域名稱訪問內網web服務 2 配置前準備 1 公網伺服器1臺 2 內網伺服器1臺 我這裡演示的是linux環境,win10上面vmware安裝的centos7 3 公網伺服...
十分鐘教你配置frp實現內網穿透
十分鐘教你配置frp實現內網穿透 一 frp的作用 二 配置說明 1 實現功能 1 外網通過ssh訪問內網機器 2 自定義繫結網域名稱訪問內網web服務 2 配置前準備 1 公網伺服器1臺 2 內網伺服器1臺 我這裡演示的是linux環境,win10上面vmware安裝的centos7 3 公網伺服...
十分鐘教你配置frp實現內網穿透
十分鐘教你配置frp實現內網穿透 一 frp的作用 利用處於內網或防火牆後的機器,對外網環境提供 http 或 https 服務。對於 http,https 服務支援基於網域名稱的虛擬主機,支援自定義網域名稱繫結,使多個網域名稱可以共用乙個80埠。利用處於內網或防火牆後的機器,對外網環境提供 tcp...