Emacs中的前进后退jump-tree

*/-->

code {color: #FF0000}
pre.src {background-color: #002b36; color: #839496;}

Emacs中的前进后退jump-tree

1 效果

可以自由的跳转到不同的定义和文件中去,然后,再跳转回来。

2 为什么开发这个插件?

本人在使用Emacs的过程中,长期由于缺乏一个类似于Vim的前进和后退的功能而苦恼。搜索了各种jump的实现方式,都总感觉欠缺了点什么。
直到发现jump-list,但是jump-list有时不太清楚到底发生了什么,特别是在阅读别人的代码的时候,经常要跳转到定义的地方去,然后,跳回来,继续往下读,然后再跳到新的定义里面去。但有时候,又想跳到刚刚的定义里面去。这时,由于跳回来之后后面的记录把前面的记录会抹掉,所以,肯定是到不了前面那个定义中去的。
由于,经常使用undo-tree来做一些后退和恢复的操作,发现它的树形记录,可以记录所有的操作历史。任意的状态,总是可以后退回去的。这个在进行反复操作的时候,非常有用。如果发现有什么地方不对,马上打开可视化的界面,进行后退,如果有分支的话,可以进入分支进行查看。于是,想能不能把这两个结合起来。然后,就开发了这个jump-tree插件。

3 特点

3.1 包含jump-list的所有功能

可以根据设定的command列表,只要这些命令执行时,就记录一个位置点,用于后退和前进。

3.2 具有undo-tree的树形结构记录

采用树结构可以用来保存所有的历史位置。我们可以跳转到所有之前记录的位置。

3.3 增加命令移动的距离超过给定值时自动记录位置的功能

当命令移动的距离超过设定值时,记录一个位置点用于后退。比如,翻页,跳转到函数头、函数尾等。这些也可以使用前面的命令列表来实现,默认,命令列表的优先级比这个要高一些。当没有设置命令列表时,只要移动距离比较大,也可以马上退回到之前的位置。

3.4 增加切换buffer或者文件时自动记录位置的功能

当我们的命令,会打开一个新的buffer或者文件时,会记录一个位置,可以跳转回去。

4 安装

  • 可以使用package-list-packages进行安装
  • 可以使用malpa进行安装:
    melpa/jump-tree
  • 也可以从github上直接下载安装:
    yangwen0228/jump-tree
    如果觉得好用也可以给项目点赞。^_^

Date: 2017-08-12 20:03

Author: WEN YANG

Created: 2017-08-12 Sat 20:35

Emacs 25.2.1 (Org mode 8.2.10)

Validate

Emacs中的前进后退jump-tree的更多相关文章

  1. 在Emacs中使用GNU Global

    背景 在我平时用Emacs编写C代码时,经常需要进行代码的跳转,主要需求为函数定义的跳转,某个具体函数的调用查找,某个结构体的定义跳转以及结构体中具体某一项的跳转等,GNU Global就能完全满足我 ...

  2. iOS CALayer动画中使用的3个tree

    在网上经常看到关于layer的tree的描述,不太理解,今天找到了官方文档,原文在Core Animation Programming Guide 中. Layer Trees Reflect Dif ...

  3. 使用Emacs中的org-mode写cnblogs之图片插入

    .title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium ...

  4. Emacs中的拼写检查

    无论是在Emacs中写英文日记(diary).Org mode笔记,还是撰写程序的注释和文档,拼写检查都是一项提高工作效率.保证成果品质的必不可缺的工具.拼写检查对于常见的文字处理软件(如Word.L ...

  5. Emacs中多个golang项目的配置方法

    概述 最近使用golang开发项目时, 发现有时需要同时进行多个golang项目. 在这种情况下, 如果把所有的项目都放在 GOPATH 之下, 不仅管理麻烦(因为各个项目需要提交到不同的代码库), ...

  6. Emacs 中使用中文插件 eim

    在 Emacs 中输入中文,一般用 ibus 一类的输入法也能应付,但来回切换有点麻烦,这里介绍国人写的一个好插件 eim. - 安装 由于在 list-packages 中没有找到这个插件,所以不能 ...

  7. Emacs 中使用 shell

    直接在 Emacs 中使用 shell 能增加一点效率.Emacs 本身支持的 shell 相关的命令很多,此处化繁为简,只用一条足够了. M-x shell:将打开一个名为 * shell * 的 ...

  8. Emacs中使用shell(调出terminal)

    在Emacs中使用shell(调出terminal) 方法: M-x eshell 注意:不能使用 M-x shell,这样调用的是 cmd命令,一些命令无法使用

  9. 在Emacs中使用git操作

    在Emacs中使用git操作 1.安装 magit 插件 2.安装后开始使用 3.使用方法: . 使用 M-x:magit-status 打开当前仓库查看基本信息 .使用 ? 键查看magit命令绑定 ...

随机推荐

  1. Python之路-条件控制&循环语句&列表推导式&常用函数

    一.什么是条件控制语句 条件控制语句,也可以称之为判断语句,通过一条或多条的执行结果来决定接下来要执行的代码块. 二.if语句 if语句是用来进行判断的,最简答的if语句只有一个判断一个操作. 语法: ...

  2. postgresql Streaming Replication监控与注意事项

    一监控Streaming Replication集群 1 pg_stat_replication视图(主库端执行) pid Wal sender process的进程ID usesysid 执行流复制 ...

  3. iOS 应用配置及证书生成教程

    简介 首先你需要有一个苹果的开发者帐号,一台苹果电脑.点击查看苹果开发者账号注册流程 本教程需完成应用信息配置,包括如下两个基本配置: AppID Bundle ID 同时,生成 如下三个证书文件及对 ...

  4. ASE Code Search

    重现基线模型 Hamel's model 基线模型原理 如何实现semantic search?在已有数据库的基础上,衡量一个句子和每段代码的相关性再进行排序,选出最优代码片段即可实现一个通用的cod ...

  5. tmux 操作简版

    操作session: 操作window: 操作pane: 原文

  6. springboot 集成rabbitMQ

    package com.jd.ng.shiro.config.rabbitMQconfig; import com.jd.ng.shiro.rabbitMqListener.SimpleMessage ...

  7. centos 6.5 安装 jdk 8

    首先,检查是否已安装jdk,如果有,要先删除 rpm -qa|grep java rpm -e --nodeps filename 然后,从oracle官方网站下载jdk安装包:jdk-8u121-l ...

  8. Django中如何将javascript中的变量传给位于javascript内的{% url %}中的参数?

    这个问题困扰了我一天,不知道困扰了你多久,希望能帮助你 django 中的url模版使用起来可以说是非常方便的,但是怎么在url模版中传入参数的 {% url "url.index" ...

  9. 数据库(一):事务的特性与事务(在同一个 JVM 中)的传递

    参考文章 https://blog.csdn.net/shuaihj/article/details/14163713 https://blog.csdn.net/shfqbluestone/arti ...

  10. dede标签大全

    想必很多人对后台不熟悉,并且觉得很难.其实不难,只是你们没有找到合适的方法学习而已!只有找到一个合适的学习方法,不管做什么事情,我想都很容易.学习讲究的是效率,而效率又是由思路决定的.就拿网页制作来说 ...