VIM 實用插件整理

<leader> 鍵一般是 \,使用的時候需要先按住 \ 鍵,然後再按功能鍵 .

Ctrl W  + 按鍵,一般是先按下Ctrl W,鬆開,然後再按按鍵.

分屏操作-在命令模式下使用

:vs
可以直接實現垂直分屏
:split
可以實現水平分屏

關閉分屏 
Ctrl+W c    //關閉當前窗口。
Ctrl+W q    //關閉當前窗口,如果只剩最後一個了,則退出Vim。

屏幕尺寸
下面是改變尺寸的一些操作,

高度
Ctrl+W =//讓所有的屏都有一樣的高度。
Ctrl+W +//增加高度。
Ctrl+W -//減少高度。

對於寬度你可以使用Ctrl+W   < 或 >

在命令模式下直接輸入 : vs  xxx/xx/xxx.xx  即可新開一豎屏打開文檔.


工欲善其事必先利其器,windows 環境下有諸多好用的 IDE,但在 linux 環境下,可供選擇的工具並不多,但是 VIM 作爲一款可擴展文本編輯工具,配合豐富的功能插件,同樣能滿足我們的工作需要,甚至由於其強大的可擴展性,我們能夠實現更豐富、更強大的編輯支持。下面是我整理的一些比較常用的插件。

環境:Ubuntu 18.04.2

VIM:vim 8.1.1037(vim 升級可參考https://blog.csdn.net/bc516125634/article/details/88144664)


1、插件管理 (Vundle)

     1.1  插件安裝

             git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
    1.2、.vimrc 插件配置

set nocompatible              " 去除VI一致性,必須
filetype off                  " 必須
 
" 設置包括 vundle 和初始化相關的 runtimepath
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" 另一種選擇, 指定一個 vundle 安裝插件的路徑
"call vundle#begin('~/some/path/here')
" 讓 vundle 管理插件版本,必須
Plugin 'VundleVim/Vundle.vim'
 
"{
"   所有的插件安裝配置都必須在此範圍內配置
"}
 
" 所有插件需要在下面這行之前配置
call vundle#end()            " 必須
filetype plugin indent on    " 必須 加載vim自帶和插件相應的語法和文件類型相關腳本
" 忽視插件改變縮進,可以使用以下替代:
"filetype plugin on


    1.3、插件安裝方式
    安裝插件的命令必須放在 vundle#begin 和 vundle#end 之間.
    1.3.1、從 GitHub 進行安裝
       格式: Plugin '用戶名/插件倉庫名'
       示例: Plugin 'tpope/vim-fugitive'
    1.3.2、從 http://vim-scripts.org/vim/scripts.html 進行安裝
       格式: Plugin '插件名稱'            實際上是 Plugin 'vim-scripts/插件倉庫名' 只是此處的用戶名可以省略
       示例: Plugin 'L9'
    1.3.3、從不在 GitHub 上的另一個 git 軟件庫進行安裝
       格式: Plugin 'git://git.another_repo.com/plugin'
       示例: Plugin 'git://git.wincent.com/command-t.git'
    1.3.4、從本地文件進行安裝
       格式: Plugin 'file:///+本地插件倉庫絕對路徑'
       示例: Plugin 'file:///home/gmarik/path/to/plugin'
    1.3.5、插件在倉庫的子目錄中
       格式: Plugin '用戶名/插件倉庫名',{'rtp': '子目錄'}     -- rtp: runtimepath
       示例: Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}       範例插件在 sparkup/vim 目錄下
    1.3.6、插件命名衝突,更名插件
       格式: Plugin 'user/plugin', {'name': 'newPlugin'}
       示例: Plugin 'ascenator/L9', {'name': 'newL9'}         已經安裝 L9,再次安裝另一個 L9

    1.4、常用命令

:PluginList    列出所有已配置的插件
:PluginInstall    安裝 .vimrc.bundles 中列出來的所有插件
:PluginInstall!

:PluginUpdate

更新 .vimrc.bundles 中列出來的所有插件
:PluginInstall <plugin-name>    只安裝某一個特定的插件,只需要傳遞其名稱
:PluginClean    清除未使用插件,需要確認; 追加 `!` 自動批准移除未使用插件
:PluginSearch <text-list>    搜索過程中,可以在交互式分屏上安裝、清理、研究或重新裝入同一列表。想自動裝入插件,需將插件添加到 .vimrc.bundles 文件
:PluginSearch foo    搜索 foo ; 追加 `!` 清除本地緩存,搜索完成後,可以按下'i'進行安裝

2、主題(solarized)

    2.1、插件安裝

方式一:
cd ~/.vim/bundle
git clone git://github.com/altercation/vim-colors-solarized.git
 
方式二(Vundle 插件管理):
Plugin 'altercation/vim-colors-solarized'
    2.2、.vimrc 插件配置

let g:solarized_termtrans  = 1        " 使用 termnal 背景
let g:solarized_visibility = "high"   " 使用 :set list 顯示特殊字符時的高亮級別
 
" GUI 模式淺色背景,終端模式深色背景
if has('gui_running')
    set background=light
else
    set background=dark
endif
  
" 主題設置爲 solarized
colorscheme solarized

3、目錄樹(NERDTree)

    3.1、插件安裝

方式一:
git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle/nerdtree
 
方式二(Vundle 插件管理):
Plugin 'scrooloose/nerdtree'
    3.2、.vimrc 插件配置

" NERDTree
let NERDTreeHighlightCursorline = 1       " 高亮當前行
let NERDTreeShowLineNumbers     = 1       " 顯示行號
" 忽略列表中的文件
let NERDTreeIgnore = [ '\.pyc$', '\.pyo$', '\.obj$', '\.o$', '\.egg$', '^\.git$', '^\.repo$', '^\.svn$', '^\.hg$' ]
" 啓動 vim 時打開 NERDTree
"autocmd vimenter * NERDTree
" 當打開 VIM,沒有指定文件時和打開一個目錄時,打開 NERDTree
"autocmd StdinReadPre * let s:std_in = 1
"autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif
"autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif
" 關閉 NERDTree,當沒有文件打開的時候
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | end
 
" <leader>nt 打開關閉 nerdtree 窗口,在左側欄顯示
"map <leader>nt :NERDTreeToggle<CR>
map <F2> :NERDTreeToggle<CR>
" <leader>tc 關閉當前的 tab
map <leader>tc :tabc<CR>
" <leader>to 關閉所有其他的 tab
map <leader>to :tabo<CR>
" <leader>ts 查看所有打開的 tab
map <leader>ts :tabs<CR>
" <leader>tp 前一個 tab
map <leader>tp :tabp<CR>
" <leader>tn 後一個 tab
map <leader>tn :tabn<CR>


    3.3、常用快捷鍵

Ctrl - w - w    光標在 nerdtree 和 vim 編輯窗口 之間切換
<leader>nt    打開 nerdtree
q    關閉 nerdtree
o    打開選中的文件; 摺疊/展開選中的目錄
i    打開選中的文件,與已打開文件縱向排布窗口,並跳轉至該窗口
gi    打開選中的文件,與已打開文件縱向排布窗口,但不跳轉至該窗口
s    打開選中的文件,與已打開文件橫向排布窗口,並跳轉至該窗口
gs    打開選中的文件,與已打開文件橫向排布窗口,但不跳轉至該窗口
t    在新 Tab 中打開選中文件/書籤,並跳到新 Tab
T    在新 Tab 中打開選中文件/書籤,但不跳到新 Tab
x    摺疊選中結點的父目錄
X    遞歸摺疊選中結點下的所有目錄
k / j    光標在 Neadtree 上下移動
<leader>tc    :tabc   關閉當前的 tab
<leader>to    :tabo   關閉所有其他 tab
<leader>ts    :tabs   查看所有打開的 tab
<leader>tp    :tabp   前一個 tab
<leader>tn    :tabn   後一個 tab
?    顯示菜單

4、標籤導航 (tagbar)

   4.1、插件安裝

方式一(Vundle 插件管理):
Plugin 'majutsushi/tagbar'
 
插件依賴 ctags,安裝命令: 
$ sudo apt install ctags
    4.2、.vimrc 插件配置

let g:tagbar_ctags_bin = 'ctags' " tagbar 依賴 ctags 插件
let g:tagbar_width     = 30      " 設置 tagbar 的寬度爲 30 列,默認 40 列
let g:tagbar_autofocus = 1       " 打開 tagbar 時光標在 tagbar 頁面內,默認在 vim 打開的文件內
let g:tagbar_left      = 1       " 讓 tagbar 在頁面左側顯示,默認右邊
"let g:tagbar_sort      = 0       " 標籤不排序,默認排序
 
" <leader>tb 打開 tagbar 窗口,在左側欄顯示
map <leader>tb :TagbarToggle<CR>
   4 .3、常用快捷鍵

Ctrl - w - w    光標在 Tagbar 和 vim 編輯窗口 之間切換
<leader>tb    打開 tagbar
q    關閉 tagbar
j, k    上下移動光標
o(+/-)    摺疊 / 展開標籤集合
p    跳轉到選中的標籤,但光標仍停留在 Tagbar
P    打開預覽窗口顯示標籤內容,光標仍停留在 Tagbar,回車 光標跳轉至 vim 編輯窗口標籤所在位置,關閉預覽窗口
*    展開所有標籤
=    摺疊所有標籤
x    展開 / 縮小標
5、標籤列表(taglist.vim)

  5.1、插件安裝

方式一(Vundle 插件管理):
Plugin 'vim-scripts/taglist.vim'
 
" 依賴 ctags,安裝命令:
$ sudo apt install ctags
    5.2、.vimrc 插件配置

let Tlist_Show_One_File           = 1    " 只顯示當前文件的tags
let Tlist_GainFocus_On_ToggleOpen = 1    " 打開 Tlist 窗口時,光標跳到 Tlist 窗口
let Tlist_Exit_OnlyWindow         = 1    " 如果 Tlist 窗口是最後一個窗口則退出 Vim
let Tlist_Use_Left_Window         = 1    " 在左側窗口中顯示
let Tlist_File_Fold_Auto_Close    = 1    " 自動摺疊
let Tlist_Auto_Update             = 1    " 自動更新
 
" <leader>tl 打開 Tlist 窗口,在左側欄顯示
map <leader>tl :TlistToggle<CR>
    5.3、常用快捷鍵

<leader>tl    顯示 taglist 標籤窗口
q    關閉 taglist 標籤窗口
<CR>    vim 編輯窗口跳轉到光標選中的標籤定義處
o    新建 vim 編輯窗口,並跳轉到光標選中標籤定義處
p    vim 編輯窗口跳轉至標籤定義處,光標留在 taglist 窗口
u    更新標籤列表窗口中的標籤信息
s    切換標籤排序類型(按名稱序或出現順序)
x    擴展 / 收縮 taglist 標籤窗口
+ / -    展開 / 摺疊 節點
* / =    展開 / 摺疊 所有節點
F1    顯示幫助
6、狀態欄優化(vim-airline)

    6.1、插件安裝

方式一(Vundle 插件管理):
Plugin 'vim-airline/vim-airline'
    6.2、.vimrc 插件配置

let g:airline_powerline_fonts                   = 1 " 使用 powerline 打過補丁的字體
let g:airline#extensions#tabline#enabled        = 1 " 開啓 tabline
let g:airline#extensions#tabline#buffer_nr_show = 1 " 顯示 buffer 編號
let g:airline#extensions#ale#enabled            = 1 " enable ale integration
 
" 狀態欄顯示圖標設置
if !exists('g:airline_symbols')
    let g:airline_symbols = {}
endif
let g:airline_left_sep          = '⮀'
let g:airline_left_alt_sep      = '⮁'
let g:airline_right_sep         = '⮂'
let g:airline_right_alt_sep     = '⮃'
let g:airline_symbols.crypt     = '?'
let g:airline_symbols.linenr    = '⭡'
let g:airline_symbols.branch    = '⭠'
" 切換 buffer
nnoremap [b :bp<CR>
nnoremap ]b :bn<CR>
 
" 關閉當前 buffer
noremap <C-x> :w<CR>:bd<CR>
" <leader>1~9 切到 buffer1~9
map <leader>1 :b 1<CR>
map <leader>2 :b 2<CR>
map <leader>3 :b 3<CR>
map <leader>4 :b 4<CR>
map <leader>5 :b 5<CR>
map <leader>6 :b 6<CR>
map <leader>7 :b 7<CR>
map <leader>8 :b 8<CR>
map <leader>9 :b 9<CR>
    6.3、常用快捷鍵

]b / [b

切換buffer
<Leader>1~9    切換至對應 num 的buffer
Ctrl + X    關閉當前 buffer
7、自動補全(YouCompleteMe)

    7.1、插件安裝

step 1、安裝依賴
$ sudo apt install build-essential cmake python3-dev
 
step 2、Vundle 安裝插件
Plugin 'Valloric/YouCompleteMe'
 
step 3、安裝語言支持
$ cd ~/.vim/bundle/YouCompleteMe
$ python3 install.py --clang-completer   -- C
$ python3 install.py --java-completer    -- java,需要安裝 JDK8
    7.2、.vimrc 插件配置

let g:ycm_key_list_select_com let g:ycm_global_ycm_extra_conf = '~/.vim/bundle/YouCompleteMe/third_party/ycmd/.ycm_extra_conf.py'    
let g:ycm_min_num_of_chars_for_completion               = 2 " 輸入第 2 個字符開始補全                  
let g:ycm_seed_identifiers_with_syntax                  = 1 " 語法關鍵字補全    
let g:ycm_complete_in_comments                          = 1 " 在註釋中也可以補全    
let g:ycm_complete_in_strings                           = 1 " 在字符串輸入中也能補全    
let g:ycm_collect_identifiers_from_tag_files            = 1 " 使用 ctags 生成的 tags 文件    
let g:ycm_collect_identifiers_from_comments_and_strings = 1 " 註釋和字符串中的文字也會被收入補全    
let g:ycm_cache_omnifunc                                = 0 " 每次重新生成匹配項,禁止緩存匹配項    
let g:ycm_use_ultisnips_completer                       = 0 " 不查詢 ultisnips 提供的代碼模板補全,如果需要,設置成 1 即可
let g:ycm_show_diagnostics_ui                           = 0 " 禁用語法檢查
let g:ycm_key_list_select_completion   = ['<Down>']   " 選擇下一條補全,Default: ['<TAB>', '<Down>']
let g:ycm_key_list_previous_completion = ['<Up>']     " 選擇上一條補全,Default: ['<S-TAB>', '<Up>']
let g:ycm_key_list_stop_completion     = ['<Enter>']  " 中止此次補全,Default: ['<C-y>']   
    7.3、常用快捷鍵

<Down>    選擇下一條補全
<Up>    選擇上一條補全
<Enter>    中止此次補全 / 選中補全
8、自定義代碼片段補全(ultisnips)

    8.1、插件安裝

方式一:
$ cd ~/.vim/bundle
$ git clone git://github.com/SirVer/ultisnips.git
$ git clone git://github.com/honza/vim-snippets.git
 
方式二(Vundle 插件管理):
Plugin 'SirVer/ultisnips'
" 網友貢獻的補全片段
Plugin 'honza/vim-snippets'
    8.2、.vimrc 插件配置

let g:UltiSnipsExpandTrigger       = "<c-tab>"     " 代碼片段補全觸發
let g:UltiSnipsListSnippets        = "<c-\>"       " 列出補全可選列表
let g:UltiSnipsJumpForwardTrigger  = "<c-j>"       " 下一條補全
let g:UltiSnipsJumpBackwardTrigger = "<c-k>"       " 上一條補全
let g:UltiSnipsEditSplit           = "horizontal"  " how the edit window is opened 
    8.3、常用快捷鍵

Ctrl + <Tab>    觸發代碼片段補全
Ctrl + \    觸發補全列表
Ctrl + j    下一條補全
Ctrl + k    上一條補全
9、代碼對齊(tabular)

    9.1、插件安裝

方式一:
$ cd ~/.vim/bundle
$ git clone git://github.com/godlygeek/tabular.git
 
方式二(Vundle 插件管理):
Plugin 'godlygeek/tabular'
    9.2、常用命令

:Tabularize /,    逗號(,)對齊,逗號分割的各部分左對齊,逗號兩邊添加至少 1 個空格
:Tabularize /,/r1    逗號(,)對齊,逗號分割的各部分右對齊,逗號兩邊添加至少 1 個空格
:Tabularize /,/l1    逗號(,)對齊,逗號分割的各部分左對齊,逗號兩邊添加至少 1 個空格
:Tabularize /,/c1    逗號(,)對齊,逗號分割的各部分中心對齊,逗號兩邊添加至少 1 個空格
:Tabularize /,/r1c1l0    逗號(,)對齊,第一個逗號前的文本右對齊,添加 1 個空格;逗號居中對齊,添加 1 個空格;逗號後的文本左對齊,不添加空格
:Tabularize /^[^,]*\zs,/r0c0l0    第一個逗號(,)對齊,第一個逗號前的文本右對齊,第一個逗號後的所有文本左對齊
10、快速添加/刪除註釋(nerdcommenter)

    10.1、插件安裝

方式一:
$ cd ~/.vim/bundle
$ git clone https://github.com/scrooloose/nerdcommenter.git
 
方式二(Vundle 插件管理):
Plugin 'scrooloose/nerdcommenter'
    10.2、.vimrc 插件配置

Plugin 'scrooloose/nerdcommenter'
let g:NERDSpaceDelims            = 1                                    " 在註釋符號後加一個空格
let g:NERDCompactSexyComs        = 1                                    " 緊湊排布多行註釋
let g:NERDDefaultAlign           = 'left'                               " 逐行註釋左對齊
let g:NERDAltDelims_java         = 1                                    " JAVA 語言使用默認的註釋符號
let g:NERDCustomDelimiters       = {'c': {'left': '/*', 'right': '*/'}} " C 語言註釋符號
let g:NERDCommentEmptyLines      = 1                                    " 允許空行註釋
let g:NERDTrimTrailingWhitespace = 1                                    " 取消註釋時刪除行尾空格
let g:NERDToggleCheckAllLines    = 1                                    " 檢查選中的行操作是否成功
    10.3、常用快捷鍵

[count]<leader>cc    
註釋當前行起始的 [count]行 或者 註釋 visual mode 選中的文本

[count]<leader>cn    註釋方式同 <leader>cc,但是強制嵌套
[count]<leader>c<space>    
切換所選行的註釋狀態。 如果註釋了最上面的選定行,則取消註釋所有選定行,反之亦然。

[count]<leader>cm    使用一組多行註釋符註釋選定行
[count]<leader>ci    單獨切換所選行的各行註釋狀態
[count]<leader>cs    使用塊格式佈局註釋掉選定的行。
<leader>c$    註釋從光標到行尾的當前行。
<leader>cA    
在行尾添加註釋,並切換至插入模式,光標停留在註釋符中間

[count]<leader>cl
[count]<leader>cb    
註釋方式同 <leader>cc,註釋符左對齊(<leader>cl)或者兩邊對齊(<leader>cb)

[count]<leader>cu    取消選定行的註釋
11、代碼動態檢查(ale)

    11.1、插件安裝

方式一:
$ cd ~/.vim/bundle
$ git clone https://github.com/w0rp/ale.git
 
方式二(Vundle 插件管理):
Plugin 'w0rp/ale'
    11.2、.vimrc 插件配置

let g:ale_lint_on_text_changed       = 'normal'                     " 代碼更改後啓動檢查 
let g:ale_lint_on_insert_leave       = 1                            " 退出插入模式即檢查
let g:ale_sign_column_always         = 1                            " 總是顯示動態檢查結果
let g:ale_sign_error                 = '>>'                         " error 告警符號
let g:ale_sign_warning               = '--'                         " warning 告警符號
let g:ale_echo_msg_error_str         = 'E'                          " 錯誤顯示字符
let g:ale_echo_msg_warning_str       = 'W'                          " 警告顯示字符
let g:ale_echo_msg_format            = '[%linter%] %s [%severity%]' " 告警顯示格式
 
" C 語言配置檢查參數
let g:ale_c_gcc_options              = '-Wall -Werror -O2 -std=c11'
let g:ale_c_clang_options            = '-Wall -Werror -O2 -std=c11'
let g:ale_c_cppcheck_options         = ''
" C++ 配置檢查參數
let g:ale_cpp_gcc_options            = '-Wall -Werror -O2 -std=c++14'
let g:ale_cpp_clang_options          = '-Wall -Werror -O2 -std=c++14'
let g:ale_cpp_cppcheck_options       = ''
 
"使用clang對c和c++進行語法檢查,對python使用pylint進行語法檢查
let g:ale_linters = {
\   'c++': ['clang', 'gcc'],
\   'c': ['clang', 'gcc'],
\   'python': ['pylint'],
\}
" <F9> 觸發/關閉代碼動態檢查
map <F9> :ALEToggle<CR>
"普通模式下,ak 前往上一個錯誤或警告,aj 前往下一個錯誤或警告                                                                                                                                                    
nmap ak <Plug>(ale_previous_wrap)
nmap aj <Plug>(ale_next_wrap)
" ad 查看錯誤或警告的詳細信息
nmap ad :ALEDetail<CR>
    11.3、常用快捷鍵

<F9>    觸發/關閉代碼動態檢查
ak    前往上一個錯誤或警告
aj    前往下一個錯誤或警告
ad    查看錯誤或警告的詳細信息
12、模糊搜索(fzf.vim)

    12.1、插件安裝

方式一(Vundle 插件管理):
Plugin 'junegunn/fzf', { 'dir': '~/.vim/bundle/fzf', 'do': './install --all' }                                           
Plugin 'junegunn/fzf.vim'
    12.2、.vimrc 插件配置

" 調用 Rg 進行搜索,包含隱藏文件
" 此命令依賴 ripgrep,ripgrep 安裝請參照 https://github.com/BurntSushi/ripgrep
command! -bang -nargs=* Rg
  \ call fzf#vim#grep(
  \   'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(<q-args>), 1,
  \   <bang>0 ? fzf#vim#with_preview('up:60%')
  \           : fzf#vim#with_preview('right:50%:hidden', '?'),
  \   <bang>0)
 
" 在當前目錄搜索文件
nnoremap <Leader>f :Files<CR>
" 切換 Buffer
nnoremap <Leader>b :Buffers<CR>
" 在當前所有加載的 Buffer 中搜索包含目標詞的所有行
nnoremap <Leader>l :Lines<CR>
" 在當前 Buffer 中搜索包含目標詞的所有行
nnoremap <Leader>bl :BLines<CR>
" 在 Vim 打開的歷史文件中搜索,相當於是在 MRU 中搜索
nnoremap <Leader>h :History<CR>
    12.3、常用快捷鍵

<Leader>f    在當前目錄搜索文件
<Leader>b    切換 Buffer
<Leader>l    在當前所有加載的 Buffer 中搜索包含目標詞的所有行
<Leader>bl    在當前 Buffer 中搜索包含目標詞的所有行
<Leader>h    在 Vim 打開的歷史文件中搜索
    13.4、常用命令

Files [PATH]    普通文件查找 (similar to :FZF)
GFiles [OPTS]    git文件查找 (git ls-files)
GFiles?    git文件查找 (git status)
Buffers    buffer文件切換
Lines [QUERY]    加載的所有buffer裏查找
BLines [QUERY]    在當前buffer裏查找包含某關鍵詞的行
Tags [QUERY]    以Tag查找 (ctags -R)
BTags [QUERY]    Tags in the current buffer
History    oldfiles and open buffers
Commits    Git commits (requires fugitive.vim)
BCommits    Git commits for the current buffer
Commands    Commands
Helptags    Help tags
13、快速定位(vim-easymotion)

    13.1、插件安裝

方式一(Vundle 插件管理):
Plugin 'easymotion/vim-easymotion'
     13.2、.vimrc 插件配置

let g:EasyMotion_do_mapping = 0  " Disable default mappings                                                              
let g:EasyMotion_smartcase  = 1  " Turn on case-insensitive feature
 
" Find {char}{char} forward and backward at the same time                                                                
nmap <Leader>s <Plug>(easymotion-sn)                                                                                     
xmap <Leader>s <Plug>(easymotion-sn)                                                                                     
omap <Leader>s <Plug>(easymotion-sn)                                                                                     
" Beginning of word forward and backward                                                                                 
nmap <Leader>w <Plug>(easymotion-overwin-w)                                                                              
xmap <Leader>w <Plug>(easymotion-bd-w)                                                                                   
omap <Leader>w <Plug>(easymotion-bd-w)                                                                                   
" Line downward and upward                                                                                               
nmap <Leader>ej <Plug>(easymotion-overwin-line)                                                                                                                                                              
xmap <Leader>ej <Plug>(easymotion-bd-jk)                                                                                 
omap <Leader>ej <Plug>(easymotion-bd-jk)                                                                                 
" jump to anywhere in line                                                                                               
nmap <Leader>ea <Plug>(easymotion-lineanywhere) 
    13.3、常用快捷鍵

<Leader>s    搜索字符,字符個數不限,<CR> 結束
<Leader>w    定位到每個單詞的開始
<Leader>ej    行快速跳轉
<Leader>ea    行內快速定位
13、個人WIKI(vimwiki)

    13.1、插件安裝

方式一:
$ cd ~/.vim/bundle
$ git clone https://github.com/vimwiki/vimwiki.git
 
方式二(Vundle 插件管理):
Plugin 'vimwiki/vimwiki'
    13.2、.vimrc 插件配置

    13.3、常用快捷鍵

<leader>ww    打開默認的 wiki 目錄文件
<leader>wt    在新標籤(Tab)中打開 wiki 目錄文件
<leader>ws    在多個 wiki 中選擇並打開該 wiki 的目錄文件
<leader>wd    刪除當前 wiki 文件
<leader>wr    重命名當前 wiki 文件
<Enter>    創建或打開 wiki 鏈接
<Shift-Enter>    先上下分屏再打開 wiki 鏈接(若非鏈接則先創建)
<Ctrl-Enter>    先左右分屏再打開 wiki 鏈接(若非鏈接則先創建)
<Backspace>    返回之前瀏覽的 wiki 文件
<Tab>    跳到本文件中下一個 wiki 鏈接
<Shift-Tab>    跳到本文件中上一個 wiki 鏈接
    13.4、常用命令

:Vimwiki2HTML    將當前 wiki 文件轉換成 HTML 網頁
:VimwikiAll2HTML    把所有 wiki 文件轉換成 HTML 網頁
:help vimwiki-commands    顯示全部命令

————————————————
版權聲明:本文爲CSDN博主「微塵_Frank」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/bc516125634/article/details/88858097

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章