CentOSでctagsを使おうとしたら、「E257: cstag: tag not found」って言われた。
/etc/vimrcを見たら、cscopeがあったらcscopeを使う設定になっていた。
cscopeはctagsの設定を上書きするらしい。
ctagsと同じようにタグジャンプ機能を生成するものだが、例えば、「この関数を使用してる場所」とかを知ることができる。
$ cscope file1 file2 ...
これでcscope.outが生成される。これが辞書。
あるディレクトリ配下のファイルに対して作りたい場合は、まずインデックスファイルを作成。
$ find . -name \*.php > cscope.files
そして、cscopeに食わせる。
$ cscope
cscope.filesはcscopeが読み出すデフォルトのファイル名。変更するには-iオプションを使う。
$ cscope -i cscope.index
辞書ファイル作成後、対話型シェルが起動したままになる。終わるにはCtrl-D。
というか最初から起動しなければいい。相互参照作成だけするオプションは-b。
$ cscope -b
vimから使う場合には、set cscopetagしてやればよい。これでC-]やC-tがcscopeを使うようになる。.vimrcに書いておこう。
そしてどの辞書に繋げるかを指定してやる。vimから
:cs add cscope.out
としてやる。今、どの辞書につないでいるかは
:cs show
で確認できる。
:cs findのオプションがどれがどれだかわからなくなるが、:cs helpしてやればわかる。
$ locate cscope.out $
誰も使ってないのかな?
ひさびさに、まっさらな環境から開発環境を整えることになるので、今までなんとなく使い回してた設定ファイルなどを見直してみようかなぁ、とか思ったり。
とりあえずはVim。今まではいっしょくたに~/.vimrcに書いていたが、ファイルごとの設定は~/.vim/ftplugin/以下に置くこととしよう。
" .vimrc
" Vi互換とかありえない!
set nocompatible
" ステータス行を見やすく
set laststatusline=2
set statusline=%<%f %m%r%h%w%{'['.(&fenc!=''?&fenc:&enc).']['.&ff.']'}%=%l,%c%V%8P
" やってることをわかりやすく
set showmatch showmode showcmd
" インデントの設定
set autoindent smartindent
" 挿入モードで日本語入力が立ち上がらないように
set imactivatekey=C-space iminsert=0 imsearch=0
" タブとかデフォルトの設定
set shiftwidth=4 tabstop=4 expandtab
" シンタックスハイライトを有効
syntax on
" ファイルタイプ関係
filetype on
filetype indent on
filetype plugin on
" matchit.vimちょうべんり
source $VIMRUNTIME/macros/matchit.vim
こんなとこ。matchit.vimについては過去にふれた。
ちょっとPHPやることになるので、~/.vim/ftplugin/php.vimも見ておく。
" ~/.vim/ftplugin/php.vim " このへんは趣味 or プロジェクト依存 setlocal shiftwidth=4 tabstop=4 expandtab setlocal autoindent smartindent " makeで構文チェック setlocal makeprg=php\ -l\ % setlocal errorformat=%m\ in\ %f\ on\ line\ %l " PHPの関数を辞書から登録 setlocal dictionary+=~/.vim/dict/php_functions.dict setlocal complete+=k
昔、このへんsetlocalじゃなくsetで書いてたけど、setだと他のバッファに影響しちゃうんでsetlocalを使うべし。
この場合、タブとかの設定同じになっちゃってるけど(・ε・)キニシナイ!!辞書の作成等については過去記事参照。
プラグインはあんまし入れてないんだけど、project.vimとsurround.vimぐらい入れてあればわりと満足。Railsやるなら、rails.vimは入れるけど。
嘘だけど。
まぁ、特になにをやっていたわけでもないな。ラーメン食ったり、ラーメン食ったり、ラーメン食ったり。
技術ネタもガジェットネタも特にティンとくるものがなかったので、だいぶごぶさたでしたわな。
まぁ、それでも俺の生活を追いたいという奇特な方はTwilogでも見れ。
就職しました。
● ひろしげ@廣重 [辞七鴫!!(釈ァユ釈ヨ・)ヨ・]