1. 程式人生 > >VIM工具的整合

VIM工具的整合

說說 vim 用於程式碼編寫提供了哪些直接和間接功能支撐。vim 使用者手冊中,50% 的例子都是在講 vim 如何高效編寫程式碼,由此可見,vim 是一款面向於程式設計師的編輯器,即使某些功能 vim 無法直接完成,藉助其豐富的外掛資源,必定可以達成目標,這就是所需即所獲。 我是個目標驅動的信奉者,本文內容,我會先給出優秀 C/C++ IDE 應具備哪些功能,再去探索如何通過 vim 的操作或外掛來達到目標。最終至少要像這個樣子:
(圖形環境下 IDE 總攬)
(純字元模式下 IDE 總攬)

0 vim 必知會

在正式開始前先介紹幾個 vim 的必知會,這不是關於如何使用而是如何配置 vim 的要點,這對理解後續相關配置非常有幫助。

0.1 .vimrc 檔案

.vimrc 是控制 vim 行為的配置檔案,位於 ~/.vimrc,不論 vim 視窗外觀、顯示字型,還是操作方式、快捷鍵、外掛屬性均可通過編輯該配置檔案將 vim 調教成最適合你的編輯器。

很多人之所以覺得 vim 難用,是因為 vim 缺少預設設定,甚至安裝完後你連配置檔案自身都找不到,不進行任何配置的 vim 的確難看、難用。不論用於程式碼還是普通文字編輯,有必要將如下基本配置加入 .vimrc 中。

字首鍵。各類 vim 外掛幫助文件中經常出現 <leader>,即,字首鍵。vim 自帶有很多快捷鍵,再加上各類外掛的快捷鍵,大量快捷鍵出現在單層空間中難免引起衝突,為緩解該問題,引入了字首鍵 <leader>,這樣,鍵 r 可以配置成 r、<leader>r、<leader><leader>r 等等多個快捷鍵。字首鍵是 vim 使用率較高的一個鍵(最高的當屬 Esc),選一個最方便輸入的鍵作為字首鍵,將有助於提高編輯效率。找個無須眼睛查詢、無須移動手指的鍵 —— 分號鍵,挺方便的,就在你右手小指處:

" 定義快捷鍵的字首,即<Leader>
let mapleader=";"

既然字首鍵是為快捷鍵服務的,那隨便說下快捷鍵設定原則:不同快捷鍵儘量不要有同序的相同字元。比如,<leader>e 執行操作 0 和 <leader>eb 執行操作 1,在你鍵入 <leader>e 後,vim 不會立即執行操作 0,而是繼續等待使用者鍵入 b,即便你只想鍵入 <leader>e,vim 也不得不花時間等待輸入以確認是哪個快捷鍵,顯然,這讓 <leader>e 響應速度變慢。<leader>ea 和 <leader>eb 就沒問題。

檔案型別偵測。允許基於不同語言載入不同外掛(如,C++ 的語法高亮外掛與 python 的不同):

" 開啟檔案型別偵測
filetype on
" 根據偵測到的不同型別載入對應的外掛
filetype plugin on

快捷鍵。把 vim(非外掛)常用操作設定成快捷鍵,提升效率:

" 定義快捷鍵到行首和行尾
nmap <Leader>lb 0
nmap <Leader>le $
" 設定快捷鍵將選中文字塊複製至系統剪貼簿
vnoremap <Leader>y "+y
" 設定快捷鍵將系統剪貼簿內容貼上至 vim
nmap <Leader>p "+p
" 定義快捷鍵關閉當前分割視窗
nmap <Leader>q :q<CR>
" 定義快捷鍵儲存當前視窗內容
nmap <Leader>w :w<CR>
" 定義快捷鍵儲存所有視窗內容並退出 vim
nmap <Leader>WQ :wa<CR>:q<CR>
" 不做任何儲存,直接退出 vim
nmap <Leader>Q :qa!<CR>
" 依次遍歷子視窗
nnoremap nw <C-W><C-W>
" 跳轉至右方的視窗
nnoremap <Leader>lw <C-W>l
" 跳轉至左方的視窗
nnoremap <Leader>hw <C-W>h
" 跳轉至上方的子視窗
nnoremap <Leader>kw <C-W>k
" 跳轉至下方的子視窗
nnoremap <Leader>jw <C-W>j
" 定義快捷鍵在結對符之間跳轉,助記pair
nmap <Leader>pa %

其他。搜尋、vim 命令補全等設定:

" 開啟實時搜尋功能
set incsearch
" 搜尋時大小寫不敏感
set ignorecase
" 關閉相容模式
set nocompatible
" vim 自身命令列模式智慧補全
set wildmenu

以上的四類配置不僅影響 vim,而且影響外掛是否能正常執行。很多外掛不僅要在 .vimrc 中新增各自特有的配置資訊,還要增加 vim 自身的配置資訊,在後文的各類外掛介紹中,我只介紹對應外掛特有配置資訊,當你發現按文中介紹操作後外掛未生效,很可能是 vim 自身配置資訊未新增,所以一定要把上述配置拷貝至到你的 .vimrc 中,再對照本文介紹一步步操作。.vimrc 完整配置資訊參見附錄,每個配置項都有對應註釋。另外,由於有些外掛還未來得及安裝,在你實驗前面的外掛是否生效時,vim 可能有報錯資訊提示,先別理會,安裝完所有外掛後自然對了。

0.2 .vim/ 目錄

.vim/ 目錄是存放所有外掛的地方。vim 有一套自己的指令碼語言 vimscript,通過這種指令碼語言可以實現與 vim 互動,達到功能擴充套件的目的。一組 vimscript 就是一個 vim 外掛,vim 的很多功能都由各式外掛實現。此外,vim 還支援 perl、python、lua、ruby 等主流指令碼語言編寫的外掛,前提是 vim 原始碼編譯時增加 ---enable-perlinterp、--enable-pythoninterp、--enable-luainterp、--enable-rubyinterp 等選項。vim.org 和 github.com 有豐富的外掛資源,任何你想得到的功能,如果 vim 無法直接支援,那一般都有對應的外掛為你服務,有需求時可以去逛逛。

vim 外掛目前分為 *.vim 和 *.vba 兩類,前者是傳統格式的外掛,實際上就是一個文字檔案,通常 someplugin.vim(外掛指令碼)與 someplugin.txt(外掛幫助檔案)並存在一個打包檔案中,解包後將 someplugin.vim 拷貝到 ~/.vim/plugin/ 目錄,someplugin.txt 拷貝到 ~/.vim/doc/ 目錄即可完成安裝,重啟 vim 後剛安裝的外掛就已經生效,但幫助檔案需執行 :helptags ~/.vim/doc/ 才能生效,可通過 :h someplugin 檢視外掛幫助資訊。傳統格式外掛需要解包和兩次拷貝才能完成安裝,相對較繁瑣,所以後來又出現了 *.vba 格式外掛,安裝便捷,只需在 shell 中依次執行如下命令即可:

vim someplugin.vba
:so %
:q

不論是直接拷貝外掛到目錄,還是通過 *.vba 安裝,都不便於外掛解除安裝、升級,後來又出現了管理外掛的外掛 pathogen,後文介紹。

後面就正式開始了嘍,文中前後內容順序敏感,請依次查閱。

1 原始碼安裝編輯器 vim

發行套件的軟體源中預編譯的 vim 要麼不是最新版本,要麼功能有閹割,有必要升級成全功能的最新版,當然,原始碼安裝必須滴。

cd ~/downloads/vim74/
./configure --with-features=huge --enable-rubyinterp --enable-pythoninterp --with-python-config-dir=/usr/lib/python2.7/config/ --enable-perlinterp --enable-gui=gtk2 --enable-cscope --prefix=/usr --enable-luainterp 
make VIMRUNTIMEDIR=/usr/share/vim/vim74 && make install

其中,--enable-rubyinterp、--enable-pythoninterp、--enable-perlinterp、--enable-luainterp 等分別表示支援 ruby、python、perl、lua 編寫的外掛,--enable-gui=gtk2 表示生成 gvim,--enable-cscope 支援 cscope,--with-python-config-dir=/usr/lib/python2.7/config/ 指定 python 路徑(先自行安裝 python 的標頭檔案 python-devel),這幾個特性非常重要,影響後面各類外掛的使用。注意,你得預先安裝相關依賴庫的標頭檔案,python-devel、python3-devel、ruby-devel、libX11-devel、gtk-devel、gtk2-devel、gtk3-devel、ncurses-devel,如果缺失,原始碼構建過程雖不會報錯,但最終生成的 vim 很可能缺失某些功能。構建完成後在 vim 中執行

:echo has('python')

若輸出 1 則表示構建出的 vim 已支援 python,反之,0 則不支援。

2 外掛管理

既然本文主旨在於講解如何通過外掛將 vim 打造成中意的 C/C++ IDE,那麼高效管理外掛是首要解決的問題。

vim 自身希望通過在 .vim/ 目錄中預定義子目錄管理所有外掛(比如,子目錄 doc/ 存放外掛幫助文件、plugin/ 存放通用外掛指令碼),vim 的各外掛打包文件中通常也包含上述兩個(甚至更多)子目錄,使用者將外掛打包文件中的對應子目錄拷貝至 .vim/ 目錄即可完成外掛的安裝。一般情況下這種方式沒問題,但我等重度外掛使用者,.vim/ 將變得混亂不堪,至少存在如下幾個問題:

  • 外掛名字衝突。所有外掛的幫助文件都在 doc/ 子目錄、外掛指令碼都在 plugin/ 子目錄,同個名字空間下必然引發名字衝突;
  • 外掛解除安裝麻煩。你需要先知道 doc/ 和 plugin/ 子目錄下哪些檔案是屬於該外掛的,再逐一刪除,容易多刪/漏刪。

我希望每個外掛在 .vim/ 下都有各自獨立子目錄,這樣需要升級、解除安裝外掛時,直接找到對應外掛目錄變更即可。pathogen 為此而生,它突破了 vim 只能識別 .vim/doc/、.vim/plugin/ 等等路徑的限制,你可以在按外掛名建立獨立目錄,然後將外掛打包檔提取至各自外掛目錄中。通常來說,你需要先建立 ~/.vim/bundle/ 目錄,bundle/ 就是以後存放各外掛目錄的父目錄。

安裝:先清空 .vim/ 下的所有檔案(備份?);建立目錄 ~/.vim/bundle/pathogen/autoload/;下載 pathogen.vim(https://github.com/tpope/vim-pathogen )至 ~/.vim/bundle/pathogen/autoload/。

設定:接下來在 .vimrc 增加相關配置資訊:

" 將 pathogen 自身也置於獨立目錄中,需指定其路徑 
runtime bundle/pathogen/autoload/pathogen.vim
" 執行 pathogen
execute pathogen#infect()
cd ~/.vim/bundle/
git clone https://github.com/dyng/ctrlsf.vim.git

如果外掛只有壓縮包下載地址,那麼,先在 ~/.vim/bundle/ 建立目錄 plugin_name/,然後到 vim 官網下載 plugin_name 壓縮包並解壓至 ~/.vim/bundle/plugin_name/ 即可,注意不要重複包含多次 plugin_name/ 目錄,如,~/.vim/bundle/plugin_name/plugin_name/。要解除安裝外掛,直接刪除 plugin_name/ 外掛目錄即可。

通過 pathogen 管理外掛後,相較以前有幾點變化:

  • 切勿通過發行套件自帶的軟體管理工具安裝任何外掛,不然 .vim/ 又要混亂了;
  • pathogen 無法安裝配色主題風格,只能將主題外掛手工放置於 ~/.vim/colors/;
  • 安裝 *.vba 型別外掛:
:e plugin_name.vba 
:!mkdir -p ~/.vim/bundle/plugin_name 
:UseVimball ~/.vim/bundle/plugin_name 
  • 生成幫助文件:
:Helptags 

非特殊情況,後文介紹到的外掛不再累述如何安裝。

此外,你得注意外掛的下載源。相同外掛在 vim.org 和 github.com 上都能找到,有些外掛在 vim.org 上是最新版,有些又在 github.com 上更新,比如,indexer 外掛,在 vim.org上的版本是 4.15(http://www.vim.org/scripts/script.php?script_id=3221 ),而在 github.com 上的卻是 1.2(https://github.com/shemerey/vim-indexer ),所以我建議先去作者個人網站上找,沒有再在 vim.org 和 github.com 上比較哪個的最新。甚至,同在 github.com 上都有很多重名外掛,自己得稍微花時間確認下,本文中出現的外掛,我都會附上最新版下載地址。還有,外掛更新頻率較高,差不多每隔一季你應該看看哪些外掛有推出新版本!

3 介面美化

玉不琢不成器,vim 不配不算美。剛安裝好的 vim 樸素得嚇人,這是與我同時代的軟體麼?


(預設 vim 介面)

就我的審美觀而言,至少有幾個問題:語法高亮太單薄、主題風格太簡陋、視窗元素太冗餘、輔助資訊太欠缺。

3.1 主題風格

一套好的配色方案絕對會影響你的編碼效率,vim 內建了 10 多種配色方案供你選擇,GUI 下,可以通過選單(Edit -> Color Scheme)試用不同方案,字元模式下,需要你手工調整配置資訊,再重啟 vim 檢視效果(csExplorer 外掛,可在字元模式下不用重啟即可檢視效果)。不滿意,可以去http://vimcolorschemetest.googlecode.com/svn/html/index-c.html 慢慢選。我自認為“閱美無數”,目前最夯三甲:

前面說過,pathogen 無法安裝主題外掛,請將主題外掛(僅 *.vim 檔案而非外掛目錄,即,solarized.vim、molokai.vim、phd.vim)拷貝至 ~/.vim/colors/,然後在 .vimrc 中設定選用其作為主題:

" 配色方案
set background=dark
colorscheme solarized
"colorscheme molokai
"colorscheme phd

其中,不同主題都有暗/亮色系之分,這樣三種主題六種風格,久不久換一換,給你不一樣的心情:


(solarized 主題風格)

3.2 營造專注氛圍

如今的 UX 設計講究的是內容至上,從 GNOME3 的變化就能看出。編輯器介面展示的應全是程式碼,不應該有工具條、選單、滾動條浪費空間的元素,另外,程式設計是種精神高度集中的腦力勞動,不應出現閃爍游標、花哨滑鼠這些分散注意力的東東。配置如下:

" 禁止游標閃爍
set gcr=a:block-blinkon0
" 禁止顯示滾動條
set guioptions-=l
set guioptions-=L
set guioptions-=r
set guioptions-=R
" 禁止顯示選單和工具條
set guioptions-=m
set guioptions-=T

重啟 vim 後效果如下:


(去除冗餘視窗元素)

還容易分神?好吧,我們把 vim 弄成全屏模式。vim 自身無法實現全屏,必須藉助第三方工具 wmctrl,一個控制視窗 XYZ 座標、視窗尺寸的命令列工具。先自行安裝 wmctrl,再在 .vimrc 中增加如下資訊:

" 將外部命令 wmctrl 控制視窗最大化的命令列引數封裝成一個 vim 的函式
fun! ToggleFullscreen()
    call system("wmctrl -ir " . v:windowid . " -b toggle,fullscreen")
endf
" 全屏開/關快捷鍵
map <silent> <F11> :call ToggleFullscreen()<CR>
" 啟動 vim 時自動全屏
autocmd VimEnter * call ToggleFullscreen()

上面是一段簡單的 vimscript 指令碼,外部命令 wmctrl 及其命令列引數控制將指定視窗 windowid(即,vim)全屏,繫結快捷鍵 F11 實現全屏/視窗模式切換(linux 下各 GUI 軟體約定使用 F11 全屏,最好遵守約定),最後配置啟動時自動全屏。

3.3 新增輔助資訊

去除了冗餘元素讓 vim 介面清爽多了,為那些實用輔助資訊騰出了空間。游標當前位置、顯示行號、高亮當前行/列等等都很有用:

" 總是顯示狀態列
set laststatus=2
" 顯示游標當前位置
set ruler
" 開啟行號顯示
set number
" 高亮顯示當前行/列
set cursorline
set cursorcolumn
" 高亮顯示搜尋結果
set hlsearch

效果如下:


(新增輔助資訊)

3.4 其他美化

預設字型不好看,挑個自己喜歡的,前提是你得先安裝好該字型。中文字型,我喜歡飽滿方正的(微軟雅黑),英文字型喜歡圓潤的(Consolas),vim 無法同時使用兩種字型,怎麼辦?有人制作釋出了一款中文字型用微軟雅黑、英文字型用 Consolas 的混合字型 —— yahei consolas hybrid 字型,號稱最適合中國程式設計師使用的字型,效果非常不錯(本文全文采用該字型)。在 .vimrc 中設定下:

" 設定 gvim 顯示字型
set guifont=YaHei\ Consolas\ Hybrid\ 11.5

其中,由於字型名存在空格,需要用轉義符“\”進行轉義;最後的 11.5 用於指定字型大小。

程式碼折行也不太美觀,禁止掉:

" 禁止折行
set nowrap
" 設定狀態列主題風格
let g:Powerline_colorscheme='solarized256'

效果如下:


(介面美化最終效果)

圖中,中英文混合字型看著是不是很舒服哈;增強後的狀態列,不僅介面漂亮多了,而且多了好些輔助資訊(所在函式名、檔案編碼格式、檔案型別)。

4 程式碼分析

閱讀優秀開源專案原始碼是提高能力的重要手段,營造舒適、便利的閱讀環境至關重要。

4.1 語法高亮

程式碼只有一種顏色的編輯器,就好像紅綠燈只有一種顏色的路口,全然無指引。現在已是千禧年後的十年了,早已告別上世紀六、七十年代黑底白字的時代,即使在字元模式下程式設計(感謝偉大的 fbterm),我也需要語法高亮。所幸 vim 自身支援語法高亮,只需顯式開啟即可:

" 開啟語法高亮功能
syntax enable
" 允許用指定語法高亮配色方案替換預設方案
syntax on

效果如下:


(語法高亮)

上圖中 STL 容器模板類 unordered_multimap 並未高亮,對滴,vim 對 C++ 語法高亮支援不夠好(特別是 STL、C++14 新增元素),必須藉由外掛 stl.vim 進行增強,下載(https://github.com/Mizuchi/STL-Syntax )後拷貝至 ~/.vim/bundle/STL-Syntax/after/syntax/cpp/,重啟即可。效果如下:


(增強 C++11 及 STL 的語法高亮)

4.2 程式碼縮排

C/C++ 中的程式碼執行流由複合語句控制,如 if(){} 判斷複合語句、for(){} 迴圈符號語句等等,這勢必出現大量縮排。縮排雖然不影響語法正確性,但對提升程式碼清晰度有不可替代的功效。

在 vim 中有兩類縮排表示法,一類是用 1 個製表符('\t'),一類是用多個空格(' ')。兩者並無本質區別,只是原始碼檔案儲存的字元不同而已,但,縮排視覺化外掛對兩類縮排顯示方式不同,前者只能顯示為粗塊,後者可顯示為細條,就我的審美觀而言,選後者。增加如下配置資訊:

" 自適應不同語言的智慧縮排
filetype indent on
" 將製表符擴充套件為空格
set expandtab
" 設定編輯時製表符佔用空格數
set tabstop=4
" 設定格式化時製表符佔用空格數
set shiftwidth=4
" 讓 vim 把連續數量的空格視為一個製表符
set softtabstop=4

其中,注意下 expandtab、tabstop 與 shiftwidth、softtabstop、retab:

  • expandtab,把製表符轉換為多個空格,具體空格數量參考 tabstop 和 shiftwidth 變數;
  • tabstop 與 shiftwidth 是有區別的。tabstop 指定我們在插入模式下輸入一個製表符佔據的空格數量,linux 核心編碼規範建議是 8,看個人需要;shiftwidth 指定在進行縮排格式化原始碼時製表符佔據的空格數。所謂縮排格式化,指的是通過 vim 命令由 vim 自動對原始碼進行縮排處理,比如其他人的程式碼不滿足你的縮排要求,你就可以對其進行縮排格式化。縮排格式化,需要先選中指定行,要麼鍵入 = 讓 vim 對該行進行智慧縮排格式化,要麼按需鍵入多次 < 或 > 手工縮排格式化;
  • softtabstop,如何處理連續多個空格。因為 expandtab 已經把製表符轉換為空格,當你要刪除製表符時你得連續刪除多個空格,該設定就是告訴 vim 把連續數量的空格視為一個製表符,即,只刪一個字元即可。通常應將這tabstop、shiftwidth、softtabstop 三個變數設定為相同值;

另外,你總會閱讀其他人的程式碼吧,他們對製表符定義規則與你不同,這時你可以手工執行 vim 的 retab 命令,讓 vim 按上述規則重新處理製表符與空格關係。

很多編碼規範建議縮排(程式碼巢狀類似)最多不能超過 4 層,但難免有更多層的情況,縮排一多,我那個暈啊:


(多層縮排)
" 隨 vim 自啟動
let g:indent_guides_enable_on_vim_startup=1
" 從第二層開始視覺化顯示縮排
let g:indent_guides_start_level=2
" 色塊寬度
let g:indent_guides_guide_size=1
" 快捷鍵 i 開/關縮排視覺化
:nmap <silent> <Leader>i <Plug>IndentGuidesToggle

重啟 vim 效果如下:


(不連續的縮排視覺化)

斷節?Indent Guides 通過識別製表符來繪製縮排連線線,斷節處是空行,沒有製表符,自然繪製不出來,算是個小 bug,但瑕不掩瑜,有個小技巧可以解決,換行-空格-退格:


(完美視覺化縮排)

4.3 程式碼摺疊

有時為了去除干擾,集中精力在某部分程式碼片段上,我會把不關注部分程式碼摺疊起來。vim 自身支援多種摺疊:手動建立摺疊(manual)、基於縮排進行摺疊(indent)、基於語法進行摺疊(syntax)、未更改文字構成摺疊(diff)等等,其中,indent、syntax 比較適合程式設計,按需選用。增加如下配置資訊:

" 基於縮排或語法進行程式碼摺疊
"set foldmethod=indent
set foldmethod=syntax
" 啟動 vim 時關閉摺疊程式碼
set nofoldenable

操作:za,開啟或關閉當前摺疊;zM,關閉所有摺疊;zR,開啟所有摺疊。效果如下:


(程式碼摺疊)

4.4 介面與實現快速切換

我習慣把類的介面和實現分在不同檔案中,常會出現在介面檔案(MyClass.h)和實現檔案(MyClass.cpp)中來回切換的操作。你當然可以先分別開啟介面檔案和實現檔案,再手動切換,但效率不高。我希望,假如在介面檔案中,vim 自動幫我找到對應的實現檔案,當鍵入快捷鍵,可以在當前視窗中開啟對應實現檔案,也可以在當前視窗中分裂一個子視窗顯示對應實現檔案。

" *.cpp 和 *.h 間切換
nmap <Leader>ch :A<CR>
" 子視窗中顯示 *.cpp 或 *.h
nmap <Leader>sch :AS<CR>

這樣,鍵入 ;ch 就能在實現檔案和介面檔案間切換,鍵入 ;sch 子視窗中將顯示實現檔案/介面檔案。如下圖所示:


(介面檔案與實現檔案切換)

上圖中,初始狀態先打開了介面檔案 MyClass.h,鍵入 ;ch 後,vim 在新 buffer 中開啟實現檔案 MyClass.cpp,並在當前視窗中顯示;再次鍵入 ;ch 後,當前視窗切回介面檔案;鍵入 ;sch 後,當前視窗分裂了一個子視窗顯示實現檔案。

a.vim 實現原理很簡單,基於檔名進行關聯,比如,a.vim 能識別 my_class.h 與 my_class.cpp,而無法識別 my_class.h 與 your_class.cpp。所以,你在命名檔案時得注意下。

相關推薦

VIM工具整合

說說 vim 用於程式碼編寫提供了哪些直接和間接功能支撐。vim 使用者手冊中,50% 的例子都是在講 vim 如何高效編寫程式碼,由此可見,vim 是一款面向於程式設計師的編輯器,即使某些功能 vim 無法直接完成,藉助其豐富的外掛資源,必定可以達成目標,這就是所需

vi&vim工具

blank 快捷鍵 target file users 簡介 vim 模式類別及快捷鍵 簡介 vim/vi 作用是建立、編輯、顯示文本文件 沒有菜單,只有命令! vim是從vi發展出來的,比vi有部分增強功能!! vim 作

跟阿銘學linux   第五課   VIM工具

linux vim 5.1 VIM簡介 1)VIM是Vi的升級版,帶有顏色顯示 ;也分為 一般模式、編輯模式、命令行模式; <yum install -y vim-enhanced> 安裝指令包, 只安裝一個 < yum install -y

VIM工具

brush 文件的 bsp ges body bogon post 所在 模式 vim介紹 1.vi和vim的區別:vim是vi的升級版本,vim有顏色顯示 2.安裝vim [root@bogon ~]# yum install -y vim-enhanced 3.一

vim工具(下)

發生 ear oss 常用快捷鍵 文檔 特殊用法 color 光標 加密 5.5vim進入編輯模式5.6vim命令模式5.7vim實踐5.5vim進入編輯模式 進入編輯模式後輸入的東西都是在光標的前面輸入的 按“i”光標進入當前位置的編輯模式。 按“I(shift+i

VIM工具的常用命令快捷鍵

新建 前插 快捷 常用命令 walk 剪切 單詞 blog gpo 一、光標的移動0: 移動到行首。$: 移動到行尾。w: walk移動到下一個單詞b: back 移動到上一個單詞h或退格: 左移一個字符;後退l或空格: 右移一個字符;前進j: 下移一行;k: 上移一行;

vim工具的編輯模式及命令模式

2018041301一、 進入編輯模式1、按大i 定位大行首進行編輯2、按小i 按光標所在行進行編輯3、按大A 從行尾開始編輯4、按小a 從當前字符後編輯5、按大O 在當前行的上行插入新的一行6、按小o 在當前行的下行插入新的一行 二、命令模式 /w 從光標之後向後查找w,按n向後繼續查找,反之sh

【Linux學習筆記】第5章 VIM工具

linux centos vim 5.1vim介紹vim是vi的升級版,帶有顏色顯示,先安裝包yum install -y vim-enhancedvim分為三種模式:一般模式、編輯模式、命令模式。 5.2vim顏色顯示和移動光標相同的文件信息在不同目錄下顯示顏色會有差異。相同內容,不同文件名,

Linux系統提高編輯效率的vim工具重要知識

vim編輯器 老男孩教育 網上文章太雜,都是泛泛講解,沒有重點,本文表格的內容是相對重點的參數,值得讀者學習掌握。表7-1 vi/vim命令的參數選項及說明表7-22命令說明普通模式:移動光標的操作G或(shift+g)將光標移動到文件的最後一行gg將光標移動到文件的第一行,等價於1gg或1G0數字0

實現DevOps開源工具整合之Gitlab-ce安裝

tla aci ipad 版本 工具 改密 padding 概述 改密碼 文檔OARP 序號 分類 姓名 範圍要求 1 Owner 林誌國 2 作者 林誌國 3 審核人 4 審核

使用IDEA工具整合mybatis時使用@Resource和@Autowired自動註解bean時會顯示紅色問題的解決辦法

使用IDEA工具整合mybatis時使用@Resource和@Autowired自動註解bean時會顯示紅色問題的解決辦法 idea中springboot整合mybatis時,通過@Autowired注入的物件一直有下劃線提示,但是專案能執行,雖然不影響執行,但是強迫症的程式設計師肯定看不下去. 如何去除呢

阿里Oss物件儲存服務基本工具整合

一、引言 阿里的oss物件儲存伺服器,提供了儲存空間管理,檔案上傳下載,檔案管理,音訊與影象處理等常用操作,基本滿足中小企業對於檔案處理的需求,但官方提供的Api介面都是簡版,demo級別的,並不適合直接使用,故在下在工作之餘,對其常用Api進行封裝,整合為OssUtils工具類。 二、Os

【小卒ubuntu使用】ubuntu下VIM工具的使用和優化

對使用ubuntu系統的小白來說,可能第一件迫切需要學的工具就是VIM,剛安裝的VIM,可能介面並不是十分友好,我們可以更改vim的配置檔案,按照我們的需求去修改它,使它變得友好並美化,甚至愛上VIM。 在終端下,輸入命令開啟配置載入項檔案: sudo vim /etc/vim/vimrc

eBay構建自有工具整合Kubernetes和OpenStack_Kubernetes中文社群

為了讓開發人員保持快樂,電子商務公司eBay開發了一個框架,用於在其大規模OpenStack雲上部署容器。 eBay雲端計算基礎設施和平臺高階總監Suneet Nandwani表示,從eBay雲計劃的第一天起,該電子商務公司就一直致力於保持開發人員的快樂。這帶來了公司的數個挑戰和創新,最新的是

linux檔案內容查詢與vim工具的使用

linxu命令非常的多,並且帶了很多引數,以完成不同的需求。這裡僅僅介紹,我自己比較常用的一些命令,更多的細節,可以參考(man 命令)或者閱讀《鳥哥的linux私房菜》。 1.cat命令,tac命令:cat命令和tac命令剛好相反,cat命令是從第一行到最後一行顯示,而t

JaCoCo 程式碼覆蓋率測試工具整合

對於JaCoCo的介紹就不多說了,網上多的是介紹,不行也可以去官網檢視一下就行了。相信大家也很不喜歡這類部落格——開頭不寫怎麼解決問題,而是給你講背景、講歷史,講了一堆。終於到解決問題的方法了,發現還不適用自己的情況。真是XXXX了。 所以,我先給出JaCoCo的官網,大家可以自行檢

gulp+webpack工具整合簡介

webpack簡介 Webpack 是一個模組打包器。它將根據模組的依賴關係進行靜態分析,然後將這些模組按照指定的規則生成對應的靜態資源。 webpack特點 Webpack 有兩種組織模組依賴的方式,同步和非同步。非同步依賴作為分割點,形成一

ubuntu下 vim工具的安裝與使用教程(一)

 vim工具可以方便的從liunx終端開啟編輯修改檔案,是一款在Ubuntu系統下必備的工具,首先來說明如何安裝和配置1) 輸入CTRL+Alt+T開啟一個終端,之後輸入命令:sudo apt-get install vim-gtk2)輸入y,回車,3)等待安裝完成後,開啟終

IntelliJ IDEA 工具整合

工具整合,基本上正式開發的常用工具基本都集成了1.ant2.maven3.SVN相比之下,IDEA的SVN的提交提供了更多的選項和功能提交的介面兩側會顯示當前檔案和修改的部分對比,可以非常方便地檢查和修改檔案。提交前:(1).可選擇自動格式化(2).可選擇自動忽略沒有使用的imports(3).可選擇分析程式

spring-restdocs利用測試用例生成API文件,AsciidocFX工具整合

利用spring-restdocs-mockmvc生成API文件 1.專案pom引入依賴的jar包: <dependency> <groupId>org.springframework.boot</groupId> <