如果不是哪一天突然想把这个 port 到其它的编辑器了,就是算正式的扎根在 Emacs 了。
重了重构代码外,还完成了第一版正式的文档,中文和英文的。
还更新了一下 Logo, 之前总有人说 Meow 的 Logo 有种摩托罗拉的感觉,很烦。
添加了文档中对于不同键盘布局的示例,包括 Qwerty, Dvorak 和 DVP 布局。
添加了 cheatsheet 功能,会展示使用者实际绑定的按键。如图下所示:
添加了 KEYPAD 下显示 keymap 的功能。
利用 Kmacro 的多行编辑,终于开心的放弃了 multiple-cursors 和 iedit.
行选后激活,结束时应用到多行
搜索并应用
31 个赞
zw963
3
绝对的造轮子典范!
把 Emacs 的编辑的哲学,从里子到面子全部重新实现了一遍,我考虑也用 meow 整一套自己的快捷键方案,彻底释放双手, 不过就是得规划规划。
3 个赞
Weiss
5
我现在的思路和狗哥有点像,不过我在基础模式下去掉了基本移动,四个方向键全是选词。在此基础上增加了个选择模式,执行类似于你的 meow-append
, meow-line
, meow-reverse
等命令时,就会进入这个模式,这个模式专注于选择,所以有基础移动也有按词、行移动,只要 mark 消失或执行了其他命令,这个模式就会自动退出,而在这模式下执行的命令也会尊重选中的内容(比如 isearch 等),与此相对,普通模式下即使有 mark,也会在执行命令前取消 mark (复制粘贴等除外)。
另外关于 Keypad 模式,当时和你聊完后,我就把 c
和 x
在无 mark 的情况下绑上了 C-c
和 C-x
,但后来发现我这些键用的实在太少,就把 C-c C-c
, C-c C-k
,C-c C-e
等常用命令单独绑到了 leader key 上了,发现也基本够用了。
MOTION
模式赞的,我现在是进入这类 mode 直接用默认,可以学习你的用 SPC SPC 做普通的 SPC。
感觉好棒!
evil模式其实我自己主要用它额外带来的模式和leader-key, 其他的功能用的很少, 感觉可以用meow来替换试一下!
但有个问题, 比如像是在magit的buffer中, "P"用来引起push, 那么为了能用小写替代, 这时候就只有把这个指令重新映射了?
mezi
8
狗哥是真的勤奋和高效啊。半天就更新了文档。 赞。
用了一段时间meow后的感触。
Meow应该是目前最好最科学的Emacs编辑交互插件
对比
在用了 Evil,xah-fly-keys,emcas原生按键方案后。有以下体会。
免责声明
是个人体验的感受,如若说的不准确,或者有偏差,欢迎理性纠正。
只说问题,各自的优点应该都有体会。
- Emacs 原生:直接的问题就是有些按键非常难按,总容易导致RSI问题。
- Evil 略显沉重,特别是在window上,有卡顿的感觉。案件逻辑组合好多,快速编辑时,
有时感觉手指跟不上。
- xah-fly-keys 灵活性不够,可扩展性不强。
理念
优点
- 小拇指RSI 的问题,meow是模式编辑,设定好自己合理的按键绑定,不会频繁劳累小拇指了。
- Keypad mode 可以让Emacs或者其他插件默认的按键,舒畅使用,无需太多痛苦重新绑定。
- 提供基础的命令,根据自己的按键偏好和设计逻辑,绑定一套属于自己的按键方案。
如果你愿意,可以绑定和Evil类似的按键方案
- inner-of-thing bound-of-thing 和Evil 的objet 差不多。感觉更科学,先选选择 再执行。
而Evil 是先指令再选择,少了直接所见确认的过程,要配合插件才高亮闪下选择的object。
- 我认为很强的一个功能 就是按键 fallback 功能,这样一个键绑定,如果本身的命令条件不成立,可以fallback到一个定义的命令。这样特别是fallback到 Keypad mode, 直接让默认按键少按两个键。 比如将c 键fallback后, C-c C-o 我直接 按 c o 就行了。舒爽!!!
- motion mode 可以让你在特殊模式下直接用原生的Emacs 按键。 比如 Dired.
- selection expand 从没有这么舒爽,理解他,用他,然后你会爱上他的。
- 选择 reverse 配合其他命令,也很不错。
- native-argument 配合命令可以改变命令行为。
还有其他功能值得你去探索,用它,感受它,改善它。打造属于自己的Emacs交互体验。
十分推荐。
配置建议
-
(delete-selection-mode -1)
关闭 delete-selection-mode.
最后
感谢作者狗(够?)好看,狗哥
9 个赞
之前可能理解错了,我觉得没有必要把大写 P 换到小写 P。
----------原回答----------
Magit 用大写 P 做 push, 小写 p 原本是移动。如果是 n/p 移动的话不用动,如果你要用 j/k 移动的话,那么把原本的 j 就换到 SPC j
,像例子中那样。
在 Meow 里面这个东西是全局换,也就是整个 MOTION 模式下都做替换,不区分具体在哪个 special mode。
那NORMAL
模式还有吗,如果在选择模式的话,会有一套独立的按键吗?
得把最近写的东西补点文档,还得赶赶工作的事,最近工作比较忙。然后就可以继续了。
没看懂keypad的说明.
"C-s"要怎么在keypad中激活?
C-c M-n n SPC c c m n SPC n 或 SPC c c m n n (无歧义时)
这个例子也没太看懂, 没什么需要按两个c?
不好意思,我应该打错了,不需要两个 c。
默认只会在SPC c, SPC x, SPC h时激活 KEYPAD, KEYPAD 是为了执行一个命令,不是持续在 KEYPAD 里面执行各种命令。
激活 keypad 的命令叫 meow-keypad-start ,任何键绑了这个都可以激活。一般都是绑在 leader keymap 里面。
比如我想用SPC s来激活绑定在C-s上的swiper, 应该怎么定义?
对于数量少的,优先级高的命令,使用 Leader。
(meow-leader-define-key
'("s" . swiper)
'("d" . dired)
'("f" . find-file))
对于好用的模式编辑,Leader 还是必要的,但是太重度的 Leader 是个维护上的负担。
引入KEYPAD 就是为了让各种插件和 Emacs 自带快捷键可以直接用。Leader 中的 x, c, h 默认就是 meow-keypad-start
.
在 meow-keymap.el 里面有每个 keymap 的默认值,Meow 默认的按键绑定非常精简,所以应该算的上一目了然了。
还有一个问题, 如果我定义了一组以C-p开始的keybinding, 要怎么设置, 才能在按Spc p时可以进入keypad模式?
我感觉C-p C-f C-f这种设定方式在meow中比用leader-key设置"pff"要好很多.
是的,像这样序列的按键就是用 keypad 要好一些。
(meow-leader-define-key
'("p" . meow-keypad-start))
不过似乎没有哪个插件是以 C-p 开始的?Meow 默认绑定好的 h, x, c 都是 Emacs 自己的,还有 m(M-) 和 g(C-M-) 是因为 C-m 是回车,C-g 是 keyboard quit,正好有这么两个位置。
哈哈, 我是想绑find-file-in-project的键位.
顺便把我evil-leader的绑键想个办法迁移过来.