編集における複数カーソルのシミュレーション

編集における複数カーソルのシミュレーション
編集における複数カーソルのシミュレーション

EditorialやBywordで文章を書いていると、Sublime Textのマルチカーソル機能が恋しくなります。一見、実用性のないオタクっぽい追加機能のように思えますが、マルチカーソルは文書内の複数の位置を一度に選択して操作できるため、私の編集ワークフローの一部となっていました。例えば、複数の行を選択して先頭にアスタリスクを付けるとMarkdownリストに変換できますし、同じ単語を複数選択して、検索/置換などのハックを使わずにキー操作一つで修正できます。この機能はSublime Textに組み込まれていて、とても便利でした。そこで、Editorial用のワークフローも作りました。

年末のお祝いムードと感謝の気持ちでいっぱいなので、 Editorial で複数のカーソルをシミュレートするワークフローを2つご紹介します。1つ目は、連続していない複数のテキストの選択範囲を一度に保存し、選択が完了したら任意の文字で囲むことができます。複数の単語を太字/斜体にしたり、括弧で囲んだりしたい場合に便利です。2つ目は、Editorial ブラウザからウェブページの URL を取得し、選択範囲ごとにインライン Markdown リンクを追加できるワークフローです。

静的なスクリーンショットと退屈な文章による説明を提供する代わりに、ワークフローが実際に動作しているビデオをご紹介します。

最初のワークフローに関する注意事項をいくつか示します。

  • 「n」(「No」の頭文字)を入力するまで繰り返し表示されるコンソールの生の入力は、このワークフローのEd Gauthierによる「Set count」アクションに基づいています。デフォルトでは、このアクションは閉じられるまで100回連続して実行されます。この回数は、カスタムアクションの「Count」パラメータで調整できます。これは基本的に、whileループをシミュレートするためのハックです。
  • 生の入力は、テキスト選択を妨げるモーダルビューを表示せずにEditorialでユーザー入力を入力できる唯一の方法であるという点で、一種のハックでもあります。アラートダイアログが表示されても、エディタ内でテキストを選択することはできません。残念ながら、生の入力はPythonでは自動的に非表示にできず、Editorialにはユーザーインタラクションのためのモーダル以外のアクションは用意されていません。
  • 選択範囲は、(x, y) 形式の変数に範囲リストとして保存されます。ワークフローは括弧を削除し、行をアルファベット順に並べ替え、「クリーンアップされた」範囲を同じ変数に再保存します。
  • ワークフローは、左側と右側に挿入するテキストを要求し、入力を 2 つの別々の変数に保存します。
  • 最後の繰り返しブロックでは、選択範囲ごとにテキストが選択され、元のテキストの周囲を折り返す文字に置き換えられます。
  • すべてを機能させるためのコツは、「Reverse」フラグをオンにしてRepeatブロックを実行することです。これにより、下から始めて複数のテキスト置換が連続して実行されるため、上部の範囲の再計算で問題が発生しなくなります。

インライン リンクを使用した 2 番目のワークフローの場合:

  • 最後の Repeat ブロックでは、Python はテキストを選択し、ブロック内の最初の選択範囲の URL を選択するように求める HUD を表示します。
  • 変数browserが一時停止され、ブラウザを開いて各選択項目のURLを検索できます。完了したら、一時停止スライダーの青いボタンをタップすると、変数が保存され、選択したテキストが置き換えられてMarkdownリンクが生成されます。

ご覧のとおり、これらのワークフローは、テキスト選択、繰り返しブロック、そして非モーダルなユーザーインタラクションにおいて、Editorial の現状の限界に挑戦しています。最初のワークフローを使用してテキストの前に空白を追加することは可能です(何も選択せずにカーソルを置いて「y」と入力するだけです)。また、ワークフローをもう少し柔軟に調整することもおそらく可能です(テキストの折り返しではなく置換など)。しかし、私の解決策は、Sublime の真のマルチカーソル機能の完全な代替手段とは言えません。

将来的には、Editorial の繰り返しブロックに「while」または「until」条件を実際に設定できるようになること、そしてカスタムコントロールとの非モーダルインタラクションのためのアクションが増えることを期待しています。あるいは、iPad 上で複数のカーソルを直接操作できるようになるかもしれません。それまでは、私のワークフローをこちらとこちらからダウンロードできます。どうぞお楽しみください。新年おめでとうございます。

クラブ・マックストーリーズ

追加コンテンツと特典にアクセスする

Club MacStories は 2015 年に設立され、ほぼ 10 年間にわたって毎週独占コンテンツを提供してきました。

毎週、毎月の電子メール ニュースレターから始まったものが、すべての MacStories ファン向けに設計されたメンバーシップ ファミリーに成長しました。

詳細については、こちらおよびクラブの FAQ をご覧ください。

Club MacStories : アプリ、ヒント、自動化ワークフロー、長​​文執筆、MacStories Unwind ポッドキャストへの早期アクセス、定期的な景品など、盛りだくさんの情報を満載した、電子メールと Web 経由の週刊および月刊ニュースレター。

Club MacStories+ : Club MacStories が提供するすべての機能に加え、アクティブな Discord コミュニティ、クラブの過去のカタログ全体を閲覧するための高度な検索機能とカスタム RSS 機能、ボーナス コラム、多数のアプリ割引などが含まれます。

Club Premier : 上記のすべてに加え、早期に、広告なしで、高ビットレートのオーディオで配信される当社の主力ポッドキャストの拡張バージョンである AppStories+ が含まれます。