1

だから私は選択したテキストの開始位置と終了位置を与えるこの機能を持っています

(defun start-end (pos1 pos2)
 "…"
  (interactive "r")
  ; …
  (message "start: %d. end: %d." pos1 pos2)
)

ここで、「result」という名前の他のファイル バッファーに書き込みたい (存在しない場合はバッファーを作成する)、次のようにします。

 pos1,pos2,param1,param2

ここで、param1、param2 はコマンド ラインで確認する必要があります。どうすればこれを実現できますか?

4

2 に答える 2

2

次のようなものを試してください:

(defun start-end (pos1 pos2 param1 param2)
  (interactive "r\nsParam1: \nsParam2: ")
  (message "%d,%d,%s,%s" pos1 pos2 param1 param2))

interactiveさまざまな入力フォームをサポートします。複数を使用するには、改行で区切ることができます。実際、インタラクティブなアクションを実行するために実行される文字列ではなく、式を指定することもできます。

編集:

以下を使用してバッファを作成するには、すべての標準の印刷機能を使用して、新しいバッファに何かを挿入できます。

(defun start-end (pos1 pos2 param1 param2)
  (interactive "r\nsParam1: \nsParam2: ")
  (with-output-to-temp-buffer "*Result*"
    (princ (format "%d,%d,%s,%s" pos1 pos2 param1 param2))))
于 2012-11-20T21:34:12.417 に答える
0

バッファを作成し(存在しない場合)、必要なテキストを追加するコードは次のとおりです。

(defun start-end (pos1 pos2)
  (interactive "nStart: \nnEnd: ")
  (switch-to-buffer (get-buffer-create "*start-end*"))
  (goto-char (point-max))
  (insert (format "start: %d. end: %d.\n" pos1 pos2)))
于 2012-11-21T00:17:59.970 に答える