作为VIm/Emacs新手,我平时都是h/j/k/l C-n/p/f/b 移动光标,效率感觉不高。
之前看一些包作者的演示视频里很少看到连续移动的光标,看起来都是跳来跳去的(还不是M-f/b那种,是跳很远一下跳到目的地)。
你们平时用什么命令在文本里跳来跳去啊?
作为VIm/Emacs新手,我平时都是h/j/k/l C-n/p/f/b 移动光标,效率感觉不高。
之前看一些包作者的演示视频里很少看到连续移动的光标,看起来都是跳来跳去的(还不是M-f/b那种,是跳很远一下跳到目的地)。
你们平时用什么命令在文本里跳来跳去啊?
我用触控板啊。
看了下自己的按键频率,用得最多的还是h/j/k/l,感觉需要优化一下了。
不得不说在英文里,光标跳转有天然的优势,而vim比emacs更加擅长移动光标。
在emacs里倒是有一些光标跳转的方法,说不上哪个最常用,想用哪个就用哪个,觉得用的烦了就换一个呗。
参考:
avy
能在视野内的英文字母、中文汉字之间跳转光标。
paredit https://www.emacswiki.org/emacs/ParEdit 能在lisp类型的代码块内部、外部跳转光标。
内置的标记功能
能在历史标记之间跳转光标。 这个可能是所说的“跳很远一下跳到目的地”。
内置的查找功能
能在全文之间跳转光标。
内置的跳转功能
,如你所说,能在窗口与窗口、页与页、段与段、句与句、词与词、字与字之间跳转光标。
Evil的normal模式下面:
跟到开头跟结尾: gg/G
然后向前和向后翻一页: C-d/C-u
{d}w, f, t用来在单行之间跳跃
配合 swiper 基本上可以解决大部分移动光标的问题。
对于混用emacs 和evil 的我来说:
M-g M-g
emacs 经典
goto-char
evil
smartparens (以 sexp 为单位移动)
avy (跨行、窗口移动)
老奶奶都不服,就服你
看了一圈,发现大家用的也都是那些常用的移动命令,可能还是要根据情景具体分析。 @twlz0ne 总结的很棒,我觉得大概是
从操作速度最快速到最慢,但同时准确度/距离递减。
我对第三项了解不多,除了smart-paren以外有什么好的工具/命令吗?
啊!这难道就是sublime text和atom等不给默认的光标移动绑快捷键的原因?!我每次用那些,很痛苦的一点就是得自己绑一个,但同时总破坏一些原生键,比较难受。
goto-char
这玩意儿真有人用么,这个。。。。唉,给个使用心得让我理解下它的使用哲学
(不是avy
的,这个我不懂,是helm党,最近在linux本子上尝试aboabo全家桶中,才上手ivy
三件套)
如果开发环境和 Emacs 集成的好的话,是用不到 goto-char 的,直接点 link 跳转。
常见的翻页就不说了 ,
我最常用的是自定义的e 和v , 按symbol 前进后退,
;; e ,r 移动
(define-key evil-normal-state-map "e" 'evil-forward-symbol-begin)
(define-key evil-normal-state-map "r" 'evil-forward-symbol-end)
;; (define-key evil-normal-state-map "E" 'evil-forward-symbol-end)
(define-key evil-normal-state-map "v" 'evil-backward-symbol-begin)
;; (define-key evil-normal-state-map ";" 'evil-repeat-find-char-or-evil-backward-symbol-begin)
(define-key evil-normal-state-map "R" 'evil-backward-symbol-end)
(define-key evil-visual-state-map "e" 'evil-forward-symbol-begin)
(define-key evil-visual-state-map "r" 'evil-forward-symbol-end)
;; (define-key evil-visual-state-map "E" 'evil-forward-symbol-end)
(define-key evil-visual-state-map "v" 'evil-backward-symbol-begin)
(define-key evil-visual-state-map "R" 'evil-backward-symbol-end)
;; de dr
(define-key evil-motion-state-map "e" 'evil-forward-symbol-end)
(define-key evil-motion-state-map "r" 'evil-backward-symbol-begin)
;; dae die
(define-key evil-outer-text-objects-map "e" 'evil-a-symbol)
(define-key evil-inner-text-objects-map "e" 'evil-inner-symbol)
;;;###autoload
(evil-define-motion evil-forward-symbol-begin(count)
"Move to the end of the COUNT-th next symbol."
;; :jump t
:type exclusive
(evil-signal-at-bob-or-eob count)
(evil-forward-beginning 'evil-symbol count)
(let ((sym (thing-at-point 'evil-symbol)))
(while (and sym (not (string-match "\\<" sym)))
(evil-forward-beginning 'evil-symbol 1)
(setq sym (thing-at-point 'evil-symbol))
)
)
)
;;;###autoload
(evil-define-motion evil-backward-symbol-begin(count)
"Move to the end of the COUNT-th next symbol."
;; :jump t
:type exclusive
;; (evil-signal-at-bob-or-eob count)
;; (forward-evil-symbol count)
(evil-backward-beginning 'evil-symbol count)
(let ((sym (thing-at-point 'evil-symbol)))
(while (and sym (not (string-match "\\<" sym)))
(evil-backward-beginning 'evil-symbol 1)
(setq sym (thing-at-point 'evil-symbol)))))
;;;###autoload
(evil-define-motion evil-forward-symbol-end(count)
"Move to the end of the COUNT-th next symbol."
;; :jump t
:type exclusive
(evil-signal-at-bob-or-eob count)
(forward-evil-symbol count)
;; (let ((sym (thing-at-point 'evil-symbol)))
;; (while (and sym (not (string-match "^\\<" sym)))
;; (evil-forward-end 'evil-symbol 1)
;; (setq sym (thing-at-point 'evil-symbol))
;; )
;; )
)
;;;###autoload
(evil-define-motion evil-backward-symbol-end(count)
"Move to the end of the COUNT-th next symbol."
;; :jump t
:type exclusive
(evil-signal-at-bob-or-eob count)
(evil-backward-end 'symbol count)
(let ((sym (thing-at-point 'evil-symbol)))
(while (and sym (not (string-match "\\<" sym)))
(evil-backward-end 'evil-symbol 1)
(setq sym (thing-at-point 'evil-symbol))
)
)
)
指點杆(逃…
这么搞的动机是啥?换句话说默认的web哪些痛点?
我以前用过小红点,但是用过mac的触控板就回不去了
真有,我把这玩意儿绑到了 f ,近的用 hjklweb,远的用这个
說笑的, 指點杆現在只有在non-chrome/chromium, non-vim/evil環境下用, 個人還是比較喜歡gui的, 所以文件管理器之類的用的比較多. 不過用vim/emacs前的確用指點杆編輯比較多.
另一點窩現在指點杆用的比較少的原因是linux下沒有針對hp elitebook指點杆的驅動, 導致移動阻力大很多, tp就有. 不過幸虧窩經常也有針對手指/小臂的鍛鍊(單手懸吊之類)