你们平时移动光标最常用的命令是什么?

  • smart-forward.el smart-forward smart-backward
  • evil-snipe.el evil-snipe-s evil-snipe-S
  • :n ";" (λ! (avy-goto-char-timer) (+my/find-definitions))
  • x;:n ";" (λ! (avy-goto-char-timer) (+my/find-references))

分别定义 Normal、Insert、Command-line 下按字、词、行移动的快捷键。

实在不行,还有触摸板。

b w e 跳得太慢,

比如以这个为例(光标初始在func的f上)

func (this *NotesInfo) SetOrigin(originInfo *NotesInfo) {

evil-forward-symbol-begin 依次会跳到 this[t],NoteInfo[N],SetOrigin[S],originInfo[o],NotesInfo[N]上

而用默认的w 会先跳到第一个括号"(",然后this[t],然后星号,然后N,然后 右括号 ,依次会经过对我来说没太大意义的()*{等字符

当然我并没改改动默认的w b的按键, 更小级别的跳动,我还是会用的

avy 对于中文的支持太差了。

怀念 vim 的 easymotion

触控板……

我的效率还没高到需要一直趴在键盘上的地步

avy党比较多嘛,我都是相对行号然后12j这样跳的,试过avy,感觉如果给avy的search string惟一的话还不错,否则之后再辨别a/s/d/f选个marker太花时间,不如相对行号(之后f*行内移动)。

不在屏幕内的跳转是这样:


evil默认normal-state ^ $ %太难按了,我改成了C-a C-e M

有ace-pinyin可以用,感觉还好,跟英文没什么区别。

可它是从buffer的第一个字符开始算的啊,不是从当前位置,你自己从新写了个函数?

avy能一步到位但是有选择的overhead,距离近的话overhead就有点不值。

你是说 avy-goto 激活之后的 asdf 编号?

我怎么感觉是从当前屏幕的首行开始的 :thinking:

我指原生的goto-char,它的参数是从当前buffer的第一个字符算起的。你能否C-h kC-h f看一下你用的是哪个包定义的类似goto-char的命令?谢谢啦

M-g c runs the command goto-char (found in global-map), which is an
interactive built-in function in ‘C source code’.

It is bound to M-g c, <menu-bar> <edit> <goto> <go-to-pos>.

(goto-char POSITION)

Set point to POSITION, a number or marker.
Beginning of buffer is position (point-min), end is (point-max).

The return value is POSITION.

我用的那个函数名叫 evil-avy-goto-char,在 spacemacs 里用的。

我平时不写代码,记个笔记资料啥的文档一般也短,所以需求比较简单,能跳转就行。主要是看这个也支持中文,配置起来又不麻烦,中文依赖的是 ace-pinyin ,常用字范围内够用了。

谢谢!我用helm,刚开始在另一台机子上尝试Ivy系列,还没用过avy,所以没理解。谢谢啦

不客气,都是来学习的,多交流 :smile:

大家都不习惯用C-vM-v吗?

isearch(regex) , 自带移动命令 , 还有 symbol-overlay

我是因为一次翻半页看起来比较费劲,所以不经常用,而且翻完页还需要再调整光标位置。

我用,并配合M-r将光标移到大致的位置;不然快速翻页也没别的什么了,除非是基于搜索,我用helm-swoop。

avy 跳转我是这样用的:先盯住目标点,然后按下快捷键,这时候 marker 正好在视线焦点中,并不需要满屏幕找。

当出现多个字符的 marcker (比如 ja/jk/jl … 这样两个或者更多字符) 并且粘连在一起的时候,会比较难辨别,不过这种情况是比较少。

2 个赞

我一般都用timer,普通的选项太多不好按