寻找一种等效的剪切和粘贴策略来复制 vim 的“cut til”。如果我真的知道它在 vim 中的名称,我敢肯定这是可以用谷歌搜索的,但这是我正在寻找的内容:
如果我有这样的文本块:
foo bar (baz)
我在行的开头,我想剪到第一个括号,在视觉模式下,我会这样做:
ct (
我认为可能有一种方法可以回顾,我认为您可以传递更具体的正则表达式。但无论如何,寻找一些 emacs 等价物来进行这种文本替换。谢谢。
寻找一种等效的剪切和粘贴策略来复制 vim 的“cut til”。如果我真的知道它在 vim 中的名称,我敢肯定这是可以用谷歌搜索的,但这是我正在寻找的内容:
如果我有这样的文本块:
foo bar (baz)
我在行的开头,我想剪到第一个括号,在视觉模式下,我会这样做:
ct (
我认为可能有一种方法可以回顾,我认为您可以传递更具体的正则表达式。但无论如何,寻找一些 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
顺便说一句,不要忘记它有能力用负前缀向后退
这听起来像zap-to-char
在 emacs 中,M-z默认绑定。请注意,这zap-to-char
将剪切所有字符,包括您选择的字符。