Vim配置之入門篇

2021-02-20 技術茶話會

正所謂「工欲善其事,必先利其器」,而作為一個專業的碼農,怎麼能不好好對待自己編程的利器-- VIM 編輯器呢!可能讀者會說編程的利器不應該是各種語言的集成工具麼?像編寫 C/C++ 程序的 VS,Codeblock(跨平臺)軟體,像編寫 Java 程序的 Eclipse(現在已經有支持 C/C++/Python 的插件),像編寫 Python 程序的 PyCharm 等。這些人性化的開發集成環境功能強大,使用方便。不過成也在此,敗也在此。本文將詳細介紹Vim編輯器以及其基本入門級配置。

簡介

正所謂「工欲善其事,必先利其器」,而作為一個專業的碼農,怎麼能不好好對待自己的編程利器-- VIM 編輯器呢!可能讀者會說編程的利器不應該是各種語言的集成工具麼?像編寫 C/C++程序的 VS,Codeblock(跨平臺)軟體,像編寫 Java 程序的 Eclipse(現在已經有支持 C/C++/Python 的插件),像編寫 Python 程序的 PyCharm 等。這些人性化的開發集成環境功能強大,使用方便。不過我覺得成也在此,敗也在此。

1.功能冗餘
現在編程的集成環境工具非常強大,但是很多功能我們都用不到,反而每次開啟都花費很長時間。所以集成環境並不適合專業的碼農。我們經常說適合自己的才是最好的,編程利器更是如此,畢竟它每天不離手。2.定製化太低 基本上每個集成開發工具都沒有留太多的定製空間給用戶,而用戶只能習慣軟體供應商提供的大眾化用法。對於熟悉多種語言的用戶而言,它得掌握多種開發集成環境,還不如用Vim解決所有。3.滑鼠和鍵盤的混合使用
其實這一點仁者見仁,智者見智吧。個人覺得高效編程還是需要手不離鍵盤的,要熟練掌握一些基本的快捷鍵的使用。

基本的 Vim 說白了就是一個文本編輯器,不過它的強大之處在於它龐大的插件。這些插件可以讓Vim能夠幹很多牛x的事,這跟 Google 瀏覽器有點像。像代碼補全,錯誤跳轉,高亮顯示等等,Vim 都有相應的插件來處理,用戶可以自行了解,自由組合。所以 Vim 的入門門檻還是蠻高的,主要是開始學得命令比較多,這裡有推薦個玩遊戲記命令的網址[1]以及Vim學習指南[2]。此外打造一個適合自己的 Vim 環境將會大大節約時間,是磨刀不誤砍柴工的。下面就來看看基礎入門級的Vim插件配置[3]。

基本配置

1.安裝 vim,scripts,doc

sudo apt-get install vim vim-scripts vim-doc

Tips:

•vim                  vim軟體,安裝目錄是/usr/share/vim•vim-scripts   vim的基本插件,包括語法高亮等,安裝目錄是/usr/share/vim-scripts•vim-doc         vim幫助文件,不過是英文版本的

2.中文幫助文檔

1.下載最新版本[4]的vim中文幫助文檔2.解壓 doc 文件夾到 ~/.vim 目錄下

3.配置 ~/.vimrc 文件 配置個性化的 .vimrc(不懂的命令可以用 :help command 查看中文幫助文檔)

實用插件

Vim 的插件很多,而且功能很強大,非常強大。官網的插件地址在這裡[5],不過它的很多插件[6]都轉移到 Github 上。

•ctags

ctags 可以建立源碼樹的標籤索引(標籤就是一個標識符被定義的地方,如函數定義),使程式設計師在編程時能迅速定位函數、變量、宏定義等位置去查看原形。

1.安裝 exuberant-ctags 工具

sudo apt-get install exuberant-ctags

    2.創建 C++ 代碼庫索引

1.下載 libstdc++[7] 頭文件,包含 C++ 中 STL,streams 等。2.解壓到 ~/.vim/tags 目錄後執行 ctags 命令

ctags -R --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++ cpp_src
mv tags ~/.vim/tags/cpptag

    3.在 .vimrc 中設置

set tags+=~/.vim/tags/cpptag

3.創建 Gcc 代碼庫索引

1.ubuntu 中安裝完 build-essential 後,會在 /usr/include/c++ 目錄下有 C/C++ 的頭文件。

sudo apt-get install build-essential

        2.拷貝 /usr/include/c++/4.8 裡的文件到 ~/.vim/tags/gcc 文件夾裡後執行 ctags 命令

cp -R /usr/include/c++/4.8 ~/.vim/tags/gcc
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q gcc
mv tags ~/.vim/tags/gcctag

       3.在 .vimrc 中設置

set tags+=~/.vim/tags/gcctag

•taglist

在屏幕右側出現的就是 taglist 窗口,從中可以看到文件中定義的所有 tag :宏、定義、變量、函數等;通過單擊某個 tag,可以跳到該 tag 定義的位置;也可以把某一類的 tag 摺疊起來,方便查看。

1.安裝 taglist

vim-addon-manager install taglist

        2.在 .vimrc 中配置

""""""""""""""""""""""""""""""""""
" 標籤列表的設置
""""""""""""""""""""""""""""""""""
" 啟動vim後,自動打開taglist窗口
let Tlist_Auto_Open=1
" 高亮顯示當前標籤列表中的標籤
let Tlist_Auto_Highlight_Tag=1
" 添加新文件後,標籤列表將自動更新
let Tlist_Auto_Update=1
" 顯示標籤域--類
let Tlist_Display_Tag_Scope=1
" 如果taglist窗口是最後一個窗口,則退出vim
let Tlist_Exit_OnlyWindow=1
" Taglist窗口裡可摺疊
let Tlist_Enable_Fold_Column=1
" 只顯示當前文件的標籤,摺疊其他文件的標籤
let Tlist_File_Fold_Auto_Close=1
" 多個文件間切換時,標籤列表也更新為當前文件
let Tlist_Show_One_File=1
" 標籤列表顯示在Buffer區的右邊
"let Tlist_Use_Right_Window=1
" 單擊標籤列表中的標籤將定位到標籤定義處
let Tlist_Use_SingleClick=1

        3.自定義快捷鍵說明

•<F10> 打開/關閉標籤列表

•winmanager

WinManager 用於管理文件瀏覽器和緩衝區(buffer)。2.0 以上版本的 WinManager 還可以管理其他 IDE 類型插件,不過要用戶在插件中增加一些輔助變量和 hook 來支持WinManager(幫助文檔有相關說明)。

1.安裝 winmanager

vim-addon-manager install winmanager

        2.在 .vimrc 中配置

""""""""""""""""""""""""""""""""""
" 文件管理器
""""""""""""""""""""""""""""""""""
" 進入vim後自動打開winmanager
let g:AutoOpenWinManager =1
" 設置要管理的插件
let g:winManagerWindowLayout='FileExplorer|TagList'
" 如果所有編輯文件都關閉了,退出vim
"let g:persistentBehaviour=0
" <F9>打開/關閉文件管理器
nnoremap <silent> <F9> :WMToggle<CR>

        3.自定義快捷鍵說明

•<F9> 打開/關閉文件瀏覽器

•minibufexplorer

MiniBufferExplorer 用於瀏覽和管理 buffer ,如果只打開一個文件,是不會顯示在屏幕上的,而打開多個文件之後,會自動出現在屏幕上。Vim 也有自帶的 buffer 管理工具,不過只有 :ls, :bnext, :bdelete 等的命令, 既不好用, 又不直觀.

1.安裝minibufexplorer

vim-addon-manager install minibufexplorer

        2.在 .vimrc 中配置

""""""""""""""""""""""""""""""""""
" 緩衝區管理
""""""""""""""""""""""""""""""""""
" 用<C-h/j/k/l>切換到上下左右窗口
let g:miniBufExplMapWindowNavVim = 1
" 用Ctrl+箭頭切換到上下左右窗口
let g:miniBufExplMapWindowNavArrows = 1
"let g:bufExplorerMaxHeight=30
" 只有一個buffer,MiniBufExplorer這欄也會出現
"let g:miniBufExplorerMoreThanOne=0
" normal模式下<Tab>移動到下一個buffer,<C-Tab>上一個
nnoremap <silent> <Tab> :bn<CR>
nnoremap <silent> <C-Tab> :bp<CR>
" 不要在不可編輯內容的窗口(如TagList)中打開選中的buffer
let g:miniBufExplModSelTarget = 1"

        3.自定義快捷鍵說明

•<Tab> 移動到下一個buffer•<C-Tab> 移動到上一個buffer

•quickfix

通過 quickfix 命令集,你可在 Vim 內編譯程序並直接跳轉到出錯位置進行修正。你可以接著重新編譯並做修正,直到不再出錯為止。因為 quickfix 已經在 vim 裡集成了,只要配置就好了。

1.在 .vimrc 中配置

""""""""""""""""""""""""""""""""""
" QuickFix設置
""""""""""""""""""""""""""""""""""
" 按下<F2>,執行make
nnoremap <F2> :TlistToggle<CR> :make<CR><CR><CR> :copen<CR> :TlistToggle<CR>
" 按下<F12>,執行make clean
nnoremap <F12> :make clean<CR><CR><CR> :cclose<CR>
" 按下<F3>,光標移到上一個錯誤所在的行
nnoremap <F3> :cp<CR>
" 按下<F4>,光標移到下一個錯誤所在的行
nnoremap <F4> :cn<CR>

        2.自定義快捷鍵說明

•<F2> make當前程序•<F10> make clean當前程序•<F3> 光標移動到上一個錯誤所在行•<F4> 光標移動到下一個錯誤所在行

參考文獻

1.有趣的vim遊戲[8]2.Vim學習指南[9]3.vim plugin[10]4.Vim Script[11]

References

[1] 玩遊戲記命令的網址: http://vim-adventures.com/
[2] Vim學習指南: http://www.oschina.net/translate/learn-vim-progressively
[3] Vim插件配置: http://my.oschina.net/swuly302/blog/156784
[4] 最新版本: http://sourceforge.net/projects/vimcdoc/files/vimcdoc/
[5] 這裡: http://www.vim.org/scripts/script_search_results.php?order_by=creation_date&direction=descending
[6] 插件: http://vim-scripts.org/vim/scripts.html
[7] libstdc++: http://www.vim.org/scripts/download_script.php?src_id=9178
[8] 有趣的vim遊戲: http://vim-adventures.com/
[9] Vim學習指南: http://www.oschina.net/translate/learn-vim-progressively
[10] vim plugin: http://my.oschina.net/swuly302/blog/156784
[11] Vim Script: http://vim-scripts.org/vim/scripts.html

相關焦點

  • Vim 配置入門
    Vim 的配置不太容易,它有自己的語法,許許多多的命令。我總是記不清楚,所以就整理了下面這篇文章,列出主要配置項的含義。 一、基礎知識  Vim 的全局配置一般在/etc/vim/vimrc或者/etc/vimrc,對所有用戶生效。用戶個人的配置在~/.vimrc。
  • vim美化配置?Centos+vim-plug實現高顏值編輯器
    vim美化配置?
  • 將 Vim 配置成一個寫作工具 | Linux 中國
    如果你是一個寫作者,在繼續下面的內容前,我建議你先閱讀一下 那篇文章的第一部分 。基本上可以說,你使用的設備越多,你需要的寫作工具就越多,最終你的工作流程就越複雜。這一點對我來說是很貼切的,因為我有四臺設備,包括一部安卓手機,一臺日常用的運行 Linux 的主力筆記本電腦,還有兩臺舊的筆記本電腦,其中一臺是 Mac,我去戶外拍攝時會帶著它。
  • 編輯器之王Vim應該怎麼配置?
    初學者不建議折騰 Vim,直接用就好,熟悉基本的使用方法,如進入、退出、複製、粘貼、查找、替換、分屏、跳轉、文件對比等都非常熟悉之後,閒暇之餘,可以折騰下怎麼配置更順眼,更高效。不建議花太多時間折騰配置,我曾經就耗費了太多時間在上面,到頭來是瞎折騰,還沒有別人配置的好看。是的,沒有 GitHub 上大佬配置的好用,也沒有他們的好看。
  • Vim 入門教程
    前言0.1 簡介 vim 被譽為『編輯器之神』,與之同時代的 emacs 被譽為『神之編輯器』。可以看得出 vim 在編輯器的地位是很高的,得益於 vim 的指法,敲起代碼來如行雲流水。特別膜拜創始人創始出這麼方便的敲代碼的指法,這篇文章就是來帶你入坑 vim 指法操作。之前我也寫了一篇給在校學生的幾點建議裡面提到了 vim 的重要性,以及好處,這裡給出入門教程。
  • 03-編輯器之神VIM的使用及配置
    做生信要寫代碼,寫代碼就需要編輯器,在linux系統下有一款編輯器不能被忽略,就是VIM,江湖人稱編輯器之神。
  • Vim之tags 詳解
    首先, 要說的是關於vim使用ctags, cscope的相關教程, 網絡上已經有相當詳盡的文章可以搜索到. 這裡不會在重複大多數網絡上可以搜索到的入門教程了. 並且在此提醒閱讀本篇博客的讀者, 如果你現在對ctags和cscope等並不了解, 那麼請先在網絡裡google所有和他們相關的教程, 花上大約至少一天上的時間認真研究他們的基本用法.
  • vim開發環境配置
    前言作為編輯器之神的vim,初安裝時,就像十幾歲的孩子,潛力無限但能力有限。所以當我們要充分開發它的潛能時,那麼就不得不對vim進行擴展,也就是安裝插件。安裝前說明本文介紹的vim配置的核心思路是以Vundle為管理器,在此基礎上,進行其他插件的安裝和管理。安裝Vundle由於後續可能安裝的插件越來越多,因此在安裝其他插件之前先安裝一個插件管理器Vundle,它可以更新,安裝或者卸載我們的插件,十分方便。
  • 高效的VIM配置
    Vundle會自動接管 .vim 文件夾,所有配置好的插件將默認下載至~/.vim/bundle/, 在使用之前請確保.vim文件夾乾淨. Vundle的插件安裝需要觸發 git clone 操作,搜索需要 curl 支持.
  • 神級編輯器 Vim 使用-插件篇
    在這篇中, 會列舉各種實用的插件, 包括他們的安裝, 配置及使用方法注意: 不是本部分的所有插件都是你需要裝的, 如果盲目安裝插件只會導致你 vim 功能混亂, 速度底下, 所以適時整理真正需要的插件, 禁用或清除掉不常用的插件才是正確使用方法.
  • 學習VIM之2014
    在工作環境上我已經裝配了這些工具,甚至比起那些視覺編輯器好很多。因為這個是純鍵盤操作,可以讓我更快地在代碼裡面穿梭。搭建環境需要花費一些時間,安裝幾個插件。首先第一步是我明白vim內建功能只是處理文件的一種選擇。在這篇文章裡我會帶你去認識vim文件管理功能與使用更高級的插件。
  • Vim 從入門到精通
    $VIM 預設值: "/etc" $VIMRUNTIME 預設值: "/usr/share/vim/vim81"你可以在網上找到許多精簡的 vimrc 配置文件,我的版本可能並不是最簡單的版本,但是我的版本提供了一套我認為良好的,非常適合入門的設置。
  • vim 配置 C/C++/Rust/Python 開發環境
    Python:1、安裝 Nerdtree 插件顯示左側目錄將 Nerdtree 插件下載到 ~/.vim/pack/vendorcd ~/.vim/pack/vendor/startgit clone git://github.com/scrooloose/nerdtree在 ~/.vimrc 文件中添加配置:" 進入 vim
  • Vim文本編輯命令匯總-Vim入門教程(2)
    Vim編輯模式插入字符,行尾、行首插入,刪除一個字符和刪除整行命令,Vim複製和粘貼命令,vim替換輸入以及撤銷和反撤銷命令,Vim保存和另存為文件,顯示vim當前編輯文件名。我們使用編輯器的常用文件操作主要是: 插入、 刪除、 複製、 粘貼、 替換、 撤銷、 保存、 另存為。在介紹Vim中的上述基本文件操作命令前,需要先介紹下vim的操作模式。
  • Python 從零開始--入門篇
    就是很簡答相比於 C語言 的指針的混亂,和 Java 的繁瑣,python 更加適合作為非計算機專業的第一個入門的程式語言。(計算機專業最好還是以C語言為第一門語言入門為好,後面寫文章出來介紹)從語法上面來說也擁有更多的第三方庫,避免了很多「重複製造輪子「。
  • 請品鑑我的vim配置
    spf13-vim:steve francia's vim distribution,大大提高了寫代碼的效率。但是,原配置仍然有很多插件和配置不符合我的需要,因此,fork後進行了大量的修改.請訪問leoatchina的vim配置文件.由於本人水平所限,一定有很多錯誤和bug,望各位指正. 注意使本配置文件後可能會影響vim運行流暢度.
  • Vim 基本命令入門-如何使用Vi/Vim文本編輯器
    本文簡單介紹下 Vim 入門基本命令。要安裝它並在CentOS中使用,您只需輸入以下內容:yum install vim-X11 vim-common vim-enhanced vim-minimal一旦完成,您可以享受全功能和強大的文本編輯器的全部好處。
  • 在 vim 上配置 coc.vim 代碼補全插件(超好用!)
    主要步驟確保 vim 版本支持 LSP,沒有則下載源碼編譯更新;確保已安裝 plug.vim 插件,沒有則先安裝;修改 .vimrc,添加 coc 插件,並在 vim 中使用 :PlugInstall 進行安裝;確保 node 的版本滿足 coc 服務的要求,如果不滿足則升級;在 vim 中使用 coc 插件命令 :
  • vim--golang開發配置
    最近在學習golang,砍柴就要先磨刀,下面介紹下適合golang開發的一些vim配置,大家可以根據需要選用。一、語法高亮網上有很多是拷貝go/misc/vim/目錄方法,其實在大概是go1.4版本後包裡就不再提供vim目錄了,這是一個比較久遠的方案,不建議使用。我本次介紹的是裝vim-go方案。
  • Vim 初學者入門指南
    Arora譯者: Yinr這篇文章是 VIM 用戶指南[1] 系列文章中的一篇:對一個程式設計師來說,選擇一個文本編輯器是一件非常重要的事。我承認我對 Emacs 知之甚少,但是對於它倆,你需要知道的是它們都可以被深度定製,並且在初學時也都非常令人困惑。這個教程並不會介紹有關 Vim 的所有內容,而是將介紹一些基礎以使你在最初就能正確使用它,隨後還會展示一些小技巧,藉此(希望能)讓你有能力自己去探索學習。Vim 一詞來源於 「VI iMproved」。