猫态编辑:Meow

并没有,但是有专门做这个事情的插件,比如说 better-jumper.

Emacs 中很多时候的跳转是用的 xref-find-definitions, xref-pop-marker-stack.

同一个文件中,如果有选择,都可以用 meow-pop 往回取消。或是通过 meow-grab 来记录位置。

重做了 grab 和 kmacro 的部分。

一直尝试在做减法和消除 DWIM 风格的命令。前者是能用 emacs 内置的概念和功能的尽量用内置的,后者是一个命令可以有多个效果,但要始终一致而不是在不同情况下表现不同。

Grab 之前设计为 Meow 的第二选择区域,后来发现 Emacs 有自带的 secondary selection,而且这个自带的版本和 Linux x-selection 是相通的,所以就让 grab 使用 secondary selection.也去掉了和 kill-ring 首项的同步,添加了两个命令 meow-swap-grab 将 secondary selection 当前 region 互换;meow-sync-grab 用当前 region 内容覆盖第二选区。这里 grab 的选择区域是允许为空的,在 emacs 中为 secondary-selection-start,即用 Meta + 鼠标左键单击记录的位置。

KMacro 这里去掉了 meow-quick-kmacro,分解成了两个 meow-kmacro-linesmeow-kmacro-matches 分别为录制后直接应用到选择中的每一列或选择中每个匹配 (car regexp-search-ring) 的地方。这样就是一个命令做一件事了。

今天更新了下,然后按Esc能够从插入模式进入一般模式,但是Ctrl+[确不能。这是什么情况? 在终端下,zsh开启vi-modeCtrl+[是有效的

你 C-h k 看一下按 C-[ 的时候识别成了什么?我这里是可以的,因为 C-[ 就是被认为是 esc。

另外,你可以用

(define-key meow-insert-state-keymap (kbd ???) #'meow-insert-exit)

绑定到任意键回到 normal 模式。

当把所有的 26 个字母排好之后(算上大小写共有 52 个位置)里面大约 28 个命令是用来移动和选择的,差不多在一半的样子。

按理来说,完全可以左右分工,一只手做一类事。

<secape>ESC虽然都是esc,但是在GUI下,似乎被识别为两种不同的按键行为。

(define-key meow-insert-state-keymap (kbd "ESC") #'meow-insert-exit)

我之前的问题就解决了。

1 个赞

这似乎和系统有关?

添加了直接绑定时用 kbd-macro string 的功能。所以 define-key 的时候大概用这些个用法,以自己的配置举例。

(meow-leader-define-key
   ;; reverse command query
   '("^" . meow-keypad-describe-key)
   ;; cheatsheet
   '("?" . meow-cheatsheet)
   ;; high frequency keybindings
   '("e" . "C-x C-e")
   '(")" . "C-)")
   '("}" . "C-}")
   '("." . "M-.")
   '("," . "M-,")
   ;; window management
   '("w" . other-window)
   '("W" . +rotate-window)
   '("o" . delete-other-windows)
   '("s" . +split-window-dwim)
   ;; high frequency commands
   '("$" . +change-theme)
   '(";" . comment-dwim)
   '("k" . kill-this-buffer)
   '("p" . project-find-file)
   '("d" . dired)
   '("b" . switch-to-buffer)
   '("r" . deadgrep)
   '("f" . find-file)
   '("i" . imenu)
   (cons "a" +magit-keymap)
   ;; toggles
   '("t" . treemacs-select-window)
   '("L" . display-line-numbers-mode)
   '("T" . telega)
   '("R" . org-roam-mode)
   '("D" . writeroom-mode))

自从从doom切换到原生后,我的小手指又开始疼了。后来试了下meow, 目前开始渐入佳境。不过奇怪的是网上的教程我始终测试不成功。今天又自己查看了下文档,又查看了我的query模板,终于发现了问题,例子中的按键和Dvrak 按键模板匹配。 主要自己懒得自己研读文档,导致用得磕磕绊绊。 多谢狗哥。

没有固定的按键的话,写文档包括看文档都有些麻烦。。

想请教一下有没有办法结合Evil + Meow keypad? 我希望主要编辑模式还是Evil,然后用keypad来输入快捷键。

感觉似乎不可以,目前 keypad 退出时会尝试激活之前的 normal 或 motion 模式。

好吧。感谢回复

可以试试evil + god-mode + evil-god-state。

1 个赞

怎么设置一些Special Mode默认为Normal模式,替代Motion模式?

加了个hook,搞定了。

就小拇指的疲劳问题而言,我认为 key-chord 的思路是相对更好的方案,至于在高频输入的状态下触发 key-chord ,我的解决方案是将 kj 按键作为开关,尽可能的抛弃键盘两侧需要用小拇指触发的按键。

有个变量叫 meow-state-mode-list 控制默认的模式。如果觉得有模式适合 normal,可以说一下,我加到默认值里面。因为我没用过的 mode 太多了。

:grinning:

GitHub - beancount/beancount-mode: Emacs major-mode to work with Beancount ledger files 是这个。

beancount mode

1 个赞

为什么开启了meow mode后,选中一块内容,再按 backspace 只能删除一字符?

按s, meow-kill