web-dev-qa-db-ja.com

vimはcscopeデータベースに接続できません

Opensuse11.4をインストールしました。 Vimはバージョン7です。今では通常、Linuxカーネルソースを参照するために使用しています。そのため、ホームフォルダ内のディレクトリ(/ home/aijazbaig1/cscope_DB /)内にcscopeデータベースを生成し、3つのファイルを取得しました。検索したいすべての関連ファイルのリストを含むcscope.filesファイルのほかに、cscope.out、cscope.po.out、およびcscope.in.out。

さらに、.bashrcに以下を追加しました。

CSCOPE_DB=/home/aijazbaig1/cscope_DB/cscope.out
export CSCOPE_DB

しかし、私が:cscope show vim内から、接続がないと表示されます。誰かが私に何が悪いのか教えてもらえますか?.

あなたからの連絡に熱心です、

13
Aijaz Baig

これは上記のコメントで言及されていますが、回答に保存されていることを確認したいと思います。

私が思いついた問題は、vimがcscopeデータベースを探す場所を知らなかったということでした。追加したとき

cs add $CSCOPE_DB

わたしの .vimrc。すべてがうまくいった。

14
Wesley Bland

私は訪問したので、私は応答しようと思います。

Ctrl-spaceを使用して検索すると(またはその問題を検索すると)、このエラーが発生していました。

E567:cscope接続なし

私はついに完全な解決策を http://cscope.sourceforge.net/cscope_vim_tutorial.html 、ステップ11で見つけました。

アイデアは、cscopeのビューに含まれるソースファイルのリストを作成し、同じ場所にcscope.outを生成し、それに応じてエクスポートパスを更新することです。

  • find /my/project/dir -name '*.c' -o -name '*.h' > /foo/cscope.files
  • cscope -R -b(ソースのサイズによっては時間がかかる場合があります)
  • export CSCOPE_DB=/foo/cscope.out(ターミナルにログインするたびにこれを繰り返したくない場合は、これを.bashrc/.zshrc/other-starting-scriptに入れてください)
12
blackstrype

Vimで次のような「cscope接続」を追加する必要があります。

:cscope add $PATH_TO_CSCOPE.out 

見る :help csその他の例。

2
Guru

Cscopeを使用してLinuxカーネルソースを探索する方法は次のとおりです。

私はエディターとしてvimを使用しています。

  1. カーネルソースルートディレクトリ内に立っているときに、インタラクティブモードでcscopeを実行し、ソースファイルの検索中にサブディレクトリを再帰的に調べます。

cscope -R

初めて実行すると、現在のディレクトリ内にcscope.outという名前のデータベースファイルが生成されます。以降の実行では、すでに生成されたデータベースが使用されます。

  1. 何かまたは任意のファイルを検索して開きます。
  2. Vimでcscopeタグを設定して、:tagコマンドとCTRL-]コマンドが最初にcscopeを検索し、次にctagsのタグを検索するようにします。

:set cscopetag

  1. 現在のVIMセッション内にcscopeデータベースを設定します:

:cs add cscope.out

これで、ctagsで使用するのと同じように、CTRL-]CTRL-tを使用してナビゲートできます。 :)

1
ArsalanHAwan

PCでも同じ問題が発生します。今のところ、問題を解決するには:

  1. ターミナルで実行:which is cscope

  2. 編集する.vimrcファイルを開きます:set csprg=/usr/bin/cscope

0
HuyLe

Ubuntu 18.04でcscope接続がないという同様の問題が発生した後、.vimrcファイルがCSCOPE_DB変数をロードしないことを発見しました。少し見て回って、 解決策 を見つけました。

これを.vimrcファイルに直接コピーするだけです。

コードの一部は、ディレクトリからcscopeファイルをロードします。キーバインドは素晴らしいボーナスです。お役に立てれば。

0
Rasmus Bæk