GPT を使用してオートコンプリートを行い、atuin コマンド履歴のデータを入力プロンプトとして使用します。ストリーミング応答を使用して、最初の応答を迅速に取得します。README は数分でまとめられ、すぐに修正します。
pip install --user tiktoken openai
で十分です。または、venv を実行して、シェル設定が正しい Python を指すようにすることもできます。
fzf を使用して正しい結果を選択します。
これを config.nu に追加します。
{
name: complete_with_gtp
modifier: CONTROL
keycode: Char_o
mode: [emacs vi_normal vi_insert]
event:[
{ send: executehostcommand,
cmd: "commandline -r (python /path/to/completer.py (commandline) | fzf --track --height 8)"
}
{ send: Enter }
]
}
config.fish を実行するには:
function gpt_completion
commandline (python /path/to/completer.py (commandline) | fzf --track --height 8)
end
bind ck "gpt_completion"
--atuin
: atuin 履歴データベースの場所
--dunst
: dunstify を使用して何が起こっているかを通知します (主にデバッグ)
--model
: gpt-3.5-turbo または gpt-4。この用途では GPT-4 がかなり遅く感じられます。
--wezterm
: Wezterm から画面コンテンツを追加します。
これにより、atuin データベースからいくつかのクエリが作成されるため、インデックスをいくつか追加するだけでかなり高速化できます。
sqlite3 ~/.local/share/atuin/history.db
CREATE INDEX idx_history_cwd on history(cwd);
CREATE INDEX idx_history_session on history(session);
Wezterm を使用している場合は、現在のターミナル画面のコンテンツを GPT プロンプトに追加することもできます。これは、正しいコマンド ラインの生成に役立つエラー メッセージがある場合に便利です。その場合は、completer.py コマンド ラインに -w を追加します。
Kitty get-text は、現在動作させることができなかったため、コード内でコメント化されています。すぐに修正するか、方法を見つけたらお知らせください。
これは、Atuin が HN のトップページに登場したため、非常に急いで投稿されました。コードはひどいもので、コメントアウトされた中途半端な機能がたくさんあり、あまりテストしていません。他の場所で正常に動作するには、いくつかの修正が必要になる場合があります。数日以内に掃除してみます。