~/emacsConfig/gtags-setting.el

 (if (eq system-type 'darwin)
(add-to-list 'load-path "/usr/local/Cellar/global/6.2.9/share/gtags")
) (require 'gtags) (add-hook 'c-mode-common-hook 'gtags-mode)
(add-hook 'c++-mode-common-hook 'gtags-mode)
(add-hook 'java-mode-common-hook 'gtags-mode)
(add-hook 'gtags-select-mode-hook
'(lambda ()
(setq hl-line-face 'underline)
(hl-line-mode ))) (defvar gtags-src-dir nil)
(defvar gtags-saved-tagfile-dir nil)
(defvar gtags-language-suffix nil) (setq gtags-suggested-key-mapping t) (defun gtags-update ()
"Make GTAGS incremental update"
(if
(null gtags-src-dir)
(message "no tags updated for gtags")
(with-temp-buffer
(shell-command
(concat "cd " gtags-src-dir ";" "global " "-u")
(buffer-name))
)
)
) (defun gtags-update-hook ()
(gtags-update)
) (add-hook 'after-save-hook 'gtags-update-hook) ;gtags生成函数
(defun generate-gtags ()
"Generate gtag tables."
(interactive)
(let
(
(language-suffix "")
(src-dir "")
(saved-tag-dir "")
) (setq src-dir
(read-from-minibuffer "source directory for gtags:") language-suffix
(read-from-minibuffer "suffix:") saved-tag-dir
(read-from-minibuffer "gtags saved path:")
)
;设置全局变量保存起来
(setf gtags-src-dir src-dir)
(setf gtags-language-suffix language-suffix)
(setf gtags-saved-tagfile-dir saved-tag-dir) (with-temp-buffer
(shell-command
(concat "mkdir -p" " " gtags-saved-tagfile-dir " " "2>/dev/null;" "cd " gtags-src-dir ";" "find" " " gtags-src-dir " -name \"" gtags-language-suffix "\" | gtags" " " gtags-saved-tagfile-dir)
(buffer-name))))) ;加载gtags
(defalias 'load-gtags 'gtags-visit-rootdir) ;光return键在vim模式下不起作用,所以绑定的键是alt+回车
(define-key gtags-select-mode-map [(meta return)] 'gtags-select-tag)
(define-key gtags-select-mode-map [mouse-] 'gtags-select-tag) ;查找变量引用:gtags-find-symbol
;查找函数引用:gtags-find-rtag
(global-set-key (kbd "C-x v") 'gtags-find-symbol)
(global-set-key (kbd "C-x f") 'gtags-find-rtag)

emacs之配置gtags的更多相关文章

  1. [daily][emacs][go] 配置emacs go-mode的编辑环境以及环境变量问题

    1. 安装go 安装go-mode 使用emacs编辑go代码的时候,你需要有正常可运行的go环境. 并且有emacs的go-mode package https://www.emacswiki.or ...

  2. Emacs 安装配置使用教程

    Emacs 安装配置使用教程 来源 https://www.jianshu.com/u/a27b97f900f7 序|Preface 先来一篇有趣的简介:Emacs和Vim:神的编辑器和编辑器之神 - ...

  3. emacs之配置自动安装脚本

    emacsConfig下建立install目录,结构大概这样 . ├── auto-complete-etags-setting.el ├── auto-complete-setting.el ├── ...

  4. ubuntu14.04 下emacs 24 配置

    目的: 配置emacs 24 适合编程开发 主要参考JerryZhang的配置(Emacs 简易教程) http://www.perfect-is-shit.com/emacs-simple-tuto ...

  5. Emacs golang 配置

    在配置前需要下载用到的包: godoc godef gocode oracle 在下载包之前需要设置好环境变量: # Golang export GOROOT=$HOME/go export GOPA ...

  6. CentOS编译安装emacs并配置

    Liunxs中CentOS系列一向以稳定为目标,然而也会存在版本太旧的问题,emacs就是其中的一个,目前emacs都发行到25.2了,而CentOS上的emacs版本却还是23.1.所以需要下载源代 ...

  7. Emacs编辑器配置

    以前总是用的vim编辑器,今天突然想换emacs 用下.折腾了很久终于搞定.使用的是windows测试环境 emacs下载地址http://ftp.gnu.org/gnu/emacs/windows/ ...

  8. Emacs考场配置

    当年\(NOip\)考场配置不记得啦 存在这里搞事情 (set-background-color "gray15") (set-foreground-color "gra ...

  9. 我的emacs考场配置

    豪华配置(复制的神犇的,已膜改) (global-set-key [f9] 'compile-file) (global-set-key [f10] 'gud-gdb) (global-set-key ...

随机推荐

  1. 《JDK 8.0 学习笔记》1~3章

    第一章 Java平台概论 了解Java的发展历程和相关术语如JDK.JVM.JRE等 第二章 从JDK到IDE 书本介绍了新建Java程序的注意事项以及在cmd和Eclipse环境下如何运行Java, ...

  2. caffe2 环境的搭建以及detectron的配置

    caffe2 环境的搭建以及detectron的配置 建议大家看一下这篇博客https://tech.amikelive.com/node-706/comprehensive-guide-instal ...

  3. 51Nod 1509 加长棒(隔板法)

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1509 思路: 直接去解可行的方法有点麻烦,所以应该用总的方法去减去不可行 ...

  4. Spark读取结构化数据

    读取结构化数据 Spark可以从本地CSV,HDFS以及Hive读取结构化数据,直接解析为DataFrame,进行后续分析. 读取本地CSV 需要指定一些选项,比如留header,比如指定delimi ...

  5. MaintainableCSS 《可维护性 CSS》 --- 约定篇

    约定 可维护的CSS具有以下约定: .<module>[-<component>][-<state>] {} 根据所讨论的模块,方括号是可选的.这里有些例子: /* ...

  6. 这些HTML、CSS知识点,面试和平时开发都需要 No5-No7(知识点:文字设置、设置背景、数据列表)

    系列知识点汇总 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5-No7(知识 ...

  7. 关于UDP很好的书籍和文章(整理、持续更新)

    文章 告知你不为人知的 UDP:疑难杂症和使用(必看)

  8. Spring Boot安装

    Spring引导依赖项groupId使用org.springframework.boot. 通常Maven POM文件将继承自spring-boot-starter-parent项目,并将依赖性声明为 ...

  9. jxl将list导入到Excel中供下载

    jxl操作excel /** * 分隔符 */ private final static String SEPARATOR = "|"; /** * 由List导出至指定的Shee ...

  10. sqlserver版本分类下载以及各个版本之间的区别是什么

    很多用visual studio做开发的朋友经常会用到sqlserver数据库,但是往往在选择的时候就不知道该使用哪个版本了,今天亦是美网络就给大家分享一下sqlserver各个版本之间的区别,以及各 ...