vim插件的安裝方式 -- vim註釋插件和doxygen函數註釋生成插件-ctrlp插件-tabular等號對齊 插件

使用unzip的時候 指定 -d選項, 是說明解壓到的 目標地址. 這個參數仍是比較方便的, 比直接unzip到當前目錄, 而後在去拷貝到目標目錄, 而後再刪除當前目錄中的解壓文件夾, 方便多了.php

使用:x命令, 方便直接; 由於它就相似於(注意不是等於same):wq, 並且, "只有當發生改變時才寫入": "only when changes have been made".
like和same as. like是相似, 而same是等同於, 因此這裏的:x是用的 like 而不是same.
html

用unzip解壓時, 是 從 archive inflating 到目標文件夾, 解壓是膨脹, zip纔是deflating.linux

vim在跳轉到行首時, 不能使用 s-i 來實現, 由於這樣的話, 就不能輸入大寫的I 了. 一樣的道理, 其餘映射都不能使用 s-字母了.c++

vim的幫助仍是頗有用的. 使用幫助時, 鍵入: :help :x(等命令) , 要查詢的內容能夠是整個命令, 包括 (冒號), 那麼首先要創建幫助: 使用命令: :helptags 插件所在的doc目錄 如: :helptags ~/.vim/doc 固然是在vim中來執行的. 這時候, 會在doc目錄中生成一個tag 文件. 這個文件就是vim幫助命令 所要搜索的文件....git

vim中set hidden的含義?github

tmux? 是linux的終端複合器正則表達式

在 CentOS 和 RHEL 中,它不存在於官方的軟件源中,因此須要添加 EPEL 庫。添加命令:    [root@server ~]# rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm   添加完畢後,能夠用下面的命令來安裝它:     [root@server ~]# yum install tmux       安裝完畢後,只須要執行以下命令就可使用它了:      [root@server ~]# tmux
執行這個命令後,您將會被轉移到 Tmux 的會話中。轉移到會話中後,您須要先按下 Ctrl+B ((ctrl -b 叫作 命令前綴~ )才能執行其餘的命令。您能夠先按下 Ctrl+B 後按 "?" 來查看全部支持的命令。

vim中的快捷方式的設置? 之前老是習慣於 跟其餘控制鍵, 如cttrl, shift, alt等等結合添加在一塊兒使用, 如今看來, 儘可能對於本身定義的映射鍵, 儘可能不要使用 其餘控制鍵, 儘可能使用 普通的 "雙字母/三字母"按鍵 來映射, 好比: jk, jj, kk, hh ll 等就是很好的例子. 因此這樣看來 , vim的自定義鍵映射就是無窮無盡的了. 並且, 控制鍵ctrl,shift,alt等一般是一些 官方的, 比較nb的插件的 配置 會使用這些輔助控制鍵!


vim插件的安裝方式:
step 1. 下載解壓
step2. 兩種安裝方式,vim

一是, 直接將 plugin.zip解壓到 ~/.vim目錄中就好. 這時候, 解壓出來會自帶目錄 doc/NERD_commenter.txt, plugin/NERD_commenter.vim, 而後就可使用了
二是, 不解壓到 ~/.vim目錄中 , 而是放到 vimfiles中, 好比: /usr/share/vim/vimfiles/ 中對應的doc, plugin目錄中.緩存

step3. 可是這個時候, 還不能使用, 還要在vimrc中對 插件 進行相關的 配置
好比:app

let NERDSpaceDelims=1           " 讓註釋符與語句之間留一個空格
let NERDCompactSexyComs=1       " 多行註釋時樣子更好看
let g:NERDDefaultAlign = ‘left‘  "將行註釋符左對齊

--------

最經常使用的操做命令:
,cc 單行註釋   註釋方式//
,cm 對選中的範圍多行註釋  註釋方式爲 /* ... */
,cs 以」性感」的方式註釋

,cu 取消註釋
,ca 切換// 與/**/註釋方式   這個只是切換, 並不註釋

DoxgenToolkit 的使用, 下載地址: http://www.vim.org/scripts/script.php?script_id=987 可是, 若是用vundle安裝的話, 直接就是: Bundle 'DoxygenToolkit.vim'
參考: c/c++的註釋風格: http://guqian110.github.io/pages/2015/01/12/learning_vim_doxygentoolkit.html

map fg : Dox<cr>
let g:DoxygenToolkit_authorName="citongke1"
let g:DoxygenToolkit_licenseTag="My ownlicense\<enter>"
let g:DoxygenToolkit_undocTag="DOXIGEN_SKIP_BLOCK"
let g:DoxygenToolkit_briefTag_pre = "@brief\t"
let g:DoxygenToolkit_paramTag_pre = "@param\t"
let g:DoxygenToolkit_returnTag = "@return\t"
let g:DoxygenToolkit_briefTag_funcName = "yes 或者no"    // 這個是指, 是否在註釋中 自動 包含函數名稱

let g:DoxygenToolkit_maxFunctionProtoLines = 30
====================

使用 DoxygenToolkit的限制條件:

對函數生成註釋的限制:
1. 假設函數名(後面的左括號)至少在當前光標位置後的第三行;(即: 當前光標行和函數定義行中間最多隔 2個空行, 不然就不能生成函數註釋 ,此時 函數前用:Dox, 則不會生成註釋,tip:  nothing to document here)... 注意, 生成函數註釋時, 會自動將註釋和函數名稱之間的 空行 給刪除掉! 
2. 在註釋塊在寫入以前不能再次更新;
3. 塊分隔符(頭部和尾部)只包含函數註釋(就是隻有函數註釋才生成塊header和 block footer, 其餘像 license, author則沒有塊頭部和腳部註釋);    
4. 假設已經使用了縮進;
5. 函數參數中獲得註釋還不支持;(像void foo(int bar /* ... */))
6. 定製輸出腳本,在腳本文件中,在.vimrc中設置g: DoxygenToolkit_*變量:

Doxgen的主要命令, 就是有三個: 一個是全文的 license, 使用命令: DoxLic, 二個 是全文的author做者信息. 使用命令: DoxAuthor, 三個 是單個單個的 函數 的註釋 直接就是 :Dox

關於 vim配置文件的更新 生效問題?

  1. 配置文件自己 vimrc, 一旦修改保存後就生效.
  2. 這個問題的關鍵是 指, 當一個普通文件用vim打開後, 這時候, 會首先processing /etc/vimrc處理 載入配置文件, 後纔打開本文件, 因此 打開一個普通文件後, 再去修改vimrc這時被修改 的配置是不會生效的, 要 從新啓動 這個普通文件後, 讓修改後的配置文件從新載入後, 才能使新的配置生效.
  3. 因此說, 在修改配置的時候, 觀察配置的效果時, 須要重啓的是, 普通文件, 而 配置文件 只管修改它 保存就是了. 沒必要關閉..

關於在各個模式下都能生效的 鍵映射

  1. 好像map只能在noral下生效(不是傳說中 的全部模式下..), 而imap只能在插入模式下生效. 二者不能呼喚.
  2. 一樣的鍵映射在不一樣的模式下, 所起的做用是不一樣的. 特別是對於 冒號命令. 冒號命令應該是 只能在 normal下生效 "執行命令", 若是是在insert模式下, 它將不會執行命令, 而只是機械的按 原樣的 替換成 映射的 按鍵. 如: imap cm :Dox<CR> 在插入模式下, 按cm將只會在 文檔中, 插入 'literal'的 :Dox<cr> , 只是這樣的文本, 可是不會做爲 冒號命令來執行.
  3. 因此, 在插入模式下, 要將鍵映射爲能夠執行的命令, 應該 先用esc退回到 normal模式下, 而後再執行 冒號命令, 即: imap cm <esc>:Dox<CR> 在冒號前面有 esc
  4. 要使doxygen在插入和normal模式下, 都可以起做用, 就應該 配置 兩條這樣的命令:
imap cm   <esc>:Dox<CR>
 map cm   :Dox<CR>

vim下的模糊搜索插件ctrlp.vim? 注意這裏的名字就是 ctrlp, 不是一個組合鍵.

  1. 是使用頻率最高的插件之一, 做用: 模糊搜索, 能夠搜索的對象是: 普通文件 / buffer / mru / tag 等等, github: 原始的是 kien/ctrlp, 也可以使用的國人改進版本 ctrlpvim/ctrlp.vim
  2. 下載地址: 在github上的: https://github.com/ctrlpvim/ctrlp.vim 和bundle條目 : Bundle 'ctrlpvim/ctrlp.vim'
  3. 將下載下來的zip解壓後, 放入相應的位置便可. 好比, 這裏 將 解壓後的 autoload/ , doc/, plugin/ 目錄放入到 ~/.vim/ 目錄中.
  4. 相應的配置:
    最基本的用法:

    一般有三種搜索模式, 即三種搜索地方: 搜索普通文件和目錄: CtrlP (Files finder mode); 搜索buffers: CtrlPBuffer; 搜索最近使用的文檔: CtrlPMRU;
    在 files, buffers, MRU中 混合搜索: CtrlPMixed : to search in Files, Buffers, MRU files at the same time

purge: 清除, 清洗, purge the cache of the current file : 清除當前文件的緩存...

梗概ctrlp的搜索目錄和路徑: 打開GVIM以後,首先"cd 【path】",而後再在此路徑中使用CtrlP,就能夠一直保持路徑爲當前路徑了。

md的 反引號 匹配, 老是 "貪婪匹配", 當有三個反引號的時候, 中間的那一個反引號被忽略, 貪婪匹配到最後一個 反引號!

不讓vim生成備份文件?
set nobackup
set noswapfile
要使用這兩條 命令才行!

ctrlp爲何不搜索?

記住, 所謂的 ctrl-x, ctrl-v, ctrl-t 是指 ctrlp搜索後, 在搜索結果中打開的方式....

使用vim-multiple-cursor 能夠實現一處輸入, 多處修改的 功能

Plugin 'terryma/vim-multiple-cursors'
let g:multi_cursor_use_default_mapping=0
let g:multi_cursor_next_key='<C-n>'
let g:multi_cursor_prev_key='<C-b>'
let g:multi_cursor_skip_key='<C-x>'
let g:multi_cursor_quit_key='<Esc>'

用法是: 先按v, 配合其餘w, b等選擇內容, 而後按ctrl-n, ctrl-b, ctrl-x, 進行多處選中, 而後使用vim的命令進行編輯, 完成後, 按esc退出.

可是, 要注意, multiple-cursor的操做, 並非vim中的全部命令, 好比 "r" 命令, 會報錯說: key "r" cannot be replayed at 4 cursor locations. replay(重播, 重放, 重複出現的事物)
好像, 必定要通過插入模式 , 也就是 能夠有兩種操做方法, 一種是 先d, 而後i, 另外一種是s. 要能出現: -- ( insert ) --

ctrlp是搜索; 輸入想要打開的文件名,或者文件名的一部分,或者路徑 可是不能搜索 "文件中的內容字符串???"

難道, ctrlp必須使用 .git目錄???

好像是的! ctrlp的中文參考: http://blog.codepiano.com/pages/ctrlp-cn.light.html


vim插件腳本的位置?

  1. vim.org是主要 關注/ 關於vim這個程序軟件 自己的站點, 雖然裏面也有 vim scripts插件腳本, 可是不是很全很好.
  2. vim的插件的腳本 站點, 主要仍是: bronson(布朗森) 建立的 vim-scripts.org , 這個裏面的插件不少很全很豐富. vundle,bundle, plugin 默認的安裝插件的地方就是這個 vim-scripts.org, 因此vundle中凡是vim-scripts.org中的插件都直接寫插件名稱就行了.
  3. 而vim-scripts.org其實是創建在 github page中 的. 因此vim-scripts和github有很是密切的關聯. github上的非vim-scripts的插件, 要使用 Plugin "author/plugin-script-name"
  4. 而其餘非github - vimscript 的插件, 則寫 git的完整地址

vim搜索 任意文本? 參考: http://ikuduku.com/blog/find-text-in-project-within-vim

easygrep?

安裝vim wiki: 好像自己不是用來搜索的, 而是用來寫 我的 wiki的. pedion[pedi2n], 晶體, 細小的東西, 它的複數是: pedia. [pedi2]. 表示不少的細小的東西, 即 "百科".

vim 安裝 tabular. 等號對齊的插件?


關於git

  1. 初始化一個git倉庫的時候, 使用 git init /git clone. 固然是在你的工做目錄下進行初始化; 而後 進行添加到index: git add ... (添加後成爲 tracked , 未add的叫作 untracked present); 而後是提交: git commit -m (msg是必須的, 不然會abort提交);
  2. 而後是查看倉庫, git log; git show(查看倉庫中的各類對象); git status(查看工做區) 在倉庫的維護中, 是經過 commit id 來區分每一次commit的.
  3. git的結構: 你所在的/進行編碼的目錄, 就是你的workspace, => index 暫存區 => 倉庫repository. 之因此這樣設計, 是爲了進行一個 緩衝, 從工做區到 index再到repos, 從workspace 到 index你還能夠該動, 不至於 去頻繁改動倉庫, 不至於頻繁地生成 commit id. 和各類倉庫的維護信息, 下降成本.
  4. git 的設計思想, 其實並不複雜, 也不陌生: 就是咱們經常使用的版本迭代: 必然咱們在修改一篇很重要的文章時, 可能須要進行大量的增刪, 爲了防止丟失, 和可以保留以前的歷史中的內容, 以便於之後的編輯中, 還能 '引用' 到以前的內容. 這時候, 就須要建一個文件夾, 將每次修改的文章都保存下來, 而後, 編輯一次, 就保留一次, 這樣將每一次編輯保留的文章都放在文件夾中, 這樣的話, 這個文件夾就是一個倉庫. 裏面的每個文件, 就是一次 commit提交. 這就是 git的思想. git就是將每一次編輯的東西都保存下來. ...只不過, git的附加功能要多一點, 可是這些所謂的附加功能其實也是linux自己就有的命令, 好比 倉庫中的同一個文件在多我的提交時發生衝突時的 比較diff和合並merge. 而後git可能要多一些瀏覽和統計的功能, 如git log, show, git status等命令就是這樣的.


over- 前綴, 表示 "完了的, game is over, 大於的, 翻越的, 過多的, 過分的.." 一般具備否認和很差的意味.
如: overrule: 否決, 否認, 駁回 . 用rule權力表示完了, 就是否決的意思
put: 放, 放置, 安裝... when a number is put before this command this is used as the maximum number of match to find (when for while等前置從句不必定在主句之間加逗號)

quickfix

  • quickfix: 快修, 快速恢復, 本來是c/vim 編譯器中的一個編譯選項. 目的是 : Quickfix模式的主要思想是保存一個位置列表,而後提供一系列命令,實如今這個位置列表中跳轉。 位置列表的產生能夠從編譯器的編譯輸出信息中得到,也能夠由grep命令的輸出信息中得到,
  • quickfix主要是在vim中, 在編譯連接 c/c++程序時, 提升修正bug的效率, 將編譯後的錯誤 重定向到一個 臨時文件中, 而後你可使用命令 在這些錯誤 的條目間 進行跳轉....跟quickfix命令同時使用的命令主要有: make, makeprg, 即: 在vim中, 先設置編譯選項: set makeprg=gcc -Wall -ohello hello.c 將hello.c文件編譯成hello目標文件, -Wall= warning all打開全部的警告信息. 因爲vim的選項命令中 不容許使用空格, 因此要轉義. 而後使用命令將編譯錯誤的臨時文件中的條目 提取出來進行修改, 包括 :cc, :cw :cn, :cp, :cl (做爲一個比較完整的,全面的列表顯示出來.) 等等, 其中 cw就是打開quickfix 快速修正窗口, 以便於查看和快速定位錯誤位置...

vimgrep lvimgrep在目錄中查找字符串? 參考: http://easwy.com/blog/archives/advanced-vim-skills-quickfix-mode/

  1. 雖然ctrlp號稱殺手級插件, 可是, 它只能是搜索" 文件名稱", 可是不能進入到文件內部 去查找 文件的內容(文件內容包含的字符串). 而 vim使用的grep, lgrep, vimgrep, lvimgrep則能夠進入到文件內部進行內容的搜索..., 這正是我所須要的. ctrlp只是查找文件名. ???grep?? 的grep是正則表達式搜索文件內容!
  2. vim中使用grep, lgrep是藉助於外部的命令, 而vimgrep和lvimgrep自己就是vim的內部命令.
  3. grep和vimgrep(能夠簡寫爲vimg) 的搜索結果是放在 quickfix list中的, 因此, 使用:cw , 或copen(c表示quickfix)打開; 而lgrep和lvimgrp中的l表所是Location, 本地的. 表示其搜索結果放入到location list本地列表, 結果用 :lw, 或 lopen 來打開. w和open都是打開的意思.
  4. grep和vimgrep等都是用正則表達式來搜索的, 因此命令後面就要接regexp, 要搜索 的文件和目錄能夠是多個, 並且最重要的是, 可使用wildchar同配符, 如: vimg /\<\(DEDEINC\|dedeinc\)\>/gj **/*.php
  5. 將lvimgrep進行鍵映射: map sr :noautocmd execute "lvimgrep /" . expand("<cword>") . "/gj **/*" <Bar> lw<CR>

vim能夠同時記住最新的10個錯誤列表,也就是說你最近10次使用」:make「命令編譯所遇到的錯誤都保存着,可使用」:colder「和」:cnewer「命令,回到舊的錯誤列表,或者到更新的錯誤列表。 colder: 不是cold , 而是 c -older 和 c-newer.

映射快捷鍵   tip: 使用cword取當前文件光標所在出的文字,.vimrc配置以下:
map <F3> :execute "lvimgrep /" . expand("<cword>") . "/gj **/*" <Bar> lw<CR>
這裏將 <f3> 換成 sr: search的意思.  由於f3 是全局搜索的意思.

上述配置完成後,在vim中當前光標下,按下F3就會在vim的當前目錄下搜索全部的文件及其子文件夾的文件,並顯示出來,還可使用 %:e 來作,意思是當前目錄(%)下的同類型文件(e),以下:
map <F3> :execute "lvimgrep /" . expand("<cword>") . "/gj " . expand("%:e") <Bar> lw<CR>   
這裏的 <cword> 就是 current word 當前單詞, 用 expand("<cword>") 函數處理後, 就表示, 擴展 .鏈接當前光標所在的字符串...

由於vimgrep 在搜索時, 要執行vim的時序, 因此速度較慢, 爲了提升速度, 能夠關閉 autocmd: 即: noautocmd.
所以總的配置命令就是:

map sr :noautocmd execute "vimgrep /" . expand("<cword>") . "/gj **/*" <Bar> cw<CR>

### 注意這裏, 最好是, 用 vimgrep和cw, 來操做 quickfix窗口,  就可使用quickfix的跳轉命令cn, cp cl, cc, cw等, 而若是使用lvimgrep的話, 就很差跳轉....

使用vundle的好處是:

  1. .vim下就只有三個: vimrc, bundle, after. 通常只有after(autoload), 沒有before. after主要是用來執行插件在執行後的一些動做. 全部的 安裝的插件, 都集中放在bundle目錄下, 並且是分門別類的, 按一個插件一個目錄的方式來組織的. 這樣就不會由於 多個插件, 都有autoload, after, 都有相同的文件名或子目錄, 當他們放到vimfiles的autoload, plugins中時, 發生混亂和混淆.

搜索文件和搜索內容的區別
搜索文件, 是按文件名/文件類型來搜索的, 搜索結果和目的是, 要找到咱們所須要的文件. 經常使用的命令是find, fuzzyfinder, ctrlp, unite等插件
而搜索內容, 則是進入到文件內, (僅限於文本 行 文件), 使用grep( gnu, regular print) 正則表達式 對文件內容進行搜索. 它的目的是搜索文件內容, 搜索字符串.


vim tabular插件的使用

  1. 因爲tabular是放在github上的, 並且有做者 , godlygeek/tabular, 因此 vundle的安裝方式, 就是: Plugin 'godlygeek/tabular'
  2. tabular的命令是: Tab /{對齊的符合} , 好比按照等號對齊, 就是 :Tab /=, 按照大括號拉對齊就是: Tab /{ , 可是一般來講, 對齊都是針對 等號的. 因此, 能夠把等號對齊映射爲快捷鍵, 遇到其餘對齊符號的時候, 再輸入一次就行了
  3. 在映射的時候, 不要忘了 最後的 回車<CR> 或 <cr>

相關文章
相關標籤/搜索