Vimにtagsファイルを<<手動で>>作る(多分Emacsでも大体大丈夫かと)

快速得出答案

-> Vimのhelpに書いてありました。:help tags-file-format
今回話すことは大抵ここに書いてあります、英語が読めればそちらの方が参考になるかと。
又、日本語に翻訳されているものもありますので手間でなければこちらの方がわかりやすいかもです ==> http://vim-jp.org/vimdoc-ja/tagsrch.html#tags-option

我开始这件事的动机

    • vimでタグジャンプを覚えたてで、楽しくなってたから

 

    • プロダクトのドキュメントを書くにあたり、manページは時間かかるしSphinxとかわけわかめだったので何か便利なものを探していたから

 

    • Noob-VIMMERなので

 

    • ctagsはあるのわかってるけど、書き方があまりにも見つからなかったから(後述)

 

    ただ単に興味;)

标签文件是什么?

tags文件是为了在vim或者Emacs中显示文本时添加“标签跳转”功能而存在的文件。可以通过其中的单词,跳转到有相关描述的地方。

假设有以下这样的文本作为例子(随意编写)。

1 *help.txt*       For version x.x.x
2 
3                  mcUI - Main help page
4
5             Overview: mcUI is the world first 3D UI using Minecraft
6          Description: This is a |Minecraft mod| which enable to use 3DUI
7  Required MC version: Anything you like!(If it's supported by |Raspberry Jam mod|
8               Author: Cj.bc_sd
9
.                           .
.                           .
.                           .
50 *Raspberry Jam mod*     The main dependency of mcUI
51
52            What's this: The Raspberry Jam Mod(RJM) allows us to use MinecraftAPI like mc Pi Edition.
53             Its Author: arpruss
54             Repository: https://github.com/arpruss/raspberryjammod
.                           .
.                           .
.                           .

上から順番に見ていくことになりますが、Line:7,Raspberry Jam Modって何でしょう?
なんか気になりますね。
そんな時に、Raspberry Jam Modの文字の上で+](default)を押すことでLine50のRaspberry Jam Modの説明までジャンプできるんです!!便利!!
ちなみに+tでジャンプ前の場所まで帰る事ができます。

という事でこのジャンプを実現するためのファイルを書いていきます。

(ちなみに身近な例で言えば、vim使用中の:help 系は大抵tagジャンプを使って開かれているようです)

哎?tags文件的话不是有ctags吗?

哎?那个不是用来C语言的吗?所以,因为我认为ctags是专为C语言特化的,所以不使用。我只是想在文本中添加链接而已!

【早期解決したい人向け】便利なツールたち

このtagsファイルを生成するツールはたくさんあります。
それぞれについては把握してないので興味があれば各自調べて見てください。
:help tags-file-formatの受け売りになりますがまぁ

tool名特徴など対応言語URL/Pathctags一番基本的なツール。殆どのUNIXにあるC言語のみ-Exuberant_ctagsctagsの上位互換的な?「めっちゃいいやつ」C,C++,Java,Fortrun,Eiffel等http://ctags.sourceforge.net https://ctags.io 1etagsEmacs互換っぽい。色んな言語(by help:)-JTagsJavaによるJavaのためのツールJavahttp://www.fleiner.com/jtags/ptags.pyPythonによるpythonのための(ryPythonpythonのソースディレクトリーの Tools/scripts/ptags.pyptagsPerlによるPerlのたm(ryPerlhttp://www.eleves.ens.fr:8080/home/nthiery/Tags/gnatxrefgnatパッケージの一環らしいAdahttp://www.gnuada.org/ (なんか移動したっぽい?情報求)

今回はこれらのツールなしで手動で作っていこうかなと思います。

实现能够进行tag跳转的流程。

    1. 生成原始文档文件

 

    1. 创建一个新的文本文件,并将其命名为tags

 

    1. 打开原始文档文件,使用:set tags=<文件名>来指定tags文件

 

    然后,你就可以使用+]来跳转了!

1.元のドキュメントのファイルを作る

没什么特别的要说的。只是简单地,在你喜欢的编辑器(根据对话的氛围来看,应该多数是Vim或Emacs的用户)中写文档。
从查看`:help`的内容来看,可以谈谈标签的跳转,大多数情况下使用`|`来围绕标签文件格式(如`|tags-file-format|`)。

创建tags文件

这里是重点。
tags文件基本上是以以下格式编写的。

1. {tagname}             {TAB}  {tagfile} {TAB} {tagaddress}
2. {tagfile}:{tag name}  {TAB}  {tagfile} {TAB} {tagaddress}
3. {tagname}             {TAB}  {tagfile} {TAB} {tagaddress} {term} {field} ..

{tagname}是标签的标识符。任何内容都可以。但是不能包含制表符。
{tagfile}是包含定义tagname的部分的文件。同样,不能包含制表符。
{tagaddress}用Ex命令编写找到标签时的处理方式。虽然有一些限制,但可以使用一些相对自由的命令。但根据Posix规范,只提供行号和搜索功能。
{term}就是;”。就这么简单。为了与vi兼容,此行以后的内容被视为注释。
{field}不太清楚是什么。

暂时先这样创建吧。文件名可以随便取,不过如下所述,用tags或者tag比较方便。

打开文档,并指定tags文件。

$vim document.mdなどで開き、:を打ってコマンドモードにしてからset tags=<あなたのtagsファイルのパス>とします。
ちなみにデフォルトのtagsは./tags,tagとなっているため、2.の時点でtagsファイル名をtags若しくはtagにしていた場合、この作業をせずともtagsファイルが認識され、+]で動くはずです。(戻るときは+tです)

4. 结束了!

太棒了!现在tags文件一时半会儿已经做好了。
有了这个,使用vim上下移动就不会再那么麻烦了(可能)!!

这次的重点是什么

    • tagsファイルの書式を覚える!

 

    • なるべくならtagsかtagという名前でtagsファイルを作成して、自動で使えるようにする!

 

    • 自動でtagsファイルを使ってもらうためには、tagsファイルとドキュメント本体を同じ階層におく!

:helpをもっときちんと読む。ggrよりもはるかに高品質な情報がある。

续篇文章

ちなみに現段階だと色が全くなくて殺風景というかなんか読みづらいので、次の記事ではその色関連を少し書きます!(.vimファイルとかの作成はしないので悪しからず)

我希望在我辛苦创建的Vim标签文件的文档中添加颜色!

目前存在的未知情况和难题

tagの名前を複数単語に対応させる方法


坏孩子的跋文

Cj-bc/mcUI是一个正在开发中的项目,旨在利用Minecraft创建一种新的电脑UI界面。目前尚处于早期阶段,因此说明可能会显得有些混乱,但如果你感兴趣的话,请务必关注。


由于ctags.sourceforge.net 的可能更新性较低,所以感谢@mattn 的建议,我们使用了Universal ctags的URL (https://ctags.io/) 进行了替换。
广告
将在 10 秒后关闭
bannerAds