【vim 学习系列文章 5.1 -- vim ctags 使用】

文章目录

背景

在使用cscope生成文件cscope.files之后,如何将其当做ctags 命令的输入?

可以使用一系列的Shell命令来完成这个任务。具体来说,可以使用while read循环来按行读取cscope.files文件的内容,然后使用管道|xargs命令将每一行的输出作为参数传递给ctags命令。

下面是一个简单的示例:

while IFS= read -r line; do
    echo "$line"
done < cscope.files | xargs ctags -f ./tags

这个脚本执行的操作如下:

  1. while IFS= read -r line; do ... done < cscope.files:这部分是一个while循环,用于按行读取cscope.files文件。IFS=(输入字段分隔符)设置为空,确保行的前导和尾随空白不会被修剪;-r选项防止反斜杠转义字符被解释。每一行的内容都会被读入变量line
  2. echo "$line":对于cscope.files中的每一行,将其内容输出。
  3. | xargs ctags -f ./tags|管道操作符将echo的输出作为xargs的输入。xargs命令接收输入并将其作为参数传递给ctags命令。ctags命令使用-f ./tags选项生成的标签文件保存在当前目录下名为tags的文件中。

然而,上述方法存在一个潜在的问题:它实际上将cscope.files文件中所有的行合并成了一次ctags命令的输入,而不是对每一行分别调用ctags命令。如果你的目标是对cscope.files文件中的每一行内容分别执行ctags命令,你可能需要稍微调整命令,例如循环中直接调用ctags

while IFS= read -r line; do
    ctags -f ./tags "$line"
done < cscope.files

这种方式会对每一行文件路径调用ctags命令。但是,这样做可能会覆盖tags文件多次,仅保留对最后一行内容执行ctags命令的结果。
如果cscope.files中每行的内容是需要添加到ctags处理列表中的文件路径,那么你可以直接使用ctags命令的-L选项,这样更直接、更高效:

ctags -f ./tags -L cscope.files

-L选项让ctags从指定的文件(此处为cscope.files)读取文件列表,然后为这些文件生成标签。这样,就不需要手动按行读取和传递文件路径了。

相关推荐

  1. vim 学习系列文章 5.1 -- vim ctags 使用

    2024-05-13 13:28:05       10 阅读
  2. vim 学习系列文章 16 -- vim 自动保存设置】

    2024-05-13 13:28:05       17 阅读
  3. vim 学习系列文章 14 -- 快速选中多行】

    2024-05-13 13:28:05       23 阅读
  4. vim 学习系列文章 18 -- 选中行前后增加两行】

    2024-05-13 13:28:05       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-13 13:28:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-13 13:28:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-13 13:28:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-13 13:28:05       20 阅读

热门阅读

  1. 相似文本清洗

    2024-05-13 13:28:05       15 阅读
  2. Python如何传送我的世界Spigot服务器中的玩家

    2024-05-13 13:28:05       13 阅读
  3. 前端video标签播放第三方外链地址报错403

    2024-05-13 13:28:05       11 阅读
  4. 02-SpringApplication.run

    2024-05-13 13:28:05       12 阅读
  5. Map、Set和Object的区别

    2024-05-13 13:28:05       10 阅读
  6. Vue3知识总结-3

    2024-05-13 13:28:05       9 阅读
  7. del删除脚本的“无效开关”

    2024-05-13 13:28:05       8 阅读
  8. TypeScript 类型系统深度解析:类型全览

    2024-05-13 13:28:05       13 阅读
  9. vue的生命周期

    2024-05-13 13:28:05       10 阅读
  10. day5.12 leetcode80 删除有序数组重复项

    2024-05-13 13:28:05       14 阅读
  11. Leetcode 3148. Maximum Difference Score in a Grid

    2024-05-13 13:28:05       13 阅读
  12. 即将研究生入学,记录一些遇到的疑问

    2024-05-13 13:28:05       10 阅读
  13. linux的Wget命令下载文件示例

    2024-05-13 13:28:05       13 阅读
  14. 如何在Python中自定义异常?

    2024-05-13 13:28:05       9 阅读
  15. JVM调优:JVM常用调优命令和参数

    2024-05-13 13:28:05       11 阅读