meow 和 smartparens 的小经验

1、meow 和 smartparens 的配合非常舒服,meow-mark-word 后 进入 KEYPAD mode 后,输入 "([{ 这样的符号可以有给选定的内容包裹的效果;可以说比sp-wrap-round的效果还好,毕竟smartparens不直接提供sp-wrap-single-quotes。

2、但是假如执行了meow-grab,再使用meow-mark-word后,则没办法使用类似的效果,仅仅能进入insert模式,然后删除修改。

1 个赞

keypad后是如何输入"(这些的,印象中在keypad好像不能输文字啊

不用 smartparens,自带的 insert-pair 即可,在 normal 下 mark 之后 ( 也可以 wrap 起来,不用进 keypad

可能是因为 meow-keypad-self-insert-undefined ,但是我自己没有测试过哈,你可以自己测试。

没这么使用过,不太了解,M-( 执行 insert-parentheses,这样使用也可以,不过 像是 ’ " { [ 用的时候就不是很直观了,我自己的这个小经验用的时候直观些。 另外:

  (defmacro def-pairs (pairs)
    `(progn
       ,@(cl-loop for (key . val) in pairs
                  collect
                  `(defun ,(read (concat
                                  "wrap-with-"
                                  (prin1-to-string key)
                                  "s"))
                       (&optional arg)
                     (interactive "p")
                     (sp-wrap-with-pair ,val)))))
  (def-pairs ((paren . "(")
              (bracket . "[")
              (brace . "{")
              (single-quote . "'")
              (double-quote . "\"")
              (back-quote . "`")))

这个方式是我看其他人用了扩展smartparens 的wrap ,可以单独设置快捷键。

我是这样的

(meow-normal-define-key
   ;; wrap && unwrap
   '("\"" . insert-pair)
   '("[" . insert-pair)
   '("{" . insert-pair)
   '("(" . insert-pair)
   '("]" . delete-pair) ;; NOTE maybe custom `delete-pair-blink-delay'
   )

不改了,按键习惯了,先这样吧,我省出的那点快捷键干点其他的,哈哈哈哈。