ヘッダファイルなどをVimのキー操作一発で探すいまさら聞けないVim(9)(2/3 ページ)

» 2011年12月20日 00時00分 公開
[後藤大地@IT]

インクルードヘッダを開く

 C言語でプログラムを作っていると、ヘッダファイルの中身を見なければならないというのはよくあることだ。別にターミナルを開いて、less /usr/include/...のように操作してヘッダファイルの内容を確認することもあるだろう。しかし、この操作もVimの操作で簡単に済ませることができる。

 こういうときは、ソースコードを表示させた状態で、中身を読みたいと思うヘッダファイルを指定してある部分にカーソルを移動させ、ノーマルモードで「gf」とすればよい(図6)。

図6 コードを見たいと思うヘッダファイルを指定している部分にフォーカスを移して、ノーマルモードで「gf」と入力。クリックすると拡大 図6 コードを見たいと思うヘッダファイルを指定している部分にフォーカスを移して、ノーマルモードで「gf」と入力。クリックすると拡大

 こうすると、指定したヘッダファイルの中身を見られる(図7)。見終わったら「Ctrl-o」を押して元に戻る。ここで「:q」を使うと編集しているファイルごと閉じてしまうので注意したい。

図7 対象となるヘッダファイルが表示される。クリックすると拡大 図7 対象となるヘッダファイルが表示される。クリックすると拡大

 ヘッダファイルで定義している関数や変数などを調べたいということはよくあるので、この方法を知っておくと便利だ。別のターミナルを開いて、less(1)を実行するというのは実はかなり骨が折れる。タブとして開いてくれた方が扱いやすいという場合なら、「Ctrl-w gf」としてファイルを開けば良い(図8)。タブとして開くので、ノーマルモードで「gt」と押してタブ間を移動できる。タブを閉じるときは「:q」でよい。

図8 「Ctrl-w gf」でヘッダファイルをタブとして開いたところ。クリックすると拡大 図8 「Ctrl-w gf」でヘッダファイルをタブとして開いたところ。クリックすると拡大

 gfでファイルを開く方法は、ヘッダファイルに限らず広く利用できる方法なので、これも覚えておくと便利だ。

関数や型の定義を調べる

 さらに広範囲に渡って変数定義や、関数、その関数を呼んでいる関数や、その関数が呼んでいる関数などを調べるには、外部のツールと連携した方がよい。最もシンプルで、かつ、愚直な方法はgrep(1)を使うことだ。これは幅広い用途で使えて、手軽なので多くの開発者が得意としていると思うが、ここでは専用のツールとしてcscope(1)を使う方法を紹介したい。

 cscope(1)は、ソースコードからキーワードをインデックス化して簡単に検索できるようにするツール。便利なCUIがついていて手軽で扱いやすい。OSによっては初期状態ではインストールされていないことも多いので、まずインストールする。PC-BSDなら、root権限で次のように操作する。

cd /usr/ports/devel/cscope
make install clean

 Ubuntuなら、次のようにコマンドを入力して実行すればよい。

sudo apt-get install cscope

 cscopeを使ってみると、最初は少し戸惑うかもしれない。調査したいソースコードが存在するディレクトリツリーの最上位で「cscope -R」のようにコマンドを実行するというのが基本的な使い方だ。こうすると、そのディレクトリ以下のサブディレクトリもたどりながらソースコードを探し、インデックスを作成する。そのままCUIベースの検索画面へ移行するので、調べたいキーワードで検索するのだ。

 cscope(1)のこれ以上詳しい使い方はここでは省略するが、便利なツールなので先に紹介した方法だけでもいいから使えるようになっておくとよい。マニュアルを読みがら試行錯誤するのもいいだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。