カットの下で、
必要なもの:
- tmuxの簡単な紹介
- Tmux自体
- お気に入りのYPの通訳
-悪い画面とは何ですか?
-彼がGNUであり、さらにウィンドウを垂直に分割できないという事実。
コンセプト
クリーンなインタープリターを使用する場合の主な問題は、何らかの方法でコードを保存する必要があることです(ただし、コードが保存されない場合)。 それは非常に簡単に解決されます:
- インタープリターでターミナルを開きます
- テキストエディタを開きます
- エディターにコードを入力します
- ターミナルにコピー
- 結果を見て、喜ぶ/動揺する
実装
#!/bin/sh # ide interpreter="sbcl" windowname="ide" ide_running=`tmux list-windows | grep "$windowname"` if [ "$TMUX" ]; then if [ "$ide_running" ]; then tmux select-window -t "$windowname" else tmux rename-window "$windowname" \; split-window -dhp 40 "$interpreter" fi else if [ "$ide_running" ]; then tmux attach-session \; select-window -t "$windowname" elif tmux has-session >/dev/null 2>&1; then tmux attach-session \; new-window -n "$windowname" \; split-window -dhp 40 "$interpreter" else tmux new-session -n "$windowname" \; split-window -dhp 40 "$interpreter" fi fi
#!/bin/sh # idepipe tmpfile=`mktemp /tmp/tmuxbuffer.XXXXXX` tee $tmpfile tmux load-buffer $tmpfile >/dev/null 2>&1 tmux paste-buffer -dt 1 >/dev/null 2>&1 rm -f $tmpfile
最初のスクリプトは、ideウィンドウと2つのパネルでtmuxセッションを開始/復元します。 左側のコンソールの右側-$インタープリター変数からのインタープリター。 コンソールで、お気に入りのテキストエディターを実行します。 BSD viシステムでは、デフォルトのクローンはnviです。 ぴったりです、立ち上げます。

2番目のスクリプトはフィルターです。 インタープリターのコードは標準入力に提供され、出力はインタープリターウィンドウと標準出力に書き込まれます。 viには標準出力が必要です。これがないと、貴重なコードがバッファから
例
Common Lisp
スクリプトを$ PATHに配置し、ideを実行します。 viテキストエディターで、任意のコードを入力します。 十分に高く見えたら、コマンド
:%!idepipe
ます。 viに慣れていない人のために、明確にする必要があります。コロンはコマンドを開始し、
%
はファイル全体を意味し、
idepipe
はフィルターの名前です。 人間の言語では、次のように聞こえます:
idepipe
入力にバッファー全体を与え、出力で得たものでバッファー全体を上書きします。 コードを変更したくないことは明らかなので、
idepipe
内で
tee
使用され
idepipe
。 すべてが計画どおりになった場合、インタープリターウィンドウには目的のコードとその実行結果が表示されます。 すべてのコードを実行するには、ファイルの最後の行が空である必要があります。そうでない場合は、インタープリターウィンドウでEnterキーを押す必要があります。

%
記号に加えて、さらに多くのアドレス指定を使用できます。 したがって、ファイル全体を再度ダイジェストすることなく、コードの一部(変更された部分)のみをインタープリターに送信できます。
さらに、これらのコマンドを毎回入力する必要はありません。一度マップするだけで十分です。:10,30!idepipe
-10〜30行を含むすべてを解釈します。
(!)idepipe
(コロンなし(!)idepipe
つのLispブロックを解釈する
:map {ctrl-v}{F3} {ctrl-v}{esc}(!)idepipe{ctrl-v}{enter}
を押してコードブロックを解釈します
:map {ctrl-v}{F5} {ctrl-v}{esc}:%!idepipe{ctrl-v}{enter}
を押してファイル全体を解釈します
中括弧の代わりに、対応するキーを押す必要があります
両方のチームが編集モードからなどを操作
-そして、それは他の通訳者と連携します。
-すべてのREPL環境で動作するはずです(評価印刷ループの読み取り)。 さらに確認してみましょう。
Python

Pythonを初めて実行するので、コードはそれほど複雑ではありませんが、機能します。
シェル

さらに、mysql、irbなども機能するはずです。
-それはよさそうですが、それでもカードと女の子が欲しいです。
「問題ありません。」 メガ機能を追加します。
メガ機能
最初に、idepipeスクリプトを変更しましょう。
#!/bin/sh # idepipe tmpfile=`mktemp /tmp/tmuxbuffer.XXXXXX` tee $tmpfile tmux load-buffer $tmpfile >/dev/null 2>&1 tmux paste-buffer -t 1 >/dev/null 2>&1 tmux paste-buffer -t 2 >/dev/null 2>&1 tmux paste-buffer -dt 3 >/dev/null 2>&1 rm -f $tmpfile
うわー、2つのまったく新しい行。 どんなミニマリズムがありますか? この変更の原因は何ですか? すべてが非常に簡単です。1つのインタープリターの代わりに、一度に3つにコードを送信できます。 「なぜ?」という表現されていない質問に対する答えは非常に単純です。一般的なLisp言語の異なる実装には非互換性があります。 3人の通訳者で一度にコードをチェックし、1石で免責事項:
idepipe
愚か者からの保護なし
idepipe
記述されているため、tmuxの奇妙な動作を回避するには、ideウィンドウに2つの追加パネルを手動で作成し、インタープリターを実行する必要があります。 インタプリタパネルの数(スクリプトからわかるように)は、1、2、および3でなければなりません。

Xの瞬間です。関数の1つでおなじみの
(!)idepipe
を実行し、3つの異なるインタープリターでコードの実行を観察します。 これはとってもクール! ミニマリズムが必要とする1つの機能に限定します。

不健康なミニマリズムの一部
お気に入りのテキストエディターtr3オタク-ed。 edがこの記事に適していると思った人はいましたが、そうです。 最小限であり、パイプでテキストを送信できます。 幸せには他に何が必要ですか? 12,13w!Idepipeを実行すると、すべてのパネルに結果が表示されます。
