ヘッダファイルなどをVimのキー操作一発で探す:いまさら聞けないVim(9)(2/3 ページ)
前回に続き、Vimが備えるプログラマ向けの便利な機能を紹介します。今回の内容をマスターすれば、プログラミングに関する操作のほとんどをVimから出せるようになります。(編集部)
インクルードヘッダを開く
C言語でプログラムを作っていると、ヘッダファイルの中身を見なければならないというのはよくあることだ。別にターミナルを開いて、less /usr/include/...のように操作してヘッダファイルの内容を確認することもあるだろう。しかし、この操作もVimの操作で簡単に済ませることができる。
こういうときは、ソースコードを表示させた状態で、中身を読みたいと思うヘッダファイルを指定してある部分にカーソルを移動させ、ノーマルモードで「gf」とすればよい(図6)。
こうすると、指定したヘッダファイルの中身を見られる(図7)。見終わったら「Ctrl-o」を押して元に戻る。ここで「:q」を使うと編集しているファイルごと閉じてしまうので注意したい。
ヘッダファイルで定義している関数や変数などを調べたいということはよくあるので、この方法を知っておくと便利だ。別のターミナルを開いて、less(1)を実行するというのは実はかなり骨が折れる。タブとして開いてくれた方が扱いやすいという場合なら、「Ctrl-w gf」としてファイルを開けば良い(図8)。タブとして開くので、ノーマルモードで「gt」と押してタブ間を移動できる。タブを閉じるときは「:q」でよい。
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.