text object 和 motion其实还不太一样,你说的通常是motion,一般指的是对从当前光标的位置到motion结束的光标之间的文本进行操作。text object指的是对当前光标所在的区域进行操作,比如当前光标所处的一对括号之内啥的。通常以a为前缀表示包含端点,i为前缀表示不包含端点。基于treesitter可以对程序的syntax作为text object,比如af表示一整段函数,ac表示一整段类之类的操作。
一样的东西,这里 knu/easy-kill-extras.el: Extra functions for easy-kill/easy-mark. (github.com) 还有补充:
(add-to-list 'easy-kill-alist '(?W WORD " ") t)
(add-to-list 'easy-kill-alist '(?\' squoted-string "") t)
(add-to-list 'easy-kill-alist '(?\" dquoted-string "") t)
(add-to-list 'easy-kill-alist '(?\` bquoted-string "") t)
(add-to-list 'easy-kill-alist '(?q quoted-string "") t)
(add-to-list 'easy-kill-alist '(?Q quoted-string-universal "") t)
(add-to-list 'easy-kill-alist '(?\) parentheses-pair-content "\n") t)
(add-to-list 'easy-kill-alist '(?\( parentheses-pair "\n") t)
(add-to-list 'easy-kill-alist '(?\] brackets-pair-content "\n") t)
(add-to-list 'easy-kill-alist '(?\[ brackets-pair "\n") t)
(add-to-list 'easy-kill-alist '(?} curlies-pair-content "\n") t)
(add-to-list 'easy-kill-alist '(?{ curlies-pair "\n") t)
(add-to-list 'easy-kill-alist '(?> angles-pair-content "\n") t)
(add-to-list 'easy-kill-alist '(?< angles-pair "\n") t)
发个easy-kill/easy-mark的使用示例,这里面仅用了easy-mark,easy-kill其实也就mark后直接复制,效果是一样的只不过是直接复制了。 先调用easy-mark,我这里调用时由于默认设置成thing at point的word了,所以是直接选中了当前的word,然后你可以继续按gif里绑定的那些额外的键,如f就是vim里的forward char(我这里没有演示),如果按了上面绑定外的char就退出easy mark/easy kill模式了。
从最开始就一直用emacs本身的快捷键。即便现在用spacemacs,也没用vim模式。从来没觉着不方便啊。
不过ctrl键改到了大小写位置。
感谢陈老师
其实我最想事,还是没有配置的emacs的使用,当然如果我需要配置,为什么不装一堆插件,或者直接用doom emacs呢
其实我的配置内也有一些关于编辑文本的插件,但我感觉还是不太行,因为我本身长时间用evil,最近发现了为什么会乱按jkjkjkkj,因为在模式切换的时候,可能我的思路已经被打断了
然后,现在就是用的是原生的键位。最大的影响还是C-SPC被win占用了,后面打算换到Linux或者BSD。
所以我还是打算用原生的
更好的是想晓得一些善于原生键位的操作方法,就像Vim的组合键一样。
这个可以设置的,把系统默认的切换输入法 C-space 换成别的就好了。加上 AHK 模拟按键,Emacs 中也可以用 shift 或者 大小写按键切换输入法。
我个人是统一用 Capslock 来切输入法,保证在 macOS ,Windows 和 Linux 下也是一样的体验。因为用 Shift 切换容易误按,有时按带 Shift 的组合按键时,中途可能想取消。
win下用capslock切换输入法得用ahk吧?shift切换确实比较烦人。
是的, 我在Windows 系统下基本所有地方都用 Emacs 按键 + Capslock 切换输入法,长按 Capslock 仍然是切换大小写。
好的,感谢,刚刚改了,现在没有影响了,太感谢了。
我是用
(setq-default mac-command-modifier 'control)
(setq-default mac-option-modifier 'meta)
把左边的 cmd 设置为 ctrl,然后用左手的大拇指来按这个键
我只用ahk换了 大小写和ctrl。
之前把公司的windows 用注册表换的这两个键盘,不知道还回去之后给其他人用,会不会懵掉。哈哈。
只是映射按键的话,安装一个 powertoys 就好了。
我最开始也是改注册表,这种方式不好,时间久了自己都忘记在哪里改的,而且要重启才能生效,别人用肯定懵了,直接重装系统 。
当时也试了一些 powertoys,不过没看明白。最好办法还是autohot key。