Emacs バッファー内の選択にアクセスする必要があります。この記事を見つけましたEmacs Lispで現在の領域のコンテンツにアクセスするにはどうすればよいですか? そしてそれは私を大いに助けます。
しかし問題がある。初めてリージョンを選択 (強調表示) したときは問題なく動作しましたが、Cg を押して、文字を強調表示せずに通常どおりカーソルを別の場所に移動すると、最後のマークから現在のポイントまでの文字列を取得しましたが、空のマークが期待されます。 .
実際には、現在の選択 (強調表示) を文字列として返す関数、または何も強調表示されていない場合は空の文字列を返す関数を実装する必要があります。次のコードは、私をより明確に表現しているかもしれません。
(defun get-search-term ()
(interactive)
(let (
(selection (buffer-substring-no-properties (region-beginning) (region-end))))
(if (= (length selection) 0)
(message "empty string")
(message selection))))
助言がありますか?どうもありがとう!