不用evil
请问有没有哪个包,能支持emacs中前进后退的?
就像vim中的Ctrl-o, Ctrl-i一样。
找了个better-jumper包,简单配了下好像也不好用
不用evil
请问有没有哪个包,能支持emacs中前进后退的?
就像vim中的Ctrl-o, Ctrl-i一样。
找了个better-jumper包,简单配了下好像也不好用
喵,meow ,模式编辑,开发者就在论坛里,现在的功能已经比较完善了,非常好用,正适合你。
帖子在这,猫态编辑:Meow - #301,来自 DogLooksGood
Emacs meow 一搜,GitHub 也能搜到。
给你 补个链接 :
好像不沾边啊。。。。better jump 就是用来做 vim 那个 jump 效果的。
简单看了一下,感觉好像很强大
我题目里所说的前进后退,这个meow也能够实现吗?
因为你的问题有点模糊, 比如这句。那我的理解就是你想相同的移动,更少的按键。
我没用过,但是 meow-expand 就很方便了,可能你用过会更适应
我强拉一波
原来如此。
可能还有点不一样,vim里Ctrl-o, ctrl-i 跳转跨度很大的,可以跨文件。
不过你推荐这个我也会试用一下。
能指导一下怎么做的吗?
我把ctrl-o ctrl-i 按键映射到 jump-backward/jump-forward 怎么不行啊
好像还要先set-jump?
就是你要事先列的出来都有那些命令需要 jump 的记录,要做对应的设置。我不用 better-jump ,所以不知道具体的细节。
emacs 内置的 jump 分成两个情况(我知道的)。
M-.
去的,可以用 M-,
回来M-<
, M->
之类的命令,或是创建选择时产生的位置。谢谢你的回答!
我感觉这些貌似都需要额外的设置,不像vim会自动记录在jump list里面
M-.
和 M-,
是不需要设置的,也很常用。
C-x C-SPC
(pop-global-mark) 是一个文件取一个 mark, 可能也是你想要的。不过这个命令不能反过来,也不支持 negative-argument. 他是循环的。
xref好像有点意思。
不过好像是浏览代码用的,不知道我浏览org mode有没有用。
确实在org里跳转后想 Ctrl-o 回去
我发现跳转链接之后,会自动set-mark,那么就可以用org-mark-ring-goto跳回去。 然后你再绑定一个快捷键,嘿嘿,体验暂时还行
目前我是使用 backward-forward 来记录 跳转位置历史,同 xref 也做了集成。
只要是需要记录位置的场景,调用一下 push-mark
,通过 advice
还是比较方便的。
平时按 M-,
C-M-,
进行往后往前位置跳转。
配置如下:
;; backward-forward
(use-package backward-forward
:defer nil
:custom
(backward-forward-mark-ring-max 100)
:init
(defun my/backward-forward-previous-location ()
"A `backward-forward-previous-location' wrap for skip invalid locations."
(interactive)
(let ((purge (< backward-forward-mark-ring-traversal-position (1- (length backward-forward-mark-ring))))
(recent (point-marker)))
(backward-forward-previous-location)
(when (and (equal recent (point-marker)) purge)
(my/backward-forward-previous-location))))
(defun my/backward-forward-next-location ()
"A `backward-forward-next-location' wrap for skip invalid locations."
(interactive)
(let ((purge (> backward-forward-mark-ring-traversal-position 0))
(recent (point-marker)))
(backward-forward-next-location)
(when (and (equal recent (point-marker)) purge)
(my/backward-forward-next-location))))
:bind
("M-," . my/backward-forward-previous-location)
("C-M-," . my/backward-forward-next-location)
("s-," . my/backward-forward-previous-location)
("C-s-," . my/backward-forward-next-location)
:config
(backward-forward-mode t))
(setq a '(:a 1 :b 2 :c 3))
(setq font-lock-defaults '((dired-font-lock-keywords diredfl-font-lock-keywords-1 dired-font-lock-keywords) t nil nil beginning-of-line)) (re-builder-extended-pattern “,”) (defun foo (arg) “Print the current raw prefix argument value.” (interactive “P”) (message “raw prefix arg is %S” arg))
(let ((current-prefix-arg 0)) ;; emulate C-u (call-interactively 'yank))
“手动添加mark可以用这个”
(use-package bookmark+
:init ;; bookmark+ can be a content organizer
(require 'bookmark+)
(bmkp-turn-on-auto-idle-bookmark-mode)
:commands (hydra-bookmark/body)
;; evil-jump-forward evil-jump-backward
;; ("C-c C-/" . counsel-bookmark)
:bind* (("C-S-SPC" . bmkp-set-autonamed-bookmark)
("C-o" . bmkp-next-bookmark-this-file/buffer-repeat)
("H-i" . bmkp-previous-bookmark-this-file/buffer-repeat))
:config
(defhydra hydra-bookmark (:color pink)
("<escape>" nil "exit")
("C-a" bmkp-annotate-bookmark "add annotation")
("C-d" bmkp-set-desktop-bookmark "bookmark desktop")
("C-s" bookmark-bmenu-show-all-annotations "show annotation")
("C-t" bmkp-toggle-autonamed-bookmark-set/delete "set/delete automatic bookmark")
("C-l" bookmark-bmenu-list "list all")
("C-n" bmkp-next-bookmark-this-file/buffer-repeat "next in buffer")
("C-p" bmkp-previous-bookmark-this-file/buffer-repeat "previous in buffer")
("C-h" my-toggle-highlight "toggle highlight in buffer")
("C-f" bmkp-switch-bookmark-file-create "switch file"))
(setq bookmark-version-control t
bmkp-last-as-first-bookmark-file "~/.emacs.d/bookmarks"
bmkp-auto-idle-bookmark-mode-delay 15
bmkp-auto-idle-bookmark-min-distance 250
bmkp-save-new-location-flag t
;; auto-save bookmarks
bookmark-save-flag 1)
(defvar my-bmkp-toggle nil
"Keeps the state of how the bookmark was last toggled by TABing.")
(defun my-toggle-highlight ()
(interactive)
(if my-bmkp-toggle
(bmkp-unlight-bookmarks-this-buffer) (bmkp-light-bookmarks-this-buffer))
(setq my-bmkp-toggle (not my-bmkp-toggle))))
简单点:C-x SPC
or C-u SPC
有个winner-mode