寻找一种能够复制vim'cut til'的等效剪切和粘贴策略.如果我真的知道它在vim中被称为什么,我确信这是可谷歌的,但是我正在寻找的是:
如果我有一个像这样的文本块:
foo bar (baz)
Run Code Online (Sandbox Code Playgroud)
而且我在线的开头,我想切换到第一个paren,在视觉模式中,我会这样做:
ct (
Run Code Online (Sandbox Code Playgroud)
我认为可能有一种回顾方式,我认为你可以传递更具体的正则表达式.但无论如何,寻找一些emacs等价物来做这种文本替换.谢谢.
这有三种方式:
zap-to-char
,它删除光标中的文本,包括您指定的字符.在这种情况下,你必须做一些事情,比如M-2M-zSPC第二个空格字符.就个人而言,我通常会选择#1.
正如ataylor所说zap-to-char
的那样,对zap-to-char的以下修改正是你想要的
(defun zap-up-to-char (arg char)
"Like standard zap-to-char, but stops just before the given character."
(interactive "p\ncZap up to char: ")
(kill-region (point)
(progn
(search-forward (char-to-string char) nil nil arg)
(forward-char (if (>= arg 0) -1 1))
(point))))
(define-key global-map [(meta ?z)] 'zap-up-to-char) ; Rebind M-z to our version
Run Code Online (Sandbox Code Playgroud)
BTW不要忘记它能够以负前缀后退