<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>uprush &#187; tag</title>
	<atom:link href="http://uprush.net/tag/tag/feed/" rel="self" type="application/rss+xml" />
	<link>http://uprush.net</link>
	<description>YiFeng's Blog</description>
	<lastBuildDate>Wed, 03 Feb 2010 14:34:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Vimでシステム開発 &#8212; tagファイルとtaglistプラグイン（その２）</title>
		<link>http://uprush.net/2009/05/vim%e3%81%a7%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e9%96%8b%e7%99%ba-tag%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%a8taglist%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%ef%bc%88%e3%81%9d%e3%81%ae-2/</link>
		<comments>http://uprush.net/2009/05/vim%e3%81%a7%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e9%96%8b%e7%99%ba-tag%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%a8taglist%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%ef%bc%88%e3%81%9d%e3%81%ae-2/#comments</comments>
		<pubDate>Sun, 17 May 2009 13:03:54 +0000</pubDate>
		<dc:creator>uprush</dc:creator>
				<category><![CDATA[vim]]></category>
		<category><![CDATA[tag]]></category>

		<guid isPermaLink="false">http://blog.uprush.net/?p=230</guid>
		<description><![CDATA[前回のコンテンツ Vimでシステム開発 &#8212; tagファイルとtaglistプラグイン（その１） はtagについて紹介しました、今回はtaglistプラグインを紹介します。
Eclipseはこういう機能があります：現在開いたソースの変数、関数などの一覧をシンボル ウィンドーに表示し、一覧の項目をクリックすれば、変数定義へジャンプできます。また、一覧を名前順などでソートできます。
Vimはtaglistプラグインを利用して似た機能を提供します。
&#160;

インストール

http://www.vim.org/scripts/script.php?script_id=273 から最新版のtaglistをダウンロードします。ダウンロードしたファイルを ~/.vim フォルダに解凍します。Windowsの場合は、ダウンロードしたファイルを $VIM/vimfiles または $HOME/vimfiles に解凍します。

Vimで下記コマンドを実行し、taglistのヘルプを作成します。  &#160; 


:helptags&#160;~/.vim/doc&#160;

:helptags ~/.vim/doc

&#160;

:helptags ~/.vim/doc

ヘルプができた後、下記コマンドでtaglistのヘルプが表示できます。       &#160; 


:help&#160;taglist.txt&#160;

:help taglist.txt

&#160;

設定

taglist は様々な機能を提供しています。私のvimrcは以下のように設定しています。

&#34;taglist&#160;
let&#160;Tlist_Ctags_Cmd&#160;=&#160;&#34;/usr/bin/ctags&#34;&#160;&#160;&#160;&#160;&#34;ctagsのパス&#160;
let&#160;Tlist_Show_One_File&#160;=&#160;1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#34;現在編集中のソースのタグしか表示しない&#160;
let&#160;Tlist_Exit_OnlyWindow&#160;=&#160;1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#34;taglistのウィンドーが最後のウィンドーならばVimを閉じる&#160;
let&#160;Tlist_Use_Right_Window&#160;=&#160;1&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#34;右側でtaglistのウィンドーを表示&#160;
map&#160;&#60;silent&#62;&#160;&#60;leader&#62;tl&#160;:TlistToggle&#60;cr&#62;&#160;&#160;&#34;taglistを開くショットカットキー&#160;

&#34;taglist let Tlist_Ctags_Cmd = &#34;/usr/bin/ctags&#34;    &#34;ctagsのパス let Tlist_Show_One_File = 1               &#34;現在編集中のソースのタグしか表示しない [...]]]></description>
		<wfw:commentRss>http://uprush.net/2009/05/vim%e3%81%a7%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e9%96%8b%e7%99%ba-tag%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%a8taglist%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%ef%bc%88%e3%81%9d%e3%81%ae-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vimでシステム開発 &#8212; tagファイルとtaglistプラグイン（その１）</title>
		<link>http://uprush.net/2009/05/vim%e3%81%a7%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e9%96%8b%e7%99%ba-tag%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%a8taglist%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%ef%bc%88%e3%81%9d%e3%81%ae/</link>
		<comments>http://uprush.net/2009/05/vim%e3%81%a7%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e9%96%8b%e7%99%ba-tag%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%a8taglist%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%ef%bc%88%e3%81%9d%e3%81%ae/#comments</comments>
		<pubDate>Sun, 17 May 2009 12:58:10 +0000</pubDate>
		<dc:creator>uprush</dc:creator>
				<category><![CDATA[vim]]></category>
		<category><![CDATA[tag]]></category>

		<guid isPermaLink="false">http://blog.uprush.net/?p=226</guid>
		<description><![CDATA[tagファイルを利用することで、ソース構造が一目瞭然。
&#160;

Tag ファイル

プログラミングにおいて、Tagファイルは強力なツールでしょう。Tagファイルがあれば、Vimで関数の呼出す関係、クラス、マクロの定義が簡単 に見れるし、タグ間の移動も楽にできます。Eclipseの経験がある方はこういった機能は慣れていると思いますが、Vimではこれはtagファイルに よって実現できています。
ソールのtagファイルの内容について、関数、クラス、マクロなどの名称、定義するファイル名、及びタグへ移動用のExスクリプトなどが含まれます。Tagファイルはテキストファイルなので、手動で編集、またはスクリプトで操作できます。
Tagファイルの生成は普段ctagsというツールを使います。Vimはctagsが生成したtagファイルを直接利用できますが、Unixのctags は比較的に機能が少ないため、Exuberant Ctags（殆どのLinuxは、これがデフォルトのctagsツール）を利用するのは一般です。Exuberant Ctagsは３３種類のプログラミング言語も対応するから、私たちのニーズは十分対応できるでしょう。Exuberant Ctagsは http://ctags.sourceforge.net からもダウンロードできます。
Emacsの場合は、etagsを使ってtagファイルを作成します。Vimでもetagsのtagファイルを対応したいのであれば、Vimをコンパイル時「+emacs_tags」オプションを入れる必要があります。




 Tag ファイルのフォーマット

後の文章で紹介するlookupfileプラグインは、自分用のtagファイルを作りますので、ここでtagファイルのフォーマットを先に説明します。
Tagファイルはフォーマットされたファイルです。Exuberant Ctagsいり生成されたtagファイルは、デフォルト下記のフォーマットとなっています。
{tagname} {TAB} {tagfile} {TAB} {tagaddress} {term} {field} ..



{tagname}
タグ名。例えば関数名、クラス名、マクロ名など。タブ（\t）を含んではならない。


{tagfile}
{tagname}が含まれたファイル名。タブを含んではならない。


{tagaddress}
{tagname}へジャンプ用Exコマンド


{term}
「;&#34;」です。Viと交換性を保持するため、Viがその後の{field}を処理しないように。


{field}..
オプション項目です。{tagname}のタイプを表します、例えば関数、クラス、マクロなど。



{tagname}、{tagfile}と{tagaddress}の間、タブ（\t）で区切るため、{tagname}と{tagfile}はタブを含んではならない。
「!_TAG_」から始まる行はメタ情報です、例えば「_TAG_FILE_SORTED」。
!_TAG_FILE_SORTED&#60;Tab&#62;1&#60;Tab&#62;{anything}
上記メタ情報の意味は、tagファイルは大文字と小文字を区別でソートされたことを示します。ソートされたtagファイルの走査は早くなります。また、「0」はソートされていない、「2」は大文字と小文字を区別なくソートされています。



 Tag の使い方

ctagsは色んなオプションを持っていますが、使い方は凄く簡単。Vim 7.1のソースを例とします。以下のコマンドを実行します。

cd&#160;~/src/vim71&#160;
ctags&#160;-R&#160;src&#160;

cd ~/src/vim71 ctags -R src

&#160;
上記コマンドは、~/src/vim71 フォルダの直下にtagsという名前のtagファイルを生成します。このファイルは、~/src/vim71/src の下の全ての.c、.hファイルのタグが含んでいます。tagsはテキストファイルで、Vimで開いた見ることができます。生成されたタグはデフォルト大 文字と小文字を区別してソートされ、Vimから直接利用できます。
tagsができましたら、Vimを起動して、下記コマンドを実行します。   &#160; 

:cd&#160;~/src/vim71&#160;&#160;&#160;&#160;&#34;作業フォルダを~/src/vim70&#160;に切替&#160;
:set&#160;tags=tags&#160;&#160;&#160;&#160;&#160;&#160;&#34;tagsオプションを作業フォルダにあるtagsファイルに設定&#160;

:cd ~/src/vim71    &#34;作業フォルダを~/src/vim70 に切替 :set tags=tags      &#34;tagsオプションを作業フォルダにあるtagsファイルに設定

&#160;
これで、tagsの設定ができました、次はtagを使います。  &#160; 


:tag&#160;VimMain&#160;

:tag VimMain

&#160;
すると、Vimは src/main.c がオープンし、カーソルを167行のVimMainに移動しました。

タグにジャンプした後まだ元のところに戻れるように、Vimはジャンプしたタグのスタックを持っています。「:tags」コマンドでスタックの現在の位置を確認できます。
よく使うtagコマンドは下記の通りです。



:tag {ident}
指定されたタグへジャンプ


:tags
タグスタックを表示


CTRL-]
カーソルにあるタグへジャンプ


CTRL-T
一つ前のタグへジャンプ



ほかのコマンドは「:help [...]]]></description>
		<wfw:commentRss>http://uprush.net/2009/05/vim%e3%81%a7%e3%82%b7%e3%82%b9%e3%83%86%e3%83%a0%e9%96%8b%e7%99%ba-tag%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%81%a8taglist%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%ef%bc%88%e3%81%9d%e3%81%ae/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
