1

ELisp 関数を書きたい: 現在のリージョンを新しいファイルに追加し (すでに ELisp 標準ライブラリに書き込まれており、write-region と呼ばれる)、このファイルをバックグラウンドで新しいバッファとして開き、後で編集できるようにする.

しかし、現在選択されているリージョンも削除したいと思います。

私はこのようなことをしたい:

(defun write-region-delete-and-open(start end filename)
  "function takes current region, and writes it to specified file"
  (interactive "r\nsFilename: ")
  (write-region start end filename t)
  (kill-region start end))

しかし、私が想定しているようには機能していません。領域を切り取ると、バッファ内のその領域の後にすべてが殺されます。また、(ido-find-file) を使用して、ビュッフェを書き込むファイルを選択したいと考えています。作成したファイルをバックグラウンドで開く方法がまったくわかりません。私を助けてください。

4

1 に答える 1

3

を使用するには、引数ido-find-fileのインタラクティブ指定を に変更してください。あれは:filenameF

(interactive "r\nFFilename: ")

(ido-mode 1)ファイル内の byのように、他のファイルを開くためにすでに ido を使用していると仮定してい.emacsます。

バックグラウンドでファイルを開く機能は、ファイルをすぐに表示せずに開くことを意味すると思いますが、 と呼ばれfind-file-noselectます。

kill-region領域の後のバッファ全体が;への呼び出しによって殺される理由がわかりません。あなたのコードを使用すると、それが起こるとは思いません。

于 2012-08-31T20:18:53.193 に答える