首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Emacs:如何跳转到.el文件中的函数定义?

关于Emacs中跳转到.el文件中的函数定义,可以使用以下几种方法:

  1. 使用find-function命令:

在Emacs中,可以使用find-function命令来跳转到.el文件中的函数定义。具体操作如下:

  • 按下M-x(即按下Alt键和x键)
  • 输入find-function并按回车键
  • 输入函数名称并按回车键

这样,Emacs会自动跳转到对应函数的定义处。

  1. 使用imenu插件:

imenu是一个Emacs的插件,可以帮助用户快速跳转到.el文件中的函数定义。使用imenu的方法如下:

  • 在Emacs中安装imenu插件(可以使用package.el或者straight.el等插件管理工具)
  • 在Emacs配置文件中添加以下代码:
代码语言:txt
复制
(require 'imenu)
(setq imenu-auto-rescan t)
(setq imenu-use-popup-menu t)
(setq imenu-max-item-length 80)
(setq imenu-sort-function 'imenu--sort-by-name)
(add-hook 'emacs-lisp-mode-hook
          (lambda ()
            (imenu-add-to-menubar "Functions")))
  • 重新加载配置文件

这样,在Emacs中打开.el文件时,就可以使用imenu插件快速跳转到函数定义处了。

  1. 使用xref插件:

xref是一个Emacs的插件,可以帮助用户快速跳转到.el文件中的函数定义。使用xref的方法如下:

  • 在Emacs中安装xref插件(可以使用package.el或者straight.el等插件管理工具)
  • 在Emacs配置文件中添加以下代码:
代码语言:txt
复制
(require 'xref)
(define-key emacs-lisp-mode-map (kbd "M-.") 'xref-find-definitions)
(define-key emacs-lisp-mode-map (kbd "M-,") 'xref-pop-marker-stack)
  • 重新加载配置文件

这样,在Emacs中打开.el文件时,就可以使用xref插件快速跳转到函数定义处了。

总之,Emacs中跳转到.el文件中的函数定义有多种方法,可以根据自己的需求选择合适的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

关于MATLABM文件如何解决“未定义函数或变量”若干办法

脚本文件很简单,就是由一堆命令构成,里面第一行不是 function 开头,这种文件比如是encrypt.m编写好后直接点F5或者运行键运行就行,不存在出现诸如“未定义函数或变量”问题; 函数文件就相对复杂一些...目录 问题提出 解决办法 情况一:文件路径与系统当前路径不匹配 情况二:函数名与文件名不一致 情况三:命令窗口中直接写函数名 问题提出 在函数文件,很可能会出现如下图这样问题: ?...这张图就是文件名与函数名不一致情况,这也会导致“未定义函数或变量’encrypt’”这种问题出现,解决办法就是把文件名改成“encrypt.m”或者将函数名改为hello(n)即可。...这种情况除非已经在函数文件定义函数名才会避免。否则没有函数文件直接写这条命令语句肯定是不可行。 最后,给出排除了所有报错可能,正确得到运行结果: ? OK!...以上就是关于MATLABM文件如何解决“未定义函数或变量”若干办法总结。希望能帮助到更多小伙伴! 大家有什么想法或者发现新问题及解决办法别忘了在评论区告诉我哦! 欢迎评论,感谢阅读! END

11.9K41
  • 如何避免 JavaScript 模块化函数定义陷阱

    但是,当将普通 JavaScript 文件转换为模块时,我们可能会发现一些函数突然“消失”了,即浏览器控制台报错提示函数定义。...假设在一个普通 JavaScript 文件,我们编写了如下代码,这段代码定义了一个 pageLoad 函数,用于在页面加载时执行一些初始化操作: // script.js function pageLoad...全局变量问题:为什么普通脚本全局变量或函数在模块化后不再可用 由于模块作用域是私有的,导致在普通脚本定义全局变量或函数,在模块化后无法直接作为全局对象一部分被访问。...以下是模块和普通脚本关键区别: 普通脚本全局作用域:在非模块化文件,所有定义变量和函数都会自动成为全局对象(window)一部分,因此像 pageLoad 这样函数可以直接被 window.onload...解决方案 当 JavaScript 文件转换为模块后,出现函数定义问题有两种主要解决方案,我们可以根据项目的实际需求进行选择。

    10410

    Emacs001学用Emacs之入门:关于配置文件

    本文主要解决如下三个问题 emacs配置文件在哪儿? 使用是什么语法? 怎么读配置文件(已经以后怎么自定义配置) emacs配置文件在哪儿 1. 使用单个文件: ~/.emacs 。...这种方法把所有初始化函数放在一个文件里,设置起来简单,但是一旦插件多了这个文件就会变得很长很乱。 2. 使用目录: ~/.emacs.d/ 。...所有配置文件都放在该目录下,并且Emacs启动时会自动执行该目录下名为 init.el 文件。...虽说只有一个文件会被自动执行,但可以在 init.el 里执行其它函数,所以 init.el 可以变得很简洁;使用Emacs Feature 机制(???)...,可以很方便地把具体初始化工作按类别分在其余文件。推荐方法。

    3K40

    project.el 使用说明

    在之前文章中就多次提到过 28 版本 project.el如何好用,但一直没去详细介绍,这篇文章就来填上这个坑。一句话总结,project.el 完全可以替换 projectile[1]。...根目录 在日常编程Emacs 很多包都依赖一个功能:查找当前项目的根目录,比如 lsp-mode、citre 等。...在 project.el ,默认只支持 VC[3] Git,即 project-try-vc,但可以自定义找根目录方式,配置如下: (defun my/project-try-local (dir...))))))) (setq project-find-functions '(my/project-try-local project-try-vc)) my/project-try-local 函数定义了常用编程语言依赖描述文件...作为额外补充,可以通过创建一个名为 .project 文件,用作根目录标识,与 .projectile 类似 该函数返回一个 cons,car 为项目类型,这里定义为 local,cdr 为根目录

    40810

    用了VS Code、IDEA等十几款编辑器后,我总结出优秀编辑器特质

    接着使用 vim 典型动作,例如$(转到行尾)、f(转到在 f 之后键入下一个字符第一个匹配项,例如f(将使光标移至下一个 (上)、%(转到匹配定界符)或w(转到下一个单词开头)/b(转到上一个单词开头...它有几种模式,具体取决于你要执行移动类型: 按行:此模式允许你至当前(或所有打开)缓冲区任何行。 按单词:此模式允许你跳转到当前(或所有打开)缓冲区任何“单词”。...按字符:如果单词模式无法跳转到特殊运算符或字符(因为无法识别为单词),则可以使用此模式跳转到当前缓冲区(或所有打开缓冲区)任何字符。...2 其他模态技巧 对模态编辑而言,以下是我希望编辑器具备功能列表,当然不止这些: C-i和C-o:这些使我可以跳转到缓冲区某个文件 / 某个位置,然后返回到C-o之前我所在位置,或者输入C-i...它能为你做很多事情,其中一些真的给我留下深刻印象: 允许我在函数内选择代码块重构机制,要求编辑器“将其移至专用函数”。

    1.8K10

    一名ClojurianEmacs配置

    )原则,我照着各种插件说明文档,把配置项复制粘贴到init.el文件当中,运行起来没有问题就好。...随着自定义内容变多,init.el文件也急剧膨胀起来。膨胀本来算不上问题,但我是个比较有操守程序员,臃肿代码是我极力避免坏味道(bad smell)。...接下来,只需要使用c-h v和c-h f查看elisp定义变量函数就能很快上手自行配置。...模块化 如果把什么东西都揉到init.el文件,这个文件一定会很快变得臃肿不堪。为了解决这个问题,需要引入模块化思想——把特定功能配置放到独立文件,然后require进来。...按照惯例,我在~/.emacs.d目录下建立一个lisp目录用于存放所有自定义模块文件,随后在init.el中加入下面这句代码,意在把lisp目录加到emacs加载路径列表里。

    2.8K20

    如何在 Go 函数获取调用者函数名、文件名、行号...

    如果让我们用 Go 设计一个Log Facade,就需要我们自己在门面里获取调用者函数名、文件位置了,那么在Go里面怎么实现这个功能呢?...) Caller 函数会报告当前 Go 程序调用栈所执行函数文件和行号信息。...//获取是 CallerA函数调用者调用栈 pc1, file1, lineNo1, ok1 := runtime.Caller(1) } 函数返回值为调用栈标识符、带路径完整文件名...、该调用在文件行号。...获取调用者函数名 runtime.Caller 返回值第一个返回值是一个调用栈标识,通过它我们能拿到调用栈函数信息 *runtime.Func,再进一步获取到调用者函数名字,这里面会用到函数和方法如下

    6.5K20

    Emacs 28 新特性介绍

    这篇文章就来介绍 Emacs 28 ,笔者个人觉得比较实用功能,完整列表可参考 NEWS[3] ( M-x view-emacs-news ),最后会介绍如何在 macOS 上编译。...与 flush-lines 命令类似,但是匹配行会作为整体加到 kill ring • 新配置 kill-transform-function 字符在添加到 kill ring 预处理函数 •...• remove-hook 改成 interactive 命令 • 新增命令 shortdoc-display-group 之前节目[7]多次提到过功能,按函数类型归类,展示其用法 shortdoc...,nil 表示 tar.gz • 新配置 dired-copy-dereference 拷贝时是否跟随源文件符号链接 • Org 升级到 9.5 版本 • NonGNU[8] ELPA 默认开启 •...positional 参数已经被淘汰 编译方式 看了上面那么多新功能,读者可能已经按捺不住内心喜悦,这里就来介绍如何在 macOS 编译 28 版本,其他操作系统方式类似。

    96830

    Emacs 启动时间优化实践

    截至发表本文前,优化后配置运行了三周多,体验和之前无异。 目标 Emacs 中提供了一个函数来记录启动时长,即 emacs-init-time ,后文也用这个时间作为优化目标。...可以方便定义 project-root ,对于 monorepo 来说尤为重要,而且 lsp-mode/citre 之类工具也都依赖这个 3. project 内搜索文件要快 projectile...我也是调教了很久才用比较舒服,但感觉还是太重,于是想看看能否用 Emacs 自带 project.el 来替代它,通过一番搜索,发现 28 版本 project.el 通过一些简单配置即可达到...优化前配置是放在一个大 org 文件,即所谓『文学式编程』。...(org-babel-load-file (expand-file-name "core.org" user-emacs-directory)) 优化后是拆分到多个 el 文件,使用 load-file

    95120

    死磕python(1)

    写程序也讲究一个感觉,你需要一个字母一个字母地把代码自己敲进去,在敲代码过程,初学者经常会敲错代码:拼写不对,大小写不对,混用中英文标点,混用空格和Tab键,所以,你需要仔细地检查、对照,才能以最快速度掌握如何写程序...Vim 不需要花费太多学习时间,一旦你需要一个无缝编程体验,那么就会把 Vim 集成到你工作流。...Emacs GNU Emacs 是可扩展,自定义文本编辑器,甚至是更多功能。Emacs 核心是 Emacs Lisp 解析器,但是支持文本编辑。...notepad++(特别推荐) ①、Notepad++中文版内置支持多达 27 种语法高亮度显示(囊括各种常见源代码、脚本,值得一提是,完美支持 .nfo 文件查看),也支持自定义语言;...②、可自动检测文件类型,根据关键字显示节点,节点可自由折叠/打开,代码显示得非常有层次感!

    46531

    Emacs Tree-sitter 初体验

    Tree-sitter 简介 Emacs 29 一大亮点就是原生支持了 tree-sitter[1](后文简称 ts),它官网是这么定义: Tree-sitter is a parser generator...在 Emacs ,之前都是采用正则方式去解析语言语法结构,这种方式虽然大多数情况是没有问题,但主要有以下几个问题: 正则比较消耗 CPU,导致对大文件进行高亮时容易导致 Emacs 卡主,参见:.../configure --with-tree-sitter 不同平台包管理器都有预编译好动态文件,在 macOS 上可以用如下命令: brew install tree-sitter 编译完 Emacs.../releases Emacs 默认从 treesit-extra-load-path 指定路径去加载动态链接库,如果这个值是 nil ,它默认会从 user-emacs-directory 下 tree-sitter...,需要开启 Emacs 对应 mode 来使用,比如 c-mode 对应 c-ts-mode ,Emacs 为不同语言重新实现了一个以 ts-mode 结尾新 mode,在 29 版本,主要有如下

    1.3K10

    Oracle如何导出存储过程、函数、包和触发器定义语句?如何导出表结构?如何导出索引创建语句?

    今天小麦苗给大家分享是Oracle如何导出存储过程、函数、包和触发器定义语句?如何导出表结构?如何导出索引创建语句?。 Oracle如何导出存储过程、函数、包和触发器定义语句?...如何导出表结构?如何导出索引创建语句?...---- 总体来说有两种方式来获取,第一,利用系统包DBMS_METADATA包GET_DDL函数来获取,第二,利用exp或expdp来获取。...下面来看第一种方式,如何利用系统包DBMS_METADATA包GET_DDL函数来获取对象定义语句。...另外,使用imp工具indexfile选项也可以把dmp文件表和索引创建语句导出而不导入任何对象,命令如下: imp userid/userid@service_name file=/tmp/exp_ddl_lhr

    5.2K10
    领券