日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

【Linux】【开发环境】【RHEL】开发环境搭建系列之十一——Linux系统下搭建基于vim的C/C++ IDE开发环境

發布時間:2023/12/8 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Linux】【开发环境】【RHEL】开发环境搭建系列之十一——Linux系统下搭建基于vim的C/C++ IDE开发环境 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

環境

  • vim:8.2
  • RedHat:Red Hat Enterprise Linux Server release 7.7 (Maipo)
  • plug.vim

vim管理的基礎

.vimrc,vim配置文件

  • Vim 啟動時,會根據配置文件(.vimrc)來設置 Vim,因此我們可以通過此文件來定制適合自己的 Vim。
  • Vim 配置文件分為系統配置文件和用戶配置文件:
    – 系統配置文件位于 Vim 的安裝目錄(默認路徑為 /etc/.vimrc);
    – 用戶配置文件位于主目錄 ~/.vimrc,即通過執行 vim ~/.vimrc 命令即可對此配置文件進行合理修改。通常情況下,Vim 用戶配置文件需要自己手動創建。
    – Vim 用戶配置文件比系統配置文件的優先級高。
  • vim配置文件除了做一些全局配置外,如編碼格式(fileencodings)、行號(number)等外,還可配置vim插件的情況;

.vim目錄

  • vim插件安裝之后,在用戶目錄之下的.vim文件夾之下有了相應的插件所對應的文件夾,每一個文件夾下面或者是子文件夾之下都存在一個 xxx.vim的文件;xxx.vim文件的本質就是腳本,因此在啟動vim的時候會加載這些腳本文件,正是這些腳本的存在,才讓我們可以自定義vim;
  • vim的插件的本質是腳本
  • Vim啟動時或加載緩沖區時會遍歷“runtimepath”。該設置是一組以逗號分隔的目錄列表,各個目錄的結構都是一致的。Vim會檢查每個目錄的結構,找到需要運行的腳本,并按照目錄在列表中的順序一一處理,其中就包括.vim文件夾;
  • 在我自己環境上執行的例子:
runtimepath=~/.vim,/usr/local/share/vim/vimfiles,/usr/local/share/vim/vim82,/u sr/local/share/vim/vimfiles/after,~/.vim/after
  • vim 自身是通過在 .vim/ 目錄中預定義的子目錄管理所有插件;

vim插件管理機制

傳統的vim plug管理方式

  • 安裝:
    要安裝一個插件,首先要從網絡上下載下來,然后解壓、并放在~/.vim/下合適的目錄中,如plugin、syntax、ftplugin等。
  • 升級:
    經常使用的一些插件,可能需要過一段時間去vim.org上面看看有沒有新的版本,如果有的話,使用和安裝相同的方式來解壓覆蓋,從而完成更新工作。
  • 卸載:
    相對于安裝和更新,這個就比較麻煩了,尤其是你有太多的插件的話,你無法確定某個插件到底安裝了哪些文件,最壞的情況下,你可能需要下載一個原始版本來做參考,然后從你的~/.vim/目錄中把它們刪除干凈。
  • 多臺電腦保持同步:
    通常的方法是把原來的~/.vim目錄做個備份,然后在需要的時候把它整個復制過去。時間長了,這會產生問題,如果兩臺電腦中都做了修改(分別安裝了不同的插件或更新了某個插件),這時將無法準確的保持同步。

新vim插件管理方式

  • 借助第三方插件管理軟件,如vim-plug、vundle等,自動維護(安裝、卸載、更新等).vim目錄下的不同插件;

使用vim-plug來安裝管理相關插件

下載vim-plug

# 法1 cd ~/.vim/autoload || mkdir ~/.vim/autoload && cd ~/.vim/autoload &&wget plug.vim https://github.com/junegunn/vim-plug/blob/master/plug.vim # 法2 cd ~/.vim/autoload || mkdir ~/.vim/autoload && curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

plug.vim中的注釋,有vim-plug的用法說明,可參考: vim ~/.vim/autoload/plug.vim

在.vimrc中配置vim-plug部分

sudo vim ~/.vimrc #加入下面兩行: call plug#begin('~/.vim/plugged') call plug#end()

.vimrc文件中配置插件(以Nerdtree為例來說明)

  • 找到對應插件的github地址,如nerdtree的為:

https://github.com/scrooloose/nerdtree

  • 在.vimrc中,call plug#begin()和call plug#end()之間加入需要安裝的插件
call plug#begin('~/.vim/plugged') #路徑對應本地安裝插件的目錄(目前默認會安裝到~/.vim/plugged目錄中),可自行修改; Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } #NERDTreeToggle表示按需加載 call plug#end()```

scrooloose/nerdtree和github的路徑是對應的,后面安裝的時候,會自動到github上去下載相應插件。

使 .vimrc配置生效

通過輸入以下命令重新加載:

:source ~/.vimrc

或重新加載 Vim 編輯器。

使用vim-plug安裝vim插件

:PlugStatus #查看插件狀態; :PlugInstall #安裝所有插件(如果僅需安裝某個插件,后面接插件名即可);

安裝之后,可以查看下.vim目錄的整體布局:

[qxhgd@localhost .vim]$ tree ├── autoload │ └── plug.vim └── plugged└── nerdtree├── autoload│ ├── nerdtree│ │ └── ui_glue.vim│ └── nerdtree.vim├── CHANGELOG.md├── _config.yml├── doc│ ├── NERDTree.txt│ └── tags├── lib│ └── nerdtree│ ├── bookmark.vim│ ├── creator.vim│ ├── event.vim│ ├── flag_set.vim│ ├── key_map.vim│ ├── menu_controller.vim│ ├── menu_item.vim│ ├── nerdtree.vim│ ├── notifier.vim│ ├── opener.vim│ ├── path.vim│ ├── tree_dir_node.vim│ ├── tree_file_node.vim│ └── ui.vim├── LICENCE├── nerdtree_plugin│ ├── exec_menuitem.vim│ ├── fs_menu.vim│ └── vcs.vim├── plugin│ └── NERD_tree.vim├── README.markdown├── screenshot.png└── syntax└── nerdtree.vim11 directories, 29 files

使用vim-plug卸載vim插件

  • 在.vimrc注掉或刪除之前注冊應插件的plug 命令;
  • 運行:source ~/.vimrc 或重啟 Vim 編輯器;
  • 執行:PlugClean即可;

使用vim-plug更新vim插件

  • 執行:PlugUpdate即可(如果需要更新某個插件,后面接插件名即可);

操作/使用vim插件的幾種方式

  • vimrc中注冊插件時候的配置插件的選項:
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } #NERDTreeToggle表示按需加載
  • 在vimrc文件中增加配某插件相關的配置
" NERDTree map <C-n> :NERDTreeToggle<CR> " map 是快捷鍵映射命令 " <C-n> 定義了快捷鍵,表示 Ctrl-n "后面是對應的命令以及回車鍵<CR>
  • 在vim中直接輸入插件相關命令
命令說明
:NERDTree打開目錄樹
:NERDTreeClose關閉目錄樹
:NERDTreeToggle打開/關閉目錄樹
:NERDTreeFind打開目錄樹并定位到當前文件
  • 快捷鍵
和編輯文件一樣,通過h j k l移動光標定位 打開關閉文件或者目錄,如果是文件的話,光標出現在打開的文件中 go 效果同上,不過光標保持在文件目錄里,類似預覽文件內容的功能 i和s可以水平分割或縱向分割窗口打開文件,前面加g類似go的功能 t 在標簽頁中打開 T 在后臺標簽頁中打開 p 到上層目錄 P 到根目錄 K 到同目錄第一個節點 J 到同目錄最后一個節點 m 顯示文件系統菜單(添加、刪除、移動操作) ? 幫助 q 關閉

相關管理插件/插件匯總

vim管理插件發展史

2006年3月- 2014年7月:Vimball(分發格式和關聯的Vim命令)

2008年10月- 2015年12月:Pathogen(由于原生vim包被棄用)

2009年8月- 2009年12月:Vimana

2009年12月- 2014年12月:VAM

2010年8月 - 2010年12月:Jolt

2010年10月 - 2012年12月:tplugin

2010年10月 - 2014年2月:Vundle(在NeoBundle破解代碼后停止使用)

2012年3月 - 2018年3月:vim-flavor

2012年4月 - 2016年3月:NeoBundle(被棄用,建議使用dein)

2013年1月 - 2017年8月:infect

2013年2月 - 2016年8月:vimogen

2013年10月 - 2015年1月:vim-unbundle

2013年12月 - 2015年7月:Vizardry

2014年2月 - 2018年10月:vim-plug

2015年1月 - 2015年10月:enabler

2015年8月 - 2016年4月:Vizardry 2

2016年1月 - 2018年6月:dein.vim

2016 年 12 月-至今,spacevim

2016年9月 - 至今:原生Vim 8

2017年2月 - 2018年9月:minpac

2018年3月 - 2018年3月:autopac

2017年2月 - 2018年6月:pack

2017年3月 - 2017年9月:vim-pck

2017年9月 - 2017年9月:vim8-pack

2017年9月 - 2019年5月:volt

2018年9月 - 2019年2月:vim-packager

2019年2月 - 2019年2月:plugpac.vim

常用插件

智能補全類

  • YouCompleteMe,大名鼎鼎的YCM,它是?個快速、即輸即查、模糊搜索的Vim代碼完成引擎。它實際上有好?個完成引擎組成:
  • deoplete.nvim,是一款自動補全的引擎,具體對某種編程語言的自動補全支持,要安裝對應的source 才能真正工作;
  • coc.nvim,其本身并不具備代碼補全功能,要想完成代碼補全,還需安裝其他相應語言的 LSP 插件。因此 coc.nvim其實是一個能加載其他插件的 Vim 插件;
  • neocomplete,為 vim 提供智能提示功能,將 vim 改造成強大的IDE;
  • nerdcommenter,Vim 下高效率添加注釋(或取消注釋)的插件;

文件管理類

  • nerdtree,列出當前路徑的目錄樹,一般IDE都是有的。可以方便的瀏覽項目的總體的目錄結構和創建刪除重命名文件或文件名;
  • winmanager是vim下管理窗口的插件,整合了nerdtree和taglist,可以管理文件瀏覽器、緩沖區、taglist等窗口;

符號及跳轉類

  • CTAGS,掃描指定的源文件,找出其中所包含的語法元素,并將找到的相關內容記錄下來,有Universal Ctags,Exuberant-ctags等;
  • GTAGS(GNU GLOBAL)是一套源代碼標記系統,使用它可以定位數據結構,函數,宏等等,并且可以方便地跳轉;
  • CSCOPE是類似于ctags一樣的工具,但可以認為它是ctags的增強版,因為它比ctags能夠做更多的事,還可以用來代碼查找和定位代碼。GTAGS和 CSCOPE、CTAGS功能有部分重疊的地方,一般使用CTAGES/GTAGS生成代碼符號數據庫,使用CSCOPE命令來實現快捷地跳轉;
  • taglist,支持taglist窗口,從中可以看到在c文件中定義的所有tag,如宏、定義、變量、函數等;也可以雙擊某個tag,跳到該tag定義的位置;還可以把某一類的tag折疊起來;

代碼搜索類

  • RP(rip grep):增強grep來實現文本搜索的工具,特點就是速度非常快;
  • Fzf(fuzzy finder):模糊查找的工具,其優點是用戶可以不用記住精確的信息就可以查到對應的代碼;
  • ctrlp是一款支持對文件、緩沖區( :CtrlPBuffer )、MRU(Most Recently Used)文件( :CtrlPMRU )和標簽進行模糊搜索/查找的Vim插件;

實際應用時,可根據需要自由組合,如Vim+Cscope+Gtags+YouCompleteMe+Rg+Fzf這種。

vim相關命令

vim安裝相關

# 0-查看vim版本: vim --version | head -n 1 #1 vim的升級 # 1.1 從源碼升級vim版本: yum install ncurses-devel wget https://github.com/vim/vim/archive/master.zip unzip master.zip cd vim-master cd src/ ./configure make sudo make install vim vim --version # 查看當前版本# 1.2 yum升級vim版本到最新: sudo yum update -y vim* #實驗證明無法升到vim8

vim環境相關操作

  • vim環境的命令
:scriptnames #查看vim加載時加載了那些插件 :set all #查看環境配置參數 :set runtimepath #查看運行時加載的搜索路徑 :options #vimrc設置的全部選項
  • vim插件的runtimepath的內容說明
~/.vim #主目錄,保存個人偏好的文件。 /usr/local/share/vim/vimfiles3 #系統范圍的Vim目錄,保存由系統管理員決定的文件。 /usr/local/share/vim/vim82 #即$VIMRUNTIME,保存與Vim一起分發的文件。 /usr/local/share/vim/vimfiles/after #系統范圍Vim目錄中的“after”目錄。系統管理員可以利用該目錄來覆蓋默認設置,或添加新的設置。 ~/.vim/after #主目錄中的“after”目錄。可以利用該目錄用個人偏好覆蓋默認設置或系統設置,或添加新的設置。

vim-plug相關命令

:PlugStatus #查看插件狀態; :PlugInstall #安裝插件; :PlugUpdate #更新插件; :PlugClean #刪除插件,之前配合vimrc注掉或刪除對應plug 命令。然后,運行:source ~/.vimrc 或重啟 Vim 編輯器,最后執行PlugClean即可; :PlugUpgrade #升級vim-plug本身

參考資料

  • vim.org
  • vim
  • vimawesome
  • neovim
  • spacevim
  • vim-plug
  • Vundle
  • 24.3k star的vimrc配置
  • use_vim_as_ide
  • 你真的會裝vim插件嗎?【vim-plug】詳解
  • 使用Vim-plug作為Vim 插件管理器
  • vimjc
  • vim-directory-structure

如本文對你有些許幫助,歡迎大佬打賞:
支付寶及微信打賞方式

總結

以上是生活随笔為你收集整理的【Linux】【开发环境】【RHEL】开发环境搭建系列之十一——Linux系统下搭建基于vim的C/C++ IDE开发环境的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。