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

在 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是不是要绑定到一个热键上?

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

谢谢,我觉得可能用defadvice增强已有的multiple-cursors功能,可能更好。

一直询问Do special-lispy-different for all cursors?

可以默认y吗

可以,可以在 你的配置里面加上这个。

(setq mc/cmds-to-run-for-all
          '(
            electric-newline-and-maybe-indent
            hungry-delete-backward
            spacemacs/backward-kill-word-or-region
            spacemacs/smart-move-beginning-of-line
            evil-substitute
            lispy-move-beginning-of-line
            lispy-move-end-of-line
            lispy-space
            lispy-delete-backward
            evil-exit-visual-state
            evil-backward-char
            evil-delete-char
            evil-escape-emacs-state
            evil-escape-insert-state
            mwim-beginning-of-code-or-line
            mwim-end-of-line-or-code
            evil-exit-emacs-state
            evil-previous-visual-line
            evil-next-visual-line
            evil-forward-char
            evil-insert
            evil-next-line
            evil-normal-state
            evil-previous-line
            evil-append
            evil-append-line
            forward-sentence
            kill-sentence
            org-self-insert-command
            sp-backward-delete-char
            sp-delete-char
            sp-remove-active-pair-overlay
            orgtbl-hijacker-command-109))

谢谢. 如果可以支持next到底后从头继续就更像sublime了, 不过有previous like this也还可以

子龙你好,

根据你的写的配置,每次使用s-d选中多个高亮的词语之后,如果要进行修改,必须按C-z改变编辑模式才能修改,有更好的方法吗?谢谢~

我是mac os,GNU emacs 25.2.1, spacemacs配置。

这种情况出现在使用s-d选取词语时的模式尾evil模式,如果先转换为insert模式就没问题了。

按大写s就可以进入编辑模式