コンテンツにスキップ

コードから送る

ここにあるコマンドは、編集中のバッファから使います。送り先はそのプロジェクトのセッションで、決められないときは一度だけ尋ね、その答えをバッファに記憶します。ターンの実行中に送ったプロンプトはキューで待ちます。

行、リージョン、ファイルを送る

Section titled “行、リージョン、ファイルを送る”

メニュー(C-c c ?)で:

キー 送るもの
s ミニバッファで入力した 1 行(C-u s で送り先のセッションを尋ねる)
x 1 行と、今のファイルと行
g リージョン(なければバッファ全体)を引用ブロックで(C-u g で前に置く指示を尋ねる)
f @ とファイルのパスを、CLI が読むために。先にバッファの保存を勧める

x と g は、次のようなブロックでコードを付けます。

---
Current context: hello.py L1-L3
```python
def greet(name):
return "hello " + name
```

e は、今の行の診断を周りのコードとともに送ります。診断は Flymake、Flycheck、ポイントのヘルプテキストの順に探します。

l はリージョンかファイルについて質問し、答えをトランスクリプトではなくポイントの上のオーバーレイに表示します。n と p でスクロールし、r で続けて質問し、q で閉じます。質問は軽量なセッションか分岐したセッションで動き、どちらにするかはバッファごとに一度だけ選びます。

w は指示に従ってリージョンを書き換えます。置き換え案がその場に表示され、RET でバッファに書き込みます。ツールは使わず、CLI がコードを返し、Emacs がバッファを書き換えます。

プロンプト領域では、@ でコードを指せます。上の 3 つはそのまま書く語で、下の 2 つは @ の後にファイルのパスを書きます。

参照 送るもの
@region アクティブなリージョン(引用したコードブロック)
@cursor ポイントのある行と、その前後の行
@diagnostics バッファの Flymake か Flycheck の診断
@ とファイルと行(例: @src/reader.py:10-40) ファイルのその行
@ とファイル(例: @src/reader.py) CLI が読むためのパス

上の 4 つは、送る前に Emacs が展開します。参照は短いラベルになり、中身はプロンプトの下の引用ブロックへ移ります。@region・@cursor・@diagnostics が読むのは、セッションへ移る前に編集していたバッファです。添付した内容はエコーエリアに表示されます。リージョンなしで @region を使うと警告が出ます。

パスだけで指したファイルは CLI が読みます。トランスクリプトにはそのことは何も表示されません。

@ の後の TAB は、上の 3 つの語とプロジェクトのファイルを候補に出します。/、~/、./、../ で始まるパスは、find-file と同じくディレクトリごとに、どこからでも補完できます。相対パスはセッションのプロジェクトからの相対です。リモート(TRAMP)のパスは補完しません。CLI が読めないためです。

セッションバッファで C-c C-x を押すとエディタのコンテキストが有効になり、プロンプトごとに今のファイルと行が付きます。