VIM

17804 ワード

1、c++のmanドキュメントをインストールする(これはVIMプラグインではない)
から
http://gcc.gnu.org/mirrors.htmlのいずれかのミラーステーションで、最新のlibstdc++/doxygen/libstdc++-man-xxxxxをダウンロードする.tar.bz2
それからLinuxディレクトリの下に置いて、中のman 3フォルダの中のファイルをすべて/usr/share/man/man 3ディレクトリの下に解凍します.
これにより、man std::stringというコマンドを使用してヘルプを表示できます.
 
2、プロファイルの場所:
/etc/vimrcファイルはシステム全体のVIMプロファイルであり、ユーザプロファイルは$HOME/である.vimrc($HOMEディレクトリの下でls-aを実行して表示できますが、デフォルトではありません.作成できます).
 
3、プラグインの保管場所:
システムの位置はvimインストールディレクトリで、一般的に/usr/share/vim/vim 70/、ユーザーの位置は$HOME/.vim/(存在しない場合は新規ディレクトリを作成すればよい)では、一般的にプラグインは後ろのディレクトリに置いておくと機能します.(omnicppcompleteなど)
 
4、VIMプロファイル
"    
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$"
    set fileencodings=utf-8,latin1
endif


"  vi   
set nocompatible    "set nocp

"      ,          /usr/share/vim/vim70/colors    
"colorscheme default
colorscheme desert

" backspace     
set backspace=indent,eol,start

"      
syntax on
"syntax enable

"               
set autoindent

"      ,              
set smartindent

"      ,  <<   >>        
set shiftwidth=4    "se sw=4

"TAB  
set tabstop=4

"    
set nu

"    ,         ,            
"set showmatch

"
set ruler

"       ,      ,            “~“  
"set nobackup
"set backup

"           ,              ,          
"        :set paste        :set nopaste
"set paste

"      
"set foldmethod=manual

"            
filetype on

"  vim      ,   :  ,           
set history=10

"        
set ignorecase

"      
map <F6> :make<CR>

"          
set hlsearch

"             
set nowrapscan

"
"set cursorline

"      ,   1
set cmdheight=1

"
" OmniCppComplete   ,        
filetype plugin on 

"   tags    
set tags+=tags
set tags+=/usr/share/vim/vim70/tags/libc.tags
set tags+=/usr/share/vim/vim70/tags/susv2.tags
set tags+=/usr/share/vim/vim70/tags/glib.tags
set tags+=/usr/share/vim/vim70/tags/cpp.tags

"OmniCppComplete     
let OmniCpp_NamespaceSearch = 1
let OmniCpp_GlobalScopeSearch = 1
let OmniCpp_ShowAccess = 1
let OmniCpp_ShowPrototypeInAbbr = 1 " show function parameters
let OmniCpp_MayCompleteDot = 1 " autocomplete after .
let OmniCpp_MayCompleteArrow = 1 " autocomplete after ->
let OmniCpp_MayCompleteScope = 1 " autocomplete after ::
let OmniCpp_DefaultNamespaces = ["std", "_GLIBCXX_STD"]

 
VIMで開くファイルに中国語の文字化けしがある場合は、プロファイルに次のように追加できます.
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

 
 
5、OmniCppComplete補完プラグイン
何年も更新されていませんが、最新バージョンは2007年で、ダウンロードアドレスはhttp://www.vim.org/scripts/script.php?script_id=1520ですが、まだ使いやすいです.
ダウンロード後、$HOME/.vim/ディレクトリの下で解凍すればいいです.次にVIMプロファイルで構成を行い、構成は第4条を参照してください.
このプラグインはtagsで補完されるので、まずtagsファイルを生成し、プロファイルにファイルパスを追加します.
ctags -R --c++-kinds=+p --fields=+iaS --extra=+q .
 
新時代のVim C++自動補完プラグインclang_complete
http://www.cnblogs.com/Jiajun/p/3307979.html
ダウンロード先:http://www.vim.org/scripts/script.php?script_id=3302
ダウンロード後、次の文を実行してインストールを完了します.
vim clang_complete.vmb -c 'so %' -c 'q'

あるいはダウンロードしたclangを直接complete.vmbはホームディレクトリにコピーします.vim/plugin下
この場合、一般的なC++コードを作成するにはスマートヒントがあるはずですが、C++11に関連するコードにはありません.例えば、スマートポインタなどです.この場合、/etc/vimrcファイルを編集し、以下を加えます.
let g:clang_complete_copen=1
let g:clang_periodic_quickfix=1
let g:clang_snippets=1
let g:clang_close_preview=1
let g:clang_use_library=1
let g:clang_user_options='-std=c++11 -Imyinclude'

正直、前は何の意味か分かりませんが、最後の一言が大きく、c++11を導入し、自分が指定したヘッダファイルディレクトリ(見つからない場合)と
参照先:http://www.cnblogs.com/egmkang/archive/2011/02/20/clang_complete.html
  • Ctrl+Nを使用して補完リスト
  • を強制的に開く
  • それぞれCtrl+NとCtrl+Pを用いて
  • とを上下に反転する.
  •  

  • 二、VIM構文ファイルの構成:
    VIM構文ファイルは、一般にvim 72:/usr/share/vim/vim 72/syntax/フォルダの下、例えばc.vim、cppにある.vimなどは、ホームディレクトリの下で新規作成することもできます~/.vim/syntax/c.vimなど.
    1、カスタムクラスなどのカスタムキーワードを追加する:
    " User Defined DataType
    syn keyword cType User Room Game user_ptr

    2、関数の追加
     
    3、オペレータの追加
     
     
     
    "========================================================
    " Highlight All Function
    "========================================================
    syn match cFunction "/<[a-zA-Z_][a-zA-Z_0-9]*/>[^()]*)("me=e-2
    syn match cFunction "/<[a-zA-Z_][a-zA-Z_0-9]*/>/s*("me=e-1
    hi cFunction gui=NONE guifg=#B5A1FF
    "========================================================
    " Highlight All Math Operator
    "========================================================
    "C math operators
    syn match cMathOperator display "[-+/*/%=]"
    " C pointer operators
    syn match cPointerOperator display "->/|/."
    " C logical operators - boolean results
    syn match cLogicalOperator display "[!<>]=/="
    syn match cLogicalOperator display "=="
    " C bit operators
    syn match cBinaryOperator display "/(&/||/|/^/|<</|>>/)=/="
    "syn match cBinaryOperator display "/~"
    "syn match cBinaryOperatorError display "/~="
    " More C logical operators - highlight in preference to binary
    syn match cLogicalOperator display "&&/|||"
    syn match cLogicalOperatorError display "/(&&/|||/)="
    " Math Operator
    hi cMathOperator guifg=#3EFFE2
    hi cPointerOperator guifg=#3EFFE2
    hi cLogicalOperator guifg=#3EFFE2
    hi cBinaryOperator guifg=#3EFFE2
    hi cBinaryOperatorError guifg=#3EFFE2
    hi cLogicalOperator guifg=#3EFFE2
    hi cLogicalOperatorError guifg=#3EFFE2
    
    
    "========================================================
    " My Own DataType
    "========================================================
    syn keyword cType User Room Game

     
    cpp.vimでは、次のように色を設定します.
    hi cPointerOperator guifg=#3EFFE2 ctermfg=132

    このうちguifgはGUIの前景色を表し,ctermfgはカラー端末の前景色を表す.(guibg、ctermbg、gui、ctermなどの属性を設定し、bold、underlineの値を設定することもできます.
    export TERM=xterm-256 color設定端末は256色を用いる.
    http://www.vim.org/scripts/script.php?script_id=3412からxterm-color-table.vim.tar.gzをダウンロードし解凍後、plugin/xterm-color-table.vimはvimのプラグインディレクトリに配置され、VIMで実行されます:XtermColorTableは次の画像を表示します.
    VIM_第1张图片
     
    カーソルは1つの単語にあり、gdを押すと、このファイル内のすべての単語がハイライト表示され、定義にジャンプします.*キーを押すと次のキーにジャンプします.キーを押すと前にジャンプします.
     
    http://blog.csdn.net/fbfsber008/article/details/7055842
     
     
     
    ctags:
    http://ctags.sourceforge.net/
    Ctrl+]は定義にジャンプし、Ctrl+Tは前のジャンプに戻ります.
    ctags --exclude=include/boost -R --c++-kinds=+px --fields=+iaS --extra=+q .
    注意:--exclude=include/boostは必ず-R*の前に
    各パラメータは次のように解釈されます.
    -R:ctagsループ生成サブディレクトリのtags
    --c++-kinds=+px:ctagsレコードc++ファイルの関数宣言と各種外部および前方宣言
    --fields=+iaS:ctagsは記述された情報を要求し、iは継承がある場合、親を識別することを示す.aは、要素がクラスメンバーである場合、その呼び出し権限(すなわちpublicかprivateか)を明記し、Sは関数である場合、関数のsignatureを識別することを示す.
    --extra=+q:ctagsに次のような操作を強制します.構文要素がクラスのメンバーである場合、ctagsはデフォルトで1行を記録します.ctagsは同じ構文要素にもう1行を記入するように要求できます.これにより、VIM内の複数の同名関数がパスによって区別されることを保証できます.
     
    参照:http://www.vimer.cn/2009/10/%E5%9C%A8vim%E4%B8%AD%E4%BD%BF%E7%94%A8ctags.html
    http://www.vimer.cn/
     
     
    VIMは同時に複数のファイルを編集する:
    http://blog.sina.com.cn/s/blog_6c9d65a10100nj76.html