emacs 里有类似于vim文本对象daw/diw等等操作的包吗

好想换掉evil

或者说有什么函数可以根据inner和whole返回position

这个没看太懂?

试下 xah-fly-keys ?

我也是从evil换了的 xah-fly-keys 使用总结

expand region貌似没有inside-word这样的东西啊。

er/mark-word不是?

额,那么aw(即outer)这样的呢

整个例子吧,有点久没有用evil了

比如我有这样一个字符串 It's ju|st a test.

|就是光标

用mark-word可以实现这样选中:It's [just] a test.,删除的话just周围两个空格会被保留。([]表示选中)

如果支持outer的话应该要带上前面一个空格:It's[ just] a test.,这样删除会更方便。

(主要是不习惯vi,我想用hydra自己搞一套键位,但是希望能够继承evil中text-object的理念)

这个意思不太明白。对evil默认text objects不够满意可以试试targets.el,什么让da'不要选中'外面的一个空格这样的功能,都在里面。lisp系的话lispyville不可错过。

顺手列一下我用的evil全家桶:
evil-visualstar
evil-exchange
evil-nerd-commenter
evil-surround
evil-matchit
evil-snipe
evil-multiedit
targets.el


哦!这个好像论坛有讨论过,记不清了。不用modal editing但是用evil的思路当然可以,(evil-define-key 'insert (kbd "C-a") 'evil-delete)就行,不过一般不这么用是因为这样按起来不如expand-region之类的,完全没有normal state下的方便感。所以还是expand-region吧,感觉不用evil它是非常好的了。

带空格可以想办法在expand-region上改改,反正就两个思路,多个按键告诉emacs要不要空格/想出个规则让emacs知道你在这里会不会想要空格(dwim, do what I mean)


targets.el已经是evil-textobj-anyblock的继任者了,现在又出了个这个,是targets的继任,闹哪样 继承者们 不过这个things大概是你想要的答案了:

My prior package targets.el is a mess in large part due to being built on top of evil . Evil builds upon thingatpt as well, but not in a way that is very suitable for use as a library for implementing text objects. For this reason, I decided to rewrite targets using thingatpt only.

看起来不错,明天试试看;感觉还不是很习惯vi的一套…

好像还有个

还有一个 easy-kill:

这个包也是在thingatpt上做的,不过没有这个多选一个空格的功能。