让ctags支持Javascript

工欲善其事,必先利其器。 --《论语.魏灵公》

mac下安装exuberant ctags

mac 下自带ctags但是功能有限,要使用一些常用的功能需要安装exuberant ctags

  • 下载exuberant ctags
  • 安装exuberant ctags

    ./configure
    make
    sudo make install

  • 更改PATH,用exuberant ctags替代自带的ctags,在.bash_profile中添加

    export PATH=/usr/local/bin/:$PATH

配置ctags

ctags在查找函数时非常方便,但是对Javascript支持的不是很好,可以进行简单的配置使其生效。

  • 创建.ctags文件

    touch ~/.ctags

  • 编辑.ctags,填充以下内容
    --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$]+)[[:blank:]]*[:=][[:blank:]]*new[[:blank:]]+Object\(/\2/o,object/
    --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$]+)[[:blank:]]*[:=][[:blank:]]*\{/\2/o,object/
    --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])(^[^\?][[:blank:]]*)([A-Za-z0-9_]+)[[:blank:]]*[:][[:blank:]]*[A-Za-z0-9._$'"()]+/\3/m,member/
    --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$]+)[[:blank:]]*[:=][[:blank:]]*new[[:blank:]]+Array\(/\2/a,array/
    --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$]+)[[:blank:]]*[:=][[:blank:]]*\[/\2/a,array/
    --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([^! ]+[^= ]+)[[:blank:]]*=[[:blank:]]*[^""]'[^'']*/\2/s,string/
    --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])([A-Za-z0-9._$()]+)[[:blank:]]*[:=][[:blank:]]*function[[:blank:]]*\(/\2/f,function/
    --regex-JavaScript=/(^|^[^\/*]+[[:blank:]])function[[:blank:]]+([A-Za-z0-9._$]+)[[:blank:]]*([^)])/\2/f,function/

some Tips about ctags

  • 使用ctr + ] 可以跳转到目标函数
  • 使用ctr + o 或 ctr + t 可以跳转回之前的文件
comments powered by Disqus