ワークスペースツール

外部エディター

Git クライアントはコードを読む場所であって、直す場所であることはめったにありません。 差分で問題に気づいてから、エディターのその行にカーソルを置くまでの隔たりは、ファイル 検索とスクロール 1 回分 — それが毎回です。

一度 Gitcito にエディターを教えれば、その隔たりは閉じます。ファイル表示や blame の行を 右クリックすれば、その行でエディターが開きます。

選び方

設定 → 一般 → 外部エディター。 ドロップダウンには、このマシンで Gitcito が見つけ られたエディターが並びます。まず各エディターのコマンドを探し、次に macOS では /Applications と ~/Applications のアプリケーションバンドルを探します。この走査は 設定を開くたびに走るので、5 分前にインストールしたエディターも再起動なしに現れます。

最初から認識するもの:

エディター 探すコマンド
Visual Studio Code code, code-insiders
Cursor cursor
Windsurf windsurf
Zed zed
Sublime Text subl
JetBrains の IDE idea, webstorm, pycharm, rustrover, goland, clion, rider, phpstorm
Xcode xed

知っておくべき制限

行へ飛ぶにはエディターのコマンドが要ります。アイコンでは足りません。 macOS の .app バンドルは open 経由で起動され、open はパスしか受け取りません — だから バンドルとしてしか見つからなかったエディターはファイルを先頭から開きますし、Gitcito は そのことをごまかさずドロップダウンの下に書きます。

直すのはエディター側です。VS Code の Shell Command: Install 'code' command in PATH、 Sublime の subl シンボリックリンク、JetBrains の Toolbox → Settings → Shell scripts。コマンドさえできれば、あらためてエディターを選び直すと行への移動が働きます。

操作が現れる場所

場所 開くもの
リポジトリタブ、サイドバーのリポジトリ、ステータスバー リポジトリのフォルダー
ファイルツリー、コミットのファイル、スタッシュのファイル、コミット作成欄 そのファイル
ファイルツリーの行末のアイコン そのファイルを、1 クリックで
ファイル表示 の行を右クリック そのファイルの、その行
blame 表示の行を右クリック そのファイルの、その行
ファイルツリーの .xcodeproj などのパッケージ そのパッケージを、担当するアプリで

行に対する操作は、行番号がまだ意味を持つ場所にだけ現れます。古いコミット時点で表示して いるファイルや、以前のリビジョンまで巻き戻した blame は、ディスク上のものと行が一致し ません。だから Gitcito は、間違った場所へ送るくらいならそこでは移動を提供しません。

Xcode プロジェクトとその他のパッケージ

MyApp.xcodeproj はディレクトリです。Git はそれを知っていて、ファイルツリー も知っていました——それが邪魔になり始めるまでは。展開して project.pbxproj や project.xcworkspace、xcuserdata の下の開発者ごとのフォルダを探すのは、 そもそも手で編集するつもりのなかったものに対する 3 クリック分のノイズです。

これらはパッケージのアイコンで表示され、行をクリックするとパッケージが開き ます——Finder でダブルクリックしたときと同じです。矢印は残っているので、 project.pbxproj が本当に必要な唯一の場面——ほぼ必ずマージ衝突です——では、 これまでどおり中に降りていけます。

認識されるもの: .xcodeproj、.xcworkspace、.xcframework、.framework、 .app、.appex、.dSYM、.playground、.xcuserdatad。

意図的に認識しないもの: .xcassets と .lproj。これらもパッケージですが、 中のファイルは実際に編集されるため、畳むと得より損が大きくなります。

限界

パッケージを開くのはエディタではなくシステムです。 テキストエディタに .xcodeproj を渡すと property list の詰まったフォルダとして開きますが、 クリックした人が求めていたのはそれではありません。そこで Gitcito は OS が 関連付けているものに渡します。Xcode が入っている Mac ならそれは Xcode です。 エディタの設定はそのままで、通常のファイルには引き続き適用されます。

これは命名規約であり、ファイルシステムのフラグではありません。 Gitcito は 拡張子を見るので、たまたま notes.app と名付けたディレクトリも畳まれますし、 これらが普通のフォルダである Linux や Windows では、クリックすると IDE では なくファイルマネージャが開きます。

自分のコマンド

表にないものには カスタムコマンド を選んでください — ラッパースクリプト、リモート 開発のランチャー、自作のシムから起動するターミナルエディターなどです。

項目 意味
コマンド 実行するプログラム。シェルを通さないので &&、パイプ、グロブは使えません。
名前 メニュー項目での呼び名。
ファイル用の引数 argv のテンプレート。例: -g {path}:{line}:{col}
フォルダー用の引数 argv のテンプレート。たいていは {path} だけ

テンプレートは空白で分割され、各トークンは 1 度だけ置き換えられます。空白を含むパスは 1 つの引数のままで、そのあと再解釈されることもないので、ファイル名が構文に化けることは ありません。プレースホルダーは 4 つ、{path}、{line}、{col}、{repo} です。

値のないプレースホルダーは、付いているフラグごと消えます。--line {line} {path} を行 指定なしで実行すればただのパスになり、ファイル名を引数として飲み込むような宙ぶらりんの --line が残ることはありません。{line} を含まないテンプレートは、そのエディターに 対して Gitcito が行単位の操作を出さない、というだけの意味です。

これは何ではないか

これは 「このアプリで開く」設定 ではありません。あちらはシステムの ピッカーを出し、何でも — 画像でも PDF でも Finder のフォルダーでも — 開くアプリを 1 つ覚えます。エディターのほうが対象の狭い設定なので、両方が設定されているときは ファイルツリーの行末のアイコンではエディターが勝ちます。右クリックメニューには両方とも 並んだままです。

Gitcito が勝手にエディターを起動することはありませんし、Gitcito を閉じてもエディターは 閉じません。エディターは独立したプロセスとして、切り離して起動されます。

この翻訳を GitHub で改善