ctags 自定义语法

目录

  ctags 一般在 c 语言开发中用的比较多,ctags+vim 在开发 c 程序时能实现,函数,变量的查找,跳转等功能,其实我们完全可以用
ctags 定义自己的语法,我下面介绍的就是定义一个我做笔记用的语法,在做笔记时非常的方便。

安装 ctags

在 ubuntu 下非常简单
sudo apt-get install ctags

查看现在支持的语言

ctags  --list-languages 

定义自己的语法

vim ~/.ctags
#加入自己的语法规则
# 定义语言名
--langdef=pkm
# 定义语言文件后缀
--langmap=pkm:.pkm
# 定义一个叫 title 的标签 /定义形式/引用形式/ 
--regex-pkm=/^\*[ \t]*([^\*].*)/:\1/t,title/
--regex-pkm=/^\*\*[ \t]*([^\*].*)/: \1/t,title/
--regex-pkm=/^\*\*\*[ \t]*([^\*].*)/:  \1/t,title/
--regex-pkm=/^=[ \t]*(.*)/:\1/i,index/

#这里我们定义一种叫 pkm 的语言,使用正则来定义。

pkm 语法说明

#以 * 开始定义一个 title
#以 = 开始定义一个 index
#然后使用 :title 或者 :index 的格式引用 ,这样我们就可以在我们的笔记里面自由的引用和跳转,还可以搜索非常的方便

配置 vim 的支持

vim .vim/bundle/taglist.vim/plugin/taglist.vim
"添加对新语言的支持
let s:tlist_def_pkm_settings= 'pkm;t:title;i:index'

如何使用

配置 vim

vim ~/.vimrc
"加入下面配置
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
" 自动把后缀为.pkm 的文件设置为 pkm 类型
au BufRead,BufNewFile *.pkm setlocal ft=pkm

生成 tags 文件

ctags -R ./*

打开 taglist

:Tlist

vim_ctags_1.png

跳转到定义

# 可以跳转到我们定义
Ctrl + [

vim_ctags_2.png vim_ctags_3.png

搜索 tag

:tag /:内核*

列出搜索结果

:ts

vim_ctags_4.png

目录