当前位置: 首页 > news >正文

【vim 学习系列文章 5 - cscope 过滤掉某些目录】

文章目录

    • cscope 过滤目录介绍

cscope 过滤目录介绍

第一步创建自己的cscope脚本~/.local/bin/cscope.sh,如下:

function my_cscope()
{CODE_PATH=`pwd`echo "$CODE_PATH"echo "start cscope...."if [ ! -f "$CODE_PATH/cscope.files" ];thenecho "cscope.files not exist!"elserm -f $CODE_PATH/cscope.*fiif [ ! -d "$CODE_PATH/rt-thread" ];thenfind . \( -path './arch/arc'            \-o -path './arch/alpha'             \-o -path "./arch/blackfin"          \-o -path "./arch/cris"              \-o -path "./arch/h8300"             \-o -path "./arch/ia64"              \-o -path "./arch/m68k"              \-o -path "./arch/microblaze"        \-o -path "./arch/mn10300"           \-o -path "./arch/openrisc"          \-o -path "./arch/powerpc"           \-o -path "./arch/score"             \-o -path "./arch/sparc"             \-o -path "./arch/um"                \-o -path "./arch/x86"               \-o -path "./arch/c6x"               \-o -path "./arch/m32r"              \-o -path "./arch/microblaze"        \-o -path "./arch/nios2"             \-o -path "./arch/powerpc"           \-o -path "./arch/sh"                \-o -path "./arch/um"                \-o -path "./arch/xtensa"            \-o -path "./arch/cris"              \-o -path "./arch/hexagon"           \-o -path "./arch/mips"              \-o -path "./arch/openrisc"          \-o -path "./arch/s390"              \-o -path "./arch/sparc"             \-o -path "./arch/unicore32"         \-o -path "./arch/parisc"            \-o -path "./arch/tile"              \-o -path "./arch/tile"              \-o -path './arch/c6x' \)            \-prune -o -name "*.[chxsS]" -print > cscope.fileselsefind . \( -path "./rtos/rt-thread/rt-thread/bsp/mb9*" \-o -path "./rtos/rt-thread/rt-thread/bsp/at91*" \-o -path "./rtos/rt-thread/rt-thread/bsp/ess*" \-o -path "./rtos/rt-thread/rt-thread/bsp/gd3*" \-o -path "./rtos/rt-thread/rt-thread/bsp/lpc*" \-o -path "./rtos/rt-thread/rt-thread/bsp/ls*" \-o -path "./rtos/rt-thread/rt-thread/bsp/mi*" \-o -path "./rtos/rt-thread/rt-thread/bsp/imx*" \-o -path "./rtos/rt-thread/rt-thread/bsp/rasp*" \-o -path "./rtos/rt-thread/packages/packages/iot/*" \-o -path "./rtos/rt-thread/rt-thread/bsp/stm32/stm32f*" \-o -path "./bootrom"        \-o -path "./u-boot"         \-o -path "./tools" \)       \-prune -name "*.cc" -o -name "*.[chxsS]" \-print > cscope.filesfiecho "cscope -Rbkq -i cscope.files"cscope -Rbkq -i $PWD/cscope.files > cscope.log 2>&1echo "cscope finished"
}my_cscope;

我的这个脚本首先去区分当前执行cscope命令的目录是rt-thread目录还是linux 目录,因为不同的代码要过滤过目录不一样。
此外,还会通过 重定向cscope在解析文件cscope.files过程中输出的log重定向到 cscope.log 方便问题问题。关于 find 命令的使用见 find 命令高效使用文章

第二步~/.bashrc 中添加 mycscope 命令,添加完后,别忘记执行 source ~/.bashrc

alias mycscope='source ~/.local/bin/cscope.sh'

第三部测试效果:

 (*^~^*) ~/workbase/cix_linux/linux> mycscope
/home/sam/workbase/linux
start cscope....
cscope -Rbkq -i cscope.files
cscope finished
(*^~^*) ~/workbase/cix_linux/linux> ls
arch   COPYING  cscope.files   cscope.out     drivers  init    Kconfig  LICENSES     mm      samples   sound  virt
block  CREDITS  cscope.in.out  cscope.po.out  fs       ipc     kernel   MAINTAINERS  net     scripts   tools
certs  crypto   cscope.log     Documentation  include  Kbuild  lib      Makefile     README  security  usr

从下图中可以看到通过cscope命令查找 函数定义定义时只显示了linux/arch 目录下的几个文件,滤除了上文中设置的那些目录:
在这里插入图片描述


在这里插入图片描述

http://www.lryc.cn/news/134070.html

相关文章:

  • 实验三 HBase1.2.6安装及配置
  • LightDB sequence支持MAXVALUE最大值与Oracle相同
  • 二、Kafka快速入门
  • 消息中间件-kafka实战-第五章-kafka重复消费、顺序消费及死信队列
  • python爬虫9:实战2
  • 从业务层的代码出发,去排查通用框架代码崩溃的问题
  • LLM预训练大型语言模型Pre-training large language models
  • [Machine Learning] 损失函数和优化过程
  • serialVersionUID 有何用途?如果没定义会有什么问题?
  • C# OpenCvSharp DNN 二维码增强 超分辨率
  • this.$refs使用方法
  • Ohio主题 - 创意组合和代理机构WordPress主题
  • mysql 、sql server trigger 触发器
  • 自然语言处理从入门到应用——LangChain:索引(Indexes)-[检索器(Retrievers)]
  • 春秋云境:CVE-2022-0543(Redis 沙盒逃逸漏洞)
  • 关于uniapp组件的坑
  • AIGC与软件测试的融合
  • 滑动验证码-elementui实现
  • ubuntu 20.04 安装 高版本cuda 11.7 和 cudnn最新版
  • svg图片如何渲染到页面,以及svg文件的上传
  • GPT-LLM-Trainer:如何使用自己的数据轻松快速地微调和训练LLM
  • 深入理解ForkJoin
  • Spring5学习笔记—AOP编程
  • 适用于 Docker 用户的 kubectl
  • 网络安全设备篇——加密机
  • Rust 基础入门 —— 2.3.所有权和借用
  • Node.js-Express框架基本使用
  • 阿里云通用算力型u1云服务器CPU性能详细说明
  • 设计模式之创建者模式
  • Java之包,权限修饰符,final关键字详解