我也一直存在这个问题。win10 emacs-master.
昨天安装的,melpa的最新版本
(defun meow-right ()
"Move to right.
Will cancel all other selection, except char selection. "
(interactive)
(when (and (region-active-p)
(not (equal '(expand . char) (meow--selection-type))))
(meow-cancel-selection))
(meow--execute-kbd-macro meow--kbd-forward-char))
这个是实现,其实很简单,右移的行为就是这个表达式的效果。
(meow--execute-kbd-macro meow--kbd-forward-char)
这里的逻辑的就是找出 meow--kbd-forward-char
上面绑定的命令,然后调用那个命令。这里的 meow--kbd-forward-char
的默认值是 "C-f"
.
我能提供的信息就这么多,可能要看你们那里有没有更多的信息了。
狗哥,应该怎么提供更多信息 ?
我在 arch 上也试了下也还是有这个现象。
我试过就加载一个 meow 配置,其他配置都不加载,还是一样。
但直接 C-f
确实是可以的。
不好意思狗哥,原来我绑定的是 meow-tail
meow-head
, 是这两个不行,meow-right
, meow-left
是可以的
meow-tail
和 meow-head
我打算弃用掉。因为没有什么特别的意义。
这不能啊, minor mode 可以有多个.
具体场景是什么? 我可以看看有啥别的办法.
参照这里,在某个 hook 上切.如果没有 hook 就用 advice.
okay, thx
(defun +git-timemachine-hook-function ()
(when (bound-and-true-p meow-mode)
(meow--switch-state 'motion)))
(with-eval-after-load "git-timemachine"
(add-hook 'git-timemachine-mode-hook '+git-timemachine-hook-function))
优化 back/next-word/symbol 的逻辑,当前会自动跳过括号和符号(punctuation syntax)
从 foo
的后面,使用 meow-next-word
。 这是之前的行为
现在的行为
优化了 meow-kmacro-lines
。之前的实现了使用 apply-macro-to-lines
,在调用的 kmacro 中有插入换行时会造成死循环。
重新实现后解决了这个问题。
其实应该多搞点这种场景化演示
狗哥是否能集成增加一个行复制功能。Emacs 默认手动操作比较繁琐。
当前使用x行选择, y 复制选区, p 黏贴选取也有些啰嗦。
你建议的是什么样子呢?
meow 不会在 insert 下绑按键,覆盖按键的.
至于在 normal 下一键复制,应该也不会提供这样的命令,如果 xy 不好按这应该是个按键位置的问题,我觉得相近的两个键就可以很方便的操作.
这个直接xy什么的我觉得效率也不低,不过我没找到批量粘贴的快捷方法,现在只能录个宏然后Ctrl-u执行宏几十次,替代vim中的"100p”。不过我认为这个不是大问题,因为场景不多。比较棘手的问题是行的宏修改问题,这个场景比较常用,比如用swiper之后批量修改,随手举个例子,假设下面的是需要修改的文本(可能来源于搜索结果或者是正常文本):
asdsad () asd:asd
asd asd as:dsad
doah hjijds:asd
现在想在所有的":“号后面加上"print(” 光标一般正好在":“附近,如果用现在的meow的逻辑,必须首先移动到行首,然后开始录制宏,再返回":“处进行修改,然后停止录制,再"x"选定行后执行"X”。 而在vim里,直接Ctrl-v 然后大写的i,修改后esc就行了
meow的行编辑宏不能够在":“处开始录制,必须在行首开始录制。因为每次执行"X”,它默认从每行的执行起点是行首,而不是录制宏的光标位置.这样流程:从要修改处 -> 回到行首- > 开始录制 -> 移动回要修改的地方 -> 进行编辑 -> 结束录制 -> “X” 的操作。
我也想解决下这个问题。如果是从任意一列开始,那么重放的时候是不是也应该从对应的列重放?
我觉得用户执行"X"来进行行的宏修改,应该是期望每行都执行相同的修改