emacs有没有光标回到原位置的快捷键,就像放弃内容修改一样,一步一步退回,光标能否也这样退回
有没有我不知道
但是要实现并不是很难
写个idle-timer 记录marker
https://www.emacswiki.org/emacs/IdleTimers
https://www.emacswiki.org/emacs/MarkCommands
你还可以借 avy 来显示所有的marker
当然你得需要看懂abo-abo的代码
C-SPC
是 mark ,C-u
是反操作。所以 C-u C-SPC
是反 mark,就可以实现你说的,前提是你要 mark。你试试看。(虽然这个东西极其难用。。。搭车问一下你们都用什么。)
我觉得mark ring搭配helm-bm就够用了
remember-init remember-jump
其实本身emacs本身就有mark的功能。不过隐藏得太深。
总结来说:
- 可以C-spc C-spc按两次设置一个mark。第二次C-spc是为了去掉高亮。
- 然后随便移动。
- 本文件内,C-u C-spc其实就是类似调用(set-mark-command t),就可以返回之前设置的mark中。
- 要在所有buffer中跳转,就直接使用
pop-global-mark
命令。 - 我自己使用时,发现调用
beginning-of-buffer
类命令的时候,emacs会自动给你把之前的位置放入mark-ring中。 - 建议把C-spc绑一个好按的按键,比如xah-fly-key默认绑到t了。于是我的流程就是,需要暂存一下当前位置,就tt两下,然后随便跳都能回来。
不过有时候我还是会bm。
有时还用ivy-pop-view,ivy-push-view。
补充一下:使用mark-ring的时候,counsel-mark-ring和helm-all-mark-rings可以交互式地选择mark-ring。
推荐一个我自己魔改的一个小插件吧(依赖 ivy),主要就三个函数
sp-push-position-to-ring 来保存或者删除一个位置
sp-get-position-from-ring 来跳转不同的位置
sp-show-all-position-in-ring 来查看所有的位置
https://github.com/jixiuf/vmacs/blob/master/conf/conf-bm.el 我是使用bm这个可视化书签来进行跳转, 可以手动调用bm-toggle 在当行位置设置一个书签, 也可以在任何跳转前在原位置调用bm-bookmark-add设置一个书签
比如 我结合evil使用时,evil 进行任何大范围光标移动的时候,也同时在原位置加一个bm书签 比如evil 的f F t T gg G / 等命令的跳转都可以用bm进行接管,进而统一管理,
(defadvice evil-set-jump (around evil-jump activate)
(unless (string-match "bm-.*" (symbol-name this-command))
(bm-bookmark-add nil nil t))
ad-do-it)
又如在进行函数跳转前,在原位置设置书签
基本上加实现一套书签统一管理光标跳转
windows 上你们都是怎么绑定 set-mark-command 的?因为 C-SPC 被系统用于切换输入法,我把它绑到 F5 ,发现有点远不是很好按
用这个包: MELPA
Goto Last Change
Goto the point of the most recent edit in the buffer. When repeated, goto the second most recent edit, etc. Negative argument, C-u -, for reverse direction. Works by looking into buffer-undo-list to find points of edit.
You would probably like to bind this command to a key. For example in your ~/.emacs:
(require 'goto-chg)
(global-set-key [(control ?.)] 'goto-last-change)
(global-set-key [(control ?,)] 'goto-last-change-reverse)
Works with emacs-19.29, 19.31, 20.3, 20.7, 21.1, 21.4, 22.1 and 23.1 Works with XEmacs-20.4 and 21.4 (but see todo about `last-command’ below)
我绑了C-v
一个新插件
这是看过最短的一个包了
把系统输入法切换快捷键改一下呗,系统设置里面有。
感谢,确实这个方法最直接。(我原来应该试过,没有生效就放弃了,现在 ok 了)
evil有evil-jump和evil-insert-resume