Termtterのプロンプトに関するアイディア

というほど大それたものではないのですが……。

Termtterのプロンプトは、コマンドを入力するとき以外は、出ていなくてもいいんじゃないかな、と思ったのが出発点です。
必要なときは、たとえば":"キーなどを入力すると、タイムラインの流れを止めてプロンプトが現れます。コマンドを入力し終わったら、ふたたびタイムラインが流れます。
「日本語入力中にタイムラインが流れて……」というトラブルを避けることができるでしょう。

ショートカット

しかし、上記のような動作をする場合、":"キーのぶん打鍵数が増えるのが業腹ですね(?)。
そこで、よく使うコマンドは、一発で呼び出せるようにするとよいのではないでしょうか。
たとえば、"u"キーを押すと

update >

というようなプロンプトが現れて、いきなりポストする内容を入力する、というようなものです。

さらに、引数をとらないコマンド("exit", "help", etc...)などは、プロンプトを呼ばずに、そのまま実行してしまうのもよさそうです。

とりあえず

百聞は一見になんとやら、上記のような動作をざっくりと実装してみたので、おひまな方は試してみてください。

ktgy's termtter at master - GitHub

動作については、ruby 1.8.7-p174 + Terminal.app + screenという環境で確認をしています。iTermでも大丈夫でした。

デフォルトでは、以下のような設定になっています。

ショートカット・プロンプト
キー コマンド
: なし
d direct
D delete
f fib
F favorite
l list
o open
p profile
R reply
s search
t retweet
u update

プロンプトを呼んだ後、なにもせずプロンプトから抜けるには、"Control + d"です。

ショートカット・プロンプトの実体は、"curry"コマンドを呼んでからプロンプトを呼んでいる、というだけです。そのため、通常の"curry"コマンドが使えなくなっています(プロンプトからコマンド実行後、必ず"uncurry"されるため)。

ダイレクト・コマンド
キー コマンド
c clear
L ラインを引く
q quit
r replies
? help
Esc screenのcopyモードを呼ぶ(screen上での動作を想定)

問題点

  • たぶんWindowsでは動きません
    • Win32APIを使えば可能?
  • プロンプトが出ないぶん、動作が分かりづらいかも
    • 起動時に、簡易ヘルプのようなものを表示するとか?
  • ショートカット・プロンプトでは、タブ補完がうまくいきません