📋

コマンドをコピペしたいときの UI の話

2022/03/13に公開

お気持ち表明

よくあるマニュアルで、以下のようなものが「これこれのコマンドを叩いてね」という文脈で載っていがちです。

よくある例

ユーザがコピペして実行したいとき、これはとても不便です。右上のコピーボタンでは、不要な %(あるいは $ など)もコピーされてしまいます。自分の手で「% の後から行末までを選択してコピペして...」というのを毎回やるのは正直嫌です。

また、多くの場合、すべての行をまとめて実行するのではなく、一行ごとにコピペしたいはずですね。コマンドごとに % 抜きで別々の ``` に書けば一応達成できますが、スペースも記述量もかさんでしまいます。

提案手法

そこで、例として、次のような UI があるとうれしい気がしました。

うれしそうな UI の例

これは出力混じりの例ですが、入力のみの場合でも同じです。

  • 各行ごとにコピーできてほしい
  • 全体としてもコピーしてできてほしい
    • 入力のみ・出力含め両方できるとうれしい
  • 見た目が冗長になってほしくない
  • マニュアルを書く際の記述量が理不尽に増えるのは避けたい

などの要望を満たしていると思います。

上記の例は、次のような記述で生成できます。

% 

% echo 123
123
% echo %
%

先頭 2 行は、「この文字列で始まる部分から入力・出力と見なす」というマーカーです。運用などで適宜カバーすることで、これらはスキップできそうです。

他にも、入力パートと出力パートを分けてハイライトすることで、「出力部分にある exit がシェルコマンドと見なされて不自然にハイライトされてしまう」のような現象も避けられそうです(ここではハイライトは未実装ですが)。

デモとか

遊び場 に置いたので、触って遊べます。

おわり

おわりです。

GitHubで編集を提案

Discussion