我正在切换到emacs,在配置我的emacs环境的过程中,我一直在实现我过去在eclipse和IntelliJ中拥有的功能。使用alt左/右键在代码中来回移动。
我希望它能够跨所有主要模式和所有缓冲区工作(不仅仅是针对java或任何特定语言)。例如比如我在file1.txt的开头(比如p1
)。我搜索一些文本,然后转到file1.txt
中的第10行(p2
)。然后我打开另一个文件file2.txt
,重复同样的操作,从第1行(p3
)开始,然后转到第10行(p4
)。在Alt + Left
和Alt + right
(或任何其他类似的密钥绑定)时,我应该能够在位置p1 <-> p2 <-> p3 <-> p4
之间循环
我知道以下情况。
- ctags/etags特定的生成标签、跳转到函数然后返回的方法。但我希望它适用于文本文件和许多无法生成ctag或不值得生成ctag的文件,因为我很少使用它们,例如从cmake构建生成的Makefiles等
- 中的问题、答案和评论https://superuser.com/questions/241939/how-to-jump-back-to-the-last-position-of-the-cursor-in-emacs,在Emacs中,使用语义跳转到符号后,如何返回到前一行位置?其中提到了使用标记环和寄存器的答案存储标记。但在最初尝试过这种方法后,我发现有一次,如果我前进,然后后退,我会从寄存器中弹出一些东西。我需要它永远在那里(:D)
- 我读到关于冰柱的非常糟糕的东西,有点犹豫要不要尝试它
我还错过了其他方法吗?有插件什么的吗?实现这一点有点复杂。我希望这是一个常见的问题,并希望存在一些elisp代码来解决这个问题。
也许这很有用。也许不是https://github.com/joodland/bm
(setq-default
bm-recenter nil
bm-highlight-style 'bm-highlight-line-and-fringe
bm-cycle-all-buffers t
bm-in-lifo-order t)
;; (global-set-key (kbd "M-.") 'bm-toggle); you need set mark before you jump
;; (global-set-key (kbd "M-/") 'bm-next)
;; (global-set-key (kbd "M-,") 'bm-previous)
我知道邪恶模式C-o邪恶向后跳C-i邪恶向前跳每当你使用gg G/它可以记住最后一个位置