Spacemacs 有类似 Sublime 那 Ctrl + D 的功能吗?

新人提问~ 并不是指 SPC s e 那样选择全部的功能,不知道有没有?

Sublime Ctrl + D 是什么功能?

选中下一个匹配项。

譬如有这样的文本: aaa bbb aaa aaa aaa

先选中第一个 aaa,然后按 Ctrl + D,会选中第一个和第二个 aaa,再按一次 Ctrl + D,可以选中前三个 aaa

multi cursor 应该是

安装包: multiple-cursors 对应命令: mc/mark-next-like-this 然后把这个命令绑定到你喜欢的快捷键上

这个就 multiple-cursor 的功能:

我的 super 键在 mac 上面就是 command

我绑定的键是:

s-d(global-set-key (kbd "s-d") 'mc/mark-next-like-this)

C-=(bind-key* "C-=" 'er/expand-region)

2 个赞

我发现 GitHub 上面有讨论过这东西: Multiple Cursors Integration Discussion 一年过去了,讨论还没关掉

在 purecell 配置里 mc/mark-next-like-this 默认绑定了 C-+ ,这样按键应该更舒适一些.可以连续按着ctrl和=号.

在 mac 上面 command + d 应该更容易按吧。。。 而且跟 SB 编辑器保持了统一的按键。。。

:joy:

evil-multiedit真的很好,就是在spacemacs里有bug,作者似乎鸽了,山人看下有兴趣和能力修复么:

暂时没啥兴趣,我现在用 multiple cursor 也挺好用。

都说和evil不能共存我就没试,等下去看看

终端下按不出 C-+ 很捉急啊,如果 mc 能像 expand-region 那样,有个选择模式就好了,在选择模式直接按 n/p 表示 mark-next/previous-like-this,不需要每个操作都设置一个全局快捷键。快捷键多了也是负担。

可以使用 hydra:

(defhydra multiple-cursors-hydra (:hint nil)
  "
     ^Up^            ^Down^        ^Other^
----------------------------------------------
[_p_]   Next    [_n_]   Next    [_l_] Edit lines
[_P_]   Skip    [_N_]   Skip    [_a_] Mark all
[_M-p_] Unmark  [_M-n_] Unmark  [_r_] Mark by regexp
^ ^             ^ ^             [_q_] Quit
"
  ("l" mc/edit-lines :exit t)
  ("a" mc/mark-all-like-this :exit t)
  ("n" mc/mark-next-like-this)
  ("N" mc/skip-to-next-like-this)
  ("M-n" mc/unmark-next-like-this)
  ("p" mc/mark-previous-like-this)
  ("P" mc/skip-to-previous-like-this)
  ("M-p" mc/unmark-previous-like-this)
  ("r" mc/mark-all-in-region-regexp :exit t)
  ("q" nil))
1 个赞

赞!其实也早就听说过(陈斌很推崇这个作者)hydra,但是没太注意,以为跟 which-key 差不多。

子龙在 /t/spacemacs-sublime-ctrl-d/902/14 的设置部分不正常,出现跳行的现象,我改成:

  ("N"   (mc/mark-next-like-this 0))
  ("M-n" (mc/mark-next-like-this -1))
  ("p"   (mc/mark-previous-like-this 1))
  ("P"   (mc/mark-previous-like-this 0))
  ("M-p" (mc/mark-previous-like-this -1))

p 之外其他键都正常了。似乎通过 hydra 调用 mc 函数会导致其内部一些判断 region-active-p 或者光标位置的逻辑出错,这应该是 mc 的锅?

刚才查找问题的时候,发现其实 mc 已经支持像 expand-region 那样的渐进/递增式选择(竟然是同一个作者),只是按键/提示设置不太合理,自己写个 defadvice 就解决了。

我也有同样的疑问,只按了一次按键,却一下子选取好几个目标。请问按你的设置能解决吗?

我改用 mc/mark-more-like-this- extended 了,默认的设置有点奇怪,需要 advice

抄了你的这段设置,不起作用。 multiple-cursors-hydra/body是不是要绑定到一个热键上?

恩,你可以绑定一个你喜欢的快捷键。