emacs相当于ct

Jed*_*der 4 emacs

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

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

foo bar (baz)
Run Code Online (Sandbox Code Playgroud)

而且我在线的开头,我想切换到第一个paren,在视觉模式中,我会这样做:

 ct (
Run Code Online (Sandbox Code Playgroud)

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

Sea*_*ean 8

这有三种方式:

  1. 只需键入M-dM-d即可删除两个单词.这将离开最后一个空格,因此您必须自己删除它,然后如果将两个单词粘贴回其他地方则将其添加回来.
  2. M-zzap-to-char,它删除光标中的文本,包括您指定的字符.在这种情况下,你必须做一些事情,比如M-2M-zSPC第二个空格字符.
  3. 键入C-SPC以设置标记,然后进入增量搜索C-s,键入空格以跳转到第一个空格,然后C-s向前搜索下一个空格,RET终止搜索,最后C-w删除所选文本.

就个人而言,我通常会选择#1.


kin*_*ero 5

正如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不要忘记它能够以负前缀后退

  • 最近的Emacsen在`misc.el`中包含了`zap-up-to-char`. (2认同)