vim+ctags使用

vim+ctags使用_tiefanhe的博客-CSDN博客

Ubuntu下安装Ctags 只需使用apt-get install ctags即可

熟练的使用ctags仅需记住下面七条命令:

 

    1. $ ctags–R * ($ 为Linux系统Shell提示符)
      2.    $ vi –t tag(请把tag替换为您欲查找的变量或函数名)
      3. :ts (ts助记字:tags list, “:”开头的命令为VI中命令行模式命令)
      4. :tp (tp助记字:tags preview);此命令不常用,可以不用记
      5. :tn (tn助记字:tags next);此命令不常用,可以不用记
      6. Ctrl +]
      7. Ctrl +T

下面我们逐条的解释上面的命令:

      “$ ctags –R *”:
              “-R”表示递归创建,也就包括源代码根目录(当前目录)下的所有子目录。“*”表示所有文件。这
      条命令会在当前目录下产生一个“tags”文件,当用户在当前目录中运行vi时,会自动载入此tags文件。
              Tags文件中包括这些对象的列表:
                      用#define定义的宏
                      枚举型变量的值
                      函数的定义、原型和声明
                      名字空间(namespace)
                      类型定义(typedefs)
                      变量(包括定义和声明)
                      类(class)、结构(struct)、枚举类型(enum)和联合(union)
                      类、结构和联合中成员变量或函数
              VIM用这个“tags”文件来定位上面这些做了标记的对象。

        剩下的命令就是定位这些对象的方法:

        “$ vi –t tag”:在运行vim的时候加上“-t”参数
                    例如:[/usr/src]$ vim -t main
                    这个命令将打开定义“main”(变量或函数或其它)的文件,并把光标定位到这一行。
       
        如果这个变量或函数有多处定义,在VI命令行模式“ :ts”命令就能列出一个列表供用户选择。

        “ :tp”为上一个tag标记文件,“ :tn”为下一个tag标记文件。当然,若当前tags文件中用户所查找的变量或函数名只有一个,“:tp,:tn”命令不可用。

        最方便的方法是把光标移到变量名或函数名上,然后按下“ Ctrl+]”,这样就能直接跳到这个变量或
函数定义的源文件中,并把光标定位到这一行。用“ Ctrl+t”可以退回原来的地方。即使用户使用了N次“Ctrl+]”查找了N个变量,按N次“Ctrl+t”也能回到最初打开的文件,它会按原路返回。

        注意:运行vim的时候,必须在“tags”文件所在的目录下运行。否则,运行vim的时候还要用“ :settags=”命令设定“tags”文件的路径,这样vim才能找到“tags”文件。在完成编码时,可以手工删掉tags文件。

        注:另外,在windows下,有gvim可以使用,而且,也可以使用ctags。这个ctags可以从其它的软件包的目录里边copy出来。比如ultraedit就带了一个ctags程序,你直接将其copy到gvim的目录下的vim目录下就可以了。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/51889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多数元素00

题目链接 多数元素 题目描述 注意点 给定的数组总是存在多数元素多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素 解答思路 初始想到使用map存每个元素和元素出现的次数,但是时间和空间都不理想因为本题给定的数组总是存在多数元素,使用投票算…

GitLab-CI 指南

GitLab CI 指南 前置工作 部署GitLab 部署GitLab-Runner 注册Runner到GitLab docker exec -it gitlab-runner bash # 进入容器 gitlab-runner register #调用register命令开始注册 # 在Gitlab Setting中找到Runners,如下图所示Enter the GitLab instance URL (for example, …

高品质音乐下载命令行工具Musicn

又到了小苏同学的生日🎂,宝贝,生日快乐!祝永远健康、快乐、心想事成! 什么是 Musicn ? Musicn 是一个可播放及下载高品质🎵音乐🎵的命令行工具。支持咪咕、酷我、酷狗和网易云的服务…

C#设计模式之--六大原则 开闭原则

设计模式六大原则是单一职责原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特法则、开闭原则。它们不是要我们刻板的遵守,而是根据实际需要灵活运用。只要对它们的遵守程度在一个合理的范围内,努为做到一个良好的设计。本文主要介绍一下.NET(C#)…

《中国区块链发展报告(2023)》发布 和数集团推动区块链发展

北京区块链技术应用协会与社会科学文献出版社日前在京共同发布《区块链蓝皮书:中国区块链发展报告(2023)》。蓝皮书归纳梳理了2022年区块链产业发展现状及趋势,并结合行业热点Web3.0、AIGC,探讨我国区块链发展的热点话…

变动的Python爬虫实现

在电商时代,了解商品价格的变动对于购物者和卖家来说都非常重要。本文将分享一种基于Python的实时监控电商平台商品价格变动的爬虫实现方法。通过本文的解决方案和代码示例,您将能够轻松监控商品价格,并及时做出决策。 一、了解需求和目标 在…

GB28181/GB35114视频汇聚平台LiveGBS中如果修改默认admin用户的用户名以及其他用户的用户名

GB28181/GB35114流媒体服务搭建 搭建入口,解压启动即用:https://www.liveqing.com/docs/download/LiveGBS.html 一、功能说明 提供用户管理及 Web 可视化页面管理,开源的前端页面源码; 提供设备状态管理,可实时查看设备是否掉线…

让你对es有一个初步的了解

首先es在海量数据的搜索能力非常好,es你可以把他看成一个搜索引擎数据库,他是个非关系型数据库。他的语法有很大的不同,好像都是json风格的。还有一点需要说的就是es 的数据是存在硬盘上的, 我们先来看一下mysql和es的区别吧。一…

vue中使用echarts三维的项目

需要安装 echarts 同时引入 echarts-gl 我安装的版本: "echarts": "^5.3.2", "echarts-gl": "^2.0.9", 效果 : 安装后main.js引入 import Vue from "vue"; import * as echarts from "echart…

实验八 网卡驱动移植

【实验目的】 掌握 Linux 内核配置的基本方法,完成对网卡驱动、NFS 等相关功能的配置 【实验环境】 ubuntu 14.04 发行版FS4412 实验平台交叉编译工具:arm-none-linux-gnueabi- 【注意事项】 实验步骤中以“$”开头的命令表示在 ubuntu 环境下执行&…

ChatGPT、Google Bard、Claude2、新BING哪一款人工智能聊天机器人适合自己

人工智能聊天机器人正在提高数无数专业人士的工作效率。下面我们就来看看目前最流行的几款强大的人工智能工具,以及它们具体如何帮助到你。 今年7月AI圈最大的动静之一便是AI初创公司Anthropic发布了其AI聊天机器人Claude最新版本——Claude2。该聊天机器人对标Open…

大数据课程K6——Spark的Shuffle详解

文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Spark的定义&&特点&&目的&&优缺点; ⚪ 掌握Spark的相关参数配置; ⚪ 掌握Hadoop的插件配置; 一、Spark Shuffle详解 1. 概述 Shuffle,就是洗牌。之所以…

力扣 337. 打家劫舍 III

题目来源:https://leetcode.cn/problems/house-robber-iii/description/ C题解1(来源代码随想录):本题一定是要后序遍历,因为通过递归函数的返回值来做下一步计算。本题关键是要讨论当前节点抢还是不抢。如果抢了当前节…

关于数组和指针的笔试题解析(详解)

文章目录 说明🚩数组笔试题💻一维数组📄练习:💡解析 💻字符数组📄练习1:💡解析📄练习2:💡解析📄练习3:&#x…

诚迈科技子公司智达诚远与Unity中国达成合作,打造智能座舱新时代

2023 年 8 月 23 日,全球领先的实时 3D 引擎 Unity 在华合资公司 Unity 中国举办发布会,正式对外发布 Unity 引擎中国版——团结引擎,并带来专为次世代汽车智能座舱打造的团结引擎车机版。发布会上,诚迈科技副总裁、诚迈科技子公司…

Wireshark数据抓包分析之UDP协议

一、实验目的: 通过使用wireshark对UDP数据包的抓取分析UDP协议的内容 二、预备知识: UDP协议的概念:UDP使用底层的互联网协议来传送报文,同IP一样提供不可靠的无连接传输服务。它也不提供报文到达确认、排序及流量控制等功能。 …

VScode中写Verilog时,iverilog语法自动纠错功能不起作用

VScode中编写Verilog时,iverilog语法自动纠错功能不起作用 问题:按照教程搭建vscode下Verilog编译环境,发现语法纠错功能一直无效,检查了扩展Verilog-HDL/SystemVerilog/Bluespec SystemVerilog的配置也没有任何问题。 错误原因&a…

uniapp离线打包apk - Android Studio

uniapp 离线打包 基于uni-app的andiord 离线打包 开发工具及所需要的jar包​1.将下载的App离线SDK解压打开,找到HBuilder-Integrate-AS ,在Android Studio打开2.打开HBuilder X,发行->原生app本地打包->生成本地打包app资源3.在“HBuil…

R语言lasso惩罚稀疏加法(相加)模型SPAM拟合非线性数据和可视化

全文链接:https://tecdat.cn/?p33462 本文将关注R语言中的LASSO(Least Absolute Shrinkage and Selection Operator)惩罚稀疏加法模型(Sparse Additive Model,简称SPAM)。SPAM是一种用于拟合非线性数据的强…

RocketMQ-(7-1)-可观测-Metrics

RocketMQ 以 Prometheus 格式公开以下指标。您可以使用这些指标监视您的集群。 服务端 Metrics 指标生产者 Metrics 指标消费者 Metrics 指标 版本支持:以下指标 Metrics 是从 5.1.0 版本开始支持。 Metrics 指标详情​ Metric types​ 消息队列 RocketMQ 版定义…