GUIでもCUIでもない選択肢 TeUI(テキストエディタUI)
テキストエディタ上で完結させてしまう UI を TeUI と呼びます。
メリット
使い慣れたエディタ上で完結できること。
例: ChatGPT
通常はブラウザから利用しますが、ブラウザは不便です。仮にエディタ上で完結できたらどうでしょうか。
エディタ上でプロンプトを書いて、ショートカットキーを押したら、もう裏で問い合わせが走り、結果も自動で書き込まれるとしたら。ブラウザと行き来するよりも快適だと思います。
この感覚がわかる人は、TeUI を試す価値があります。わからない人は対象読者からは外れます。
事例
新しい概念であるため、まだ事例はありません。
しかし本記事にて提案しており、内容も難しくないため、読者の方で形にすることができるでしょう。何らかのツールやエディタ拡張機能の形で実装してくれると嬉しいですね。
TeUIが使える手段
ショートカットキー
メニューバー
ポップアップメニュー
分割ウィンドウ
ただしターミナルを出す等は違います
それはただのIDEです
マクロ
エディタに搭載されたスクリプト言語のこと
呼び名はエディタによって様々です
ただしマクロ単体では動作せず、何らかの手段で呼び出す必要があります
デーモン
今開いているファイル内容を自動で読み込んで何らかの処理を反映させる機構
バックグラウンドで専用プログラムが動いている必要がある
VSCodeにはLanguage Serverなる仕組みがあり、動的な補完やハイライト等を一利用者でもつくりやすい
もちろん自分で常駐プログラムをつくるのも良い
どんなエディタで実現できるか
vim や emacs といったCUIベースのエディタ
mi、CotEditor、SAKURA EditorといったGUIベースのエディタ
秀丸エディタ、EmEditorといった有償エディタ
VSCode など汎用IDE
最大の鍵は「動的な更新」
TeUI 最大のメリットは、普段慣れてるエディタ上で入出力を行えることです。
ChatGPTの例
たとえば chatgpt.md というファイルがあるとします。
ショートカットキー alt + s で「chatgpt.md の内容をプロンプトとして問い合わせを行い、返ってきた結果もそこに追記する」処理を走らせるとします。
※実際には OpenAI API を使った処理を走らせることになるでしょう。
これを使うと、エディタ上で ChatGPT が完結します。ブラウザと行き来せずに済みますし、書くのも結果のコピペも楽です。
文芸的コマンドライン
コマンドラインは通常、ターミナル上で実行しますが、これは意外と不便です。コマンドラインに対するコメントは書けないし、コマンドラインをつくるときもつくりづらいです。
TeUIを使うとどうなるでしょう。
たとえば workspace.md というファイルにします。
ここでは ```command1 という形でコマンドを書けます。またcommand1の結果は ```result1 に書き込まれるとします。
ショートカットキー ctrl + space で「カーソル位置にある commandX を実行する」とします。結果は resultX に書き込まれます。


このあり方なら、エディタ上で文章を書くようにコマンドラインを書いていけるし、テストもできます。
まるで文芸的プログラミングのようであり、これを文芸的コマンドラインと呼びます。
Jupyter Notebookと何が違うか?
本質的な考え方は似ている
ドキュメント上に「実行能力のある記述」を書く発想
文芸的
目的が違う
Jupyter Notebookはデータ分析用途
結果を確認&記録しつつ、段階的に実行していける
コマンドというよりはコード
文芸的コマンドラインは汎用
エディタ上でコマンドを実行するというもの
コードではなくコマンド