6

次を含む出力があるとしましょう。

{「第三次世界大戦がどのような武器で戦われるかはわかりませんが、第四次世界大戦は棒と石で戦われるでしょう。」、「幸せな家族は、それ以前の天国です。」、「天国には憎しみに対する愛のような怒りはありません。振り向いた、軽蔑された女のような激怒も地獄ではない。」}

そして、私のカーソルは文字列の1つの中にあります(「戦い」という言葉の後):

「第三次世界大戦がどの武器で戦われるかはわかりません|しかし、第四次世界大戦は棒と石で戦われます。」

そして、その文字列全体をコピーしたいと思います。一般的には、文字列の先頭に移動し、1 文字を " に戻し、"CM-SPC" を押して文字列を選択します。

しかし、私はそれが面倒だと思います。文字列内の文字列を直接選択する方法はありますか?

次のように二重引用符がエスケープされている場合、文字列を選択することもできます。

"そして彼女は言った \"学習はほとんどの大人のことです| 21世紀を生きていく」\「あの昨日」

上記で、カーソルが「大人」の後にある場合、外側の文字列を適切に選択できるはずです。

ありがとう。

4

3 に答える 3

7

expand-region はあなたが求めているものです。 スクリーンキャストプロジェクト

于 2013-06-07T11:33:09.307 に答える
1

関数は次のとおりです。

(defun copy-quoted-string ()
  (interactive)
  "Copies the quoted text, ignoring the escaped quotes"
  (save-excursion
     (search-backward-regexp "[^\\]\"")
     (forward-char)
     (mark-sexp)
     (kill-ring-save (point) (mark))))

;this is for testing
(global-set-key [f2] 'copy-quoted-string)

テストでは、次の文字列を使用しました。

"text text", "text \"quoted text\" text"

F2を押すと、カーソルが「テキストテキスト」内にあるときに、この文字列がクリップボードにコピーされます。「text \"quoted text\" text」にいる場合、この文字列がコピーされます。

于 2013-06-07T11:39:06.467 に答える