zoukankan      html  css  js  c++  java
  • ctags的--exclude选项

    起因

    tags --exclude=./src/isa/riscv32, 发现加了./就不起作用(也就是说目录下文件还是会被tag).
    man ctags, 看到是pattern.

    试验

    /Users/quebec/Playground/play/a/b/c目录下有main.c
    内容:

    #include <stdio>
    
    int main() {
    }
    

    现在在play下. 用比如ctags -R --exclude=c这样的命令测试. 结果如下. 起作用的意思就是没有被tag, 不起作用就是能找到main tag.

    c, 起作用
    b/c, 不起作用
    b, 起作用
    *b/c, 起作用
    c/*, 不起作用
    /Users/quebec/Playground/play/a/b/c/*, 不起作用
    a/b/c/*, 起作用
    b, 起作用
    

    推测

    据此结果, 猜测其机制为:

    1. 必须是完整匹配, 可以有通配符*, ?之类的. 和gitignore不同的是, *也能匹配..
    2. 会匹配的路径是要么是这个节点(目录或者文件, 由于inode所以把它称为节点)的name, 要么是它相对于当前目录的路径, 相对路径中不包括..

    比如, 递归进入目录a后, 发现有目录b, 那么要匹配的目标字符串为a, a/b(而不是绝对路径), 如果匹配成功, 此目录不再进入.

    解释结论

    1, 3. c, c与目录c的节点名匹配, 不再进入, 起作用, 3和1的道理相同
    2, 4, 5. b/c, 根据1必须是完整匹配, 如果加上*, 就像4那样, 起作用
    6. 前面说了, 目标字符串不是绝对路径, 因此匹配不上不起作用
    7. 根据2, 起作用
    8, 根据2, 起作用

  • 相关阅读:
    安卓移动端css3动画卡顿解决方法
    PDO方法实现增删改查
    NPOI 操作笔记
    基于emoji 国际通用表情在web上的输入与显示的记录
    restful 规范
    set与map
    ES6解构赋值
    scss的基本用法
    学习vue的第一二三四五天
    React Hooks --- useState 和 useEffect
  • 原文地址:https://www.cnblogs.com/Tokubara/p/15213969.html
Copyright © 2011-2022 走看看