我想在Evil中创建一个新的文本对象.例如,文本对象iw将仅选择包含连字符的字符串子集.我希望新的文本对象匹配任何非空格字符的单词.到目前为止我得到的是:
(evil-define-text-object evil-inner-space (count &optional beg end type)
"Select inner space."
:extend-selection nil
(evil-regexp-range count beg end type "[ \n]" " " t))
(define-key evil-inner-text-objects-map " " 'evil-inner-space)
Run Code Online (Sandbox Code Playgroud)
此代码无法正确匹配行尾的单词.由于\n,它适用于行开头的单词.
我尝试了很多不起作用的东西.对我来说麻烦的是,当某些东西不起作用时,我不知道它是由于错误的正则表达式还是由于邪恶正则表达式范围的限制.例如,使用\ s-报告错误,这似乎是Evil中的限制.