4

vimの「カットティル」を複製する同等のカットアンドペースト戦略を探しています。vimでそれが何と呼ばれているかを実際に知っていれば、これはググることができると確信していますが、私が探しているものは次のとおりです。

次のようなテキストブロックがある場合:

foo bar (baz)

そして、私は行の先頭にいて、最初の括弧までカットしたかったのですが、ビジュアルモードでは次のようにしました:

 ct (

おそらく振り返る方法があると思います。より具体的な正規表現を渡すことができると思います。とにかく、この種のテキスト置換を行うのと同等の emacs を探しています。ありがとう。

4

3 に答える 3

8

次の 3 つの方法があります。

  1. 入力するだけM-dM-dで、2 つの単語を削除できます。これにより最後のスペースが残るため、自分で削除してから、2 つの単語を別の場所に貼り付ける場合は追加し直す必要があります。
  2. M-z指定した文字までのテキストをzap-to-charカーソルから削除します。この場合M-2M-zSPC、2 番目のスペース文字までザッピングするなどの操作を行う必要があります。
  3. 入力C-SPCしてマークを設定し、 でインクリメンタル検索に入りC-s、スペースを入力して最初のスペースにジャンプし、C-s次のスペースを前方に検索してRET検索を終了し、最後C-wに選択したテキストを削除します。

個人的には基本的に1位です。

于 2012-04-05T18:42:56.073 に答える
5

ataylorzap-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

ところで、負のプレフィックスで逆方向に移動できることを忘れないでください

于 2012-04-05T18:46:14.043 に答える
3

zap-to-charこれは、デフォルトでバインドされている emacs のように聞こえM-zます。zap-to-char選択した文字までのすべての文字がカットされることに注意してください

于 2012-04-05T18:42:07.990 に答える