emacs相当于ct

时间:2012-04-05 18:25:04

标签: emacs

寻找一种能够复制vim'cut til'的等效剪切和粘贴策略。我敢肯定,如果我真的知道它在vim中被称为什么,那么这是可谷歌的,但是我正在寻找的是什么:

如果我有一个像这样的文本块:

foo bar (baz)

我正处于行的开头,我想切换到第一个paren,在视觉模式下,我会这样做:

 ct (

我认为可能有一种回顾方式,我认为你可以传递更具体的正则表达式。但无论如何,寻找一些emacs等价物来做这种文本替换。谢谢。

3 个答案:

答案 0 :(得分:8)

以下是三种方式:

  1. 只需输入 M-d M-d 即可删除两个单词。这将离开最后一个空格,因此您必须自己删除它,然后如果将这两个单词粘贴回其他地方则将其添加回来。
  2. M-z zap-to-char,它会删除光标中的文本,包括您指定的字符。在这种情况下,您必须执行类似 M-2 Mz SPC 的操作,以便切换到包括第二个空格字符。
  3. 键入 C-SPC 设置标记,然后使用 Cs 进行增量搜索,键入空格跳转到第一个空格,然后 Cs < / kbd>向前搜索下一个空格, RET 终止搜索,最后 Cw 终止你选择的文本。
  4. 我个人通常会选择#1。

答案 1 :(得分:5)

asaylor说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

BTW不要忘记它能够以负前缀

后退

答案 2 :(得分:3)

在emacs中听起来像zap-to-char,默认绑定到 M-z 。请注意,zap-to-char会将所有字符剪切为,包括您选择的字符。