【vim】linux開発環境(vim+ctags+taglist+cscope+cppcomplete+global)をインストールする

6161 ワード

転載: http://blog.csdn.net/huangxiansheng1980/article/details/5819060
viをベースに、私のLinux開発環境を構築します.「VIMやEMACSをエディタとして、GCCをコンパイルし、atomakeをプロジェクトとして、Dxygenをドキュメントにし、cvsを管理する」というのも私の希望です.また、svnはcvsの代替者として言及されています.
 
インストール手順
1.gccなどを取り付ける
done in「Ubuntu装着ノート」.
2.viをvimにアップグレードする
done in「Ubuntu装着ノート」.
3.ctagsを取り付ける
〹sudo ap-get install ctags
4.ctaglistを設置する.
http://www.vim.org/scripts/script.php?script_id=273
5.cscopeをインストールする
皬sudo ap-get install cscope
6.globalを設置する
奄sudo ap-get install global
7.cppcompletteeをインストールする
http://www.vim.org/scripts/script.php?script_id=273
 
ツール紹介(2参照)
 
全体的に使用されている感覚の位置付け検索タイプの定義は基本的には使えますが、自動補完タイプの面では、ctagsの機能が限られていますので、大工程の時には、必ずしも使いやすいとは限りません.
大型プログラムは必ずglobalを参加して、その分析は比較的に全面的ですが、vimの中の提示情報は限られています.
taglist精干は、ctagsのサポートが必要で、直接に左に関数リスト、グローバルパラメータリストをリストすることができます.(並べ替え可能)
cscopeは比較的に強大で、関数と部分のタイプの定義に対してジャンプすることができて、しかし一部のBUG、いくつかの条件の下で正確に列挙の定義を分析することができないようです.
cppcompletteはctagsのサポートが必要です.全種類または関数名を補えます.(普通のCtrl+P/Nのようなものではありません.)
globalの新しいバージョンはvimに埋め込むことができます.比較的に完全な解析とタイプインデックスを提供します.cscopeと比べて、少し悪いのはタイプ参照の印刷リストにこの参照がどの関数で行われているかを識別していません.globalはvimのために生まれたのではないかと思いますが、主な目的はhtml方式で関連関係のある関係やインデックスを表現することです.cscopeのような適切さは感じられません.
 
VIM
 
VIMは本機に/usr/share/vim/vim 70カタログにインストールされています.VIM/plugin、$HOME/.vimのファイル内容と$HOME/.vimrcを変更することでVIMパラメータを設定することができます.
 
g vimまたはvim-gを使用すると、グラフィカルインターフェースのvimが起動します.
 
VIM例えばCtrl-Nは自動補完を実現できます.[Iはカーソルのある関数の声明を確認できます.Ctrl-]は関数宣言のあるファイルにジャンプします.gdは現在のファイルからローカル変数にジャンプする声明です.
 
CtagList
 
VIMで使う
「TlistToggle」command to open/close the taglist window.
「:help taglist」command to get more information aout using the taglist plugin.
 
Ctags
 
Q:標準ライブラリファイルの定義はどうやって見られますか?
A:あなたのディレクトリの下に標準ライブラリにリンクされたソースコードを作ってください.
ctags-R*
vi-t printf
 
 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1、大体の感覚では、(使用時間が長くないので、全面的ではない)全体的に使う感覚の位置付け検索タイプの定義は基本的に使えますが、自動補完タイプの面では、ctagsの機能が限られています.大型プログラムは必ずglobalを参加して、その分析は比較的に全面的ですが、vimの中の提示情報は限られています.taglist精干は、ctagsのサポートが必要で、直接に左に関数リスト、グローバルパラメータリストをリストすることができます.(並べ替えができます)cscopeは比較的に強くて、関数と一部のタイプの定義をジャンプすることができますが、いくつかのBUGは、いくつかの条件の下で分析された列挙の定義を正しく見つけることができないようです.cppcompletteはctagsのサポートが必要です.全タイプまたは関数名(普通のCtrl+P/Nのようなものではありません.)globalの新しいバージョンはvimに埋め込むことができます.比較的完全な解析とタイプインデックスを提供します.globalはvimのために生まれたのではないかと思いますが、主な目的はhtml方式で関連関係のある関係やインデックスを表現することです.cscopeのような適切さは感じられません.2、関連する拡張の取り付け
コード:

   
   
   
   
apt-get install exuberant-ctags cscope global
cppcompleeteとtaglistはwww.vim.orgの拡張リストからダウンロードします.taglistのダウンロード先:http://www.vim.org/scripts/script.php?script_id=273 cppcompletteのダウンロード先:http://www.vim.org/scripts/script.php?script_ID=527はカタログを作成します.
コード:

   
   
   
   
$HOME/.vim/plugin
ダウンロードしたcppcomplette.vimとtaglist.vimを$HOME/vim/pluginにコピーします.globalをインストールした後に、最新の4.8.6以上のバージョンはvimを持つ拡張があって、それを$HOME/.vim/plugin debian sidバージョンglobalにもコピーして、拡張ファイルは
コード:

   
   
   
   
/usr/share/doc/global/examples/gtags.vim.gz
$HOME/.vim/pluginにコピーして解凍する必要があります.
コード:

   
   
   
   
gzip -d gtags.vim.gz
3、これらのツールを使って1)準備をして、まず$HOME/vimrcファイルを修正します.cscopeをより良く使うために、以下の内容を追加してください.このようにCtrl-'のジャンプはcscopeのtagsによって分析されます.
コード:

   
   
   
   
if has("cscope") set csprg=/usr/bin/cscope set csto=0 set cst set nocsverb " add any database in current directory if filereadable("cscope.out") cs add cscope.out " else add database pointed to by environment elseif $CSCOPE_DB != "" cs add $CSCOPE_DB endif set csverb set cscopetag set cscopequickfix=s-,g-,c-,d-,t-,e-,f-,i- endif
2)cscope cscopeを使用した一番簡単な方法は、あなたの開発プロジェクトの最上位ディレクトリでcscope-inndexerを実行します.それは下のすべてのディレクトリを巡回して、二つのファイルを作成します.一つはcscope.filesです.このファイルの記録はtagsのファイル名を生成する必要があります.手で修正できます.もう一つはcscope形式のtagsファイルです.完了後、cscope.outを生成したディレクトリでプロジェクトを開く任意のファイルで、Ctrl-を使ってジャンプ検索の種類を定義できます.
コード:

   
   
   
   
cs f s xxxx xxxx , , , 。 :)
そのすべてのコマンドの使用を参照してください.
コード:

   
   
   
   
help cscope
3)taglist taglistを使用する機能は、現在のファイルを即座に生成する関数リストとグローバル変数リストであり、索引に便利である.vimでコマンドモードで使用する  Tlistは、現在のファイルの索引を開いたり閉じたりします.TlistSyncはすぐに開いたインデックスウィンドウで現在のカーソル位置を特定します.どの関数または構造定義に属しますか?他にもコマンドがありますので、そのヘルプファイルを参照してください.4)ctagsの使用は実際にはcscopeが代用されているctags機能であり、ctagsの応用が広く、他にも多くのソフトウェアが依存しています.例えば、cppcompletteに必要なtagsファイルを生成するには、次のコマンドが必要です.
コード:

   
   
   
   
ctags -n -f cppcomplete.tags --fields=+ai --C++-types=+p * -L cscope.files
注意してください.最後にパラメータ「-L cscope.files」を使いました.これはcscopeを使って作成したファイルインデックスを使って、ctagsを助けて関連工事ファイルを調べてtagsを生成します.5)cppcomplette cppcompletteを使って、私は簡単な発見です.上記の方法で作成したtagsファイルに基づいて、全タイプのメンバーを自動的に補完することができます.使用は簡単です.つまり、全タイプのメンバーを補完したい場合は、F 8ボタンを押せばいいです.初めて使う時は既存のtagsファイルを使うか、それとももう一回作成するかを確認してください.一般的に私たちはtagsファイルを作成するタイミングを自分でコントロールします.それを使えばいいです.でも、それはctagsの分析能力の差によって制限されています.毎回あなたを助けてくれるわけではないかもしれません.6)globalを使用して工程の最上層ディレクトリで命令を実行します.gtagsは必要なすべてのglobalの自分のフォーマットのtagsの生成が完了するまで待っています.必要なのはtagsを生成するディレクトリであなたのプロジェクトの任意のファイルを開いて、下記のコマンドで関連するタイプの引用と関連関係を調べます.
コード:

   
   
   
   
Gtags xxxx xxxx Gtags -r xxxx xxxx Gtags -s xxxx xxxx
その提示情報は非常に顕著で、cscopeより直感的ですが、大規模な分析に対しては比較的完全です.正常に解析できないタイプのものは、バンド-sのパラメータを試してみて、タイプ定義を探します.