spacemacs 自带 evil 了,我也习惯用 vim 的快捷键,习惯用 ctrl + d/u 来滚屏,这样按久了就容易痛了
感觉你可以建一个micro-state,比如
;; 一个micro-state ,用来快速翻页
(spacemacs|define-micro-state liu233w/view
:use-minibuffer t
:doc "`d' scroll-down `u' scroll-up `f' scroll-page-down `b' scroll-page-up"
:bindings
("d" evil-scroll-down)
("u" evil-scroll-up)
("f" evil-scroll-page-down)
("b" evil-scroll-page-up))
;; 这个micro-state用来进行快速翻页,
;; 这样在连续翻页的时候就不需要一直按住ctrl了。
(spacemacs/set-leader-keys "ov" 'spacemacs/liu233w/view-micro-state)
激活之后就可以通过dufb(不用加ctrl)来翻页了。按下其他的键就可以退出micro-state。
用 hydra 也能实现:
(defhydra hydra-evil-scroll-up-and-down (:hint nil)
"Scroll [u] up / [d] down, Page [p] up / [n] down, [q] quit"
("u" evil-scroll-up)
("p" evil-scroll-page-up)
("d" evil-scroll-down)
("n" evil-scroll-page-down)
("q" nil))
(define-key evil-normal-state-map (kbd "C-d")
'(lambda ()
(interactive)
(evil-scroll-down 0)
(hydra-evil-scroll-up-and-down/body)))
(define-key evil-normal-state-map (kbd "C-u")
'(lambda ()
(interactive)
(evil-scroll-up 0)
(hydra-evil-scroll-up-and-down/body)))
首次按组合键 C-u/d 翻页并激活,后续按单个键u/d/p/n就可以了,无需额外的激活键。存在的问题:1)单行提示没有高亮色; 2) 提示栏实际占了两行的高度。
或者简单点,把[/] 映射为 evil-scroll-up/down
。
那个首次按组合键的方法我也考虑过,但是这么做的话就没法按10 C-d
来向下滚动10行了。难不成每个函数都要写一个interactive命令吗_(:зゝ∠)_
(define-key evil-normal-state-map (kbd "C-d")
'(lambda (count)
(interactive "P")
(evil-scroll-down count)
(when (not count)
(hydra-evil-scroll-up-and-down/body))))
(define-key evil-normal-state-map (kbd "C-u")
'(lambda (count)
(interactive "P")
(evil-scroll-up count)
(when (not count)
(hydra-evil-scroll-up-and-down/body))))
不必每个,覆盖两个最常用的就好了。
各人侧重点不同,我更多是考虑记忆负担和一致性的问题,即使有了上边的设置,连续按C-u/d也不会有问题,只是 minibuffer 多了一提示而已。然后 Emacs 用爽了,偶尔回到裸奔的 vi,习惯性按 C-u/d总没有错。
交换caps 和 ctrl,就没痛过。就是别人用你的电脑,会很痛苦。
用手掌按压Ctrl,一边手掌一个Ctrl,跟多了一个手指一样。 不过笔记本键盘因为键帽太矮,手掌很难压倒,所以笔记本我一般外接键盘:wink:
笔记本的键程太短,反作用力挺大的。估计是你习惯了敲键盘很用力。
新入HHKB,完美使用Emacs
我在mac中 将command关联为control,觉得还可以。
学会使用ace-jump跳转,我绑定到M-[ 开始ace-jump,就能避免大量使用c-n/p/f/b了,用helm的m-x调用命令也会省很多按键
我偶然发现 spacemacs 已经有这种实现了…
直接 SPC n , 或 . 或 < 或 >
就能进入 transient state,然后按 ,
或 .
或 <
或 >
来翻页,按其他键退出该 state
已经实现了啊_(:зゝ∠)_
看来我的 multiple-micro-state.el
也已经没用了_(:зゝ∠)_
(defhydra hydra-look-over (:body-pre (next-line)
:hint nil)
"moving"
("n" next-line)
("p" previous-line)
("f" forward-char)
("b" backward-char)
("F" forward-word)
("B" backward-word)
("a" beginning-of-line)
("e" move-end-of-line)
("v" scroll-up-command)
("V" scroll-down-command)
("l" recenter-top-bottom)
("<" beginning-of-buffer)
(">" end-of-buffer)
;; hideshow
("t" hs-toggle-hiding)
("s" hs-show-block)
("h" hs-hide-block)
("S" hs-show-all)
("H" hs-hide-all)
("q" nil))
(global-set-key (kbd "C-c n") 'hydra-look-over/body)
把代码折叠也加进去,看代码更方便。
没有啊。我是不是比较 异类? 我是既没有和Caps Lock 交换, 也不用掌压就可以无压力 按到左Ctrl的人,(或许我手比较小? 而且多亏于emacs的使用,ctrl+alt各种快捷键 了如指掌。 在其他 需要用到ctrl 各种 默认快捷键或自己配置快捷键中 ,如鱼得水。
用着用TECO的我笑看你们按Ctrl。
感觉自己已经不需要 Evil 了
lol。看好多人都互换了。 我试着把caps lock和右边ctrl互换。 现在左边ctrl和caps lock 都是 ctrl,确实挺舒服哈:grin:
感觉 ace-jump 跳转步骤比 atom 上复杂了一步, 如果是 spc j j
直接出来选项就好了