GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

jisaacks

GitGutter – gutのgit diffを見るための崇高なテキスト2/3プラグイン

投稿日:

gutのgit diffを見るための崇高なテキスト2/3プラグイン

Git Gutter

gitリポジトリ内のファイルに関する情報を表示する、 崇高なテキスト2/3プラグイン。

主な特徴
  1. 挿入、変更、または削除された行を示すガターアイコン
  2. 変更された行の詳細を示す差分ポップアップ
  3. ステータスバーテキストとファイルに関する情報
  4. 変更された行の間を簡単に移動するための変更

アイコン 説明
挿入線
変更された行
削除された領域の境界線
無視されたファイル
未追跡ファイル

💾 インストール

パッケージコントロール

必要な依存関係を自動的にインストールし、すべてのパッケージを最新の状態に保つため、GitGutterをPackage Controlとともにインストールすることを強くお勧めします。

  1. パッケージコントロールをまだインストールしていない場合は、 インストールします
  2. コマンドパレットを開きます (Windows / LinuxではCtrl + Shift + P 、Mac OSではCmd + Shift + P
  3. パッケージコントロールを検索:パッケージインストールしEnterキーを押します。
  4. GitGutter入力し、 Enterキーを押してインストールします。
プレリリース

最先端の機能のテストに興味がある場合は、 Package Control.sublime-settingsinstall_prereleasesキーにGitGutterを追加して、Package ControlでPre-ReleaseをインストールするようにPackage Control.sublime-settings

"install_prereleases":
[
  "GitGutter"
],
GitGutter-Edge

GitGutter-EdgeパッケージはPre-Releasesに置き換えられました。

この変更は…

  1. パッケージ名に依存する関数の問題を避けるためです。
  2. ブランチベースのパッケージはパッケージコントロールによって非推奨になっているためです。
  3. テストのために新しい機能を公開する時期をより詳細に制御できます。

👉 Pre-Releaseを待たずにマスターブランチから直接引き出すことができます。

手動インストール

このリポジトリをあなたの崇高なテキストx /パッケージに複製できます

マックOS
cd ~/Library/Application\ Support/Sublime\ Text\ 2/Packages/
git clone git://github.com/jisaacks/GitGutter.git
Linux
cd ~/.config/sublime-text-2/Packages
git clone git://github.com/jisaacks/GitGutter.git
Windows
cd "%APPDATA%\Sublime Text 2\Packages"
git clone git://github.com/jisaacks/GitGutter.git

👉 コマンド行でgitコマンドを使用できるようにする必要があります。

👉 git.exeを含むディレクトリをPATH環境変数に追加する必要があるかもしれません。

依存関係

GitGutterのいくつかの機能は、以下の外部ライブラリに依存して正しく動作します。 パッケージコントロールによって自動的にインストールされるため、通常は気にする必要はありません。 しかし、パッケージコントロールを持たない設定では、Sublime TextのPythonインタープリタのグローバル名前空間にインストールして利用できることを確認する必要があります。

👉 Mac OSでは、 SublimeFixMacPathパッケージをインストールする必要があります。

👉 リンクされたリポジトリからSTのPackagesフォルダにプルを手動でインストールする。

🔫 トラブルシューティング

gitは動作していますか?

アイコンが表示されない最も一般的な理由は次のとおりです。

  • GitGutterはPATH上でgit実行ファイルを見つけることができません。
  • Mac OSでは、 “Xcode / iOSのライセンス”は、gitの仕事をするためには、aggreedする必要があります。

gitが見つかって正常に動作しているかどうかを確認するには…

  1. コマンドパレットを開きます (Windows / LinuxではCtrl + Shift + P 、Mac OSではCmd + Shift + P
  2. GitGutter:Support Infoを検索し、 Enterキー押します

Sublime Textのバージョン情報とGitGutterで使用されているすべてのパッケージが表示されたダイアログが表示されます。

gitがPATH上に見つかり正しく動作していれば、 git version 2.10.0.windows.1のような行がダイアログに表示されます。 さもなければ、gitが動作しない理由の詳細な情報がコンソールウィンドウに表示されます。 "debug": true再試行しない場合"debug": true GitGutterの設定に"debug": true追加されます。

Gitはシェルで動作しますが、GitGutterでは見つかりません!

一部のオペレーティングシステム(特にMac OS)では、ログインシェル内でSublime Textを実行できない場合があります。 その結果、サブライムテキストとそのすべてのパッケージは、gitのPATHを含むユーザーの環境変数の一部にアクセスすることができません。

場合によっては、gitを提供するパッケージは、ライセンスの変更のためにユーザーの確認が必要なだけで、gitの実行を単に拒否します。

SublimeFixMacPathパッケージのSublime Textは、ログインシェルからPATH環境を読み込みます。 gitがそこで動作している場合、GitGutterもそれを見つけます。

GitGutterは特定のバイナリでも動作します。 git_binary設定の節を読んでください。

GitGutterはアップグレード後も機能しなくなりました

崇高なテキストを再起動した後にGitGutterが動作するかどうか確認してください。

GitGutterのすべてのモジュールはmodulesサブディレクトリに移動され、モジュールとオブジェクトの複数のインスタンスを作成せず、パッケージの読み込み時間を約50%短縮するためにSublime Textに1つのパッケージとして提示しました。

GitGutterは、Package Controlのpost_upgradeイベントを処理して、アップグレード後にすべてのサブモジュールを一度リロードします。 まれに、一部のモジュールが正しくリカバリされない可能性があるため、GitGutterを再び動作させるためにSTを再起動する必要があります。

GitGutterは完全に静かに保つ

GitGutterは、Sublime Textのコンソールにエラーメッセージを表示せずにインストールされ、正しく読み込まれますが、一部またはすべてのリポジトリでは完全に無効になっています。 ステータスバーには、ガターアイコンやメッセージは表示されません。

GitGutterは、評価が役に立たないと予想される以下の状況で静かになるように設計されています。

  • Preferences.sublime-settings 、プロジェクト設定、またはビュー設定で無効になっています( "git_gutter_enabled": false
  • GitGutter.sublime-settings"enabled": false )で無効に"enabled": false ます
  • 現在のビュー
    • git作業ツリーの一部ではないファイルを表示します
    • ウィンドウに添付されていない
    • 読み取り専用です
    • スクラッチビューです
    • ウィジェット( "is_widget": true
    • REPLビューです( "repl": true
    • “16進数”エンコーディングを持つ

これらの州の1つがあなたのパッケージの1つであなたのビューに適用されているかどうか確認してください。

👉 "debug": true 、GitGutterをそのままにしておく理由はコンソールに表示されます。

👉 ConvertToUTF8パッケージは、その状態を確実に元に戻すことなく、変換中にビューをスクラッチとしてマークすることが知られています。

GitGutterは作業ツリーを認識しません

git 2.5+は、.gitディレクトリがワーキングツリーのルートに置かれていない設定を許可します。 1つのリポジトリから複数の作業ツリーをチェックアウトすることもできます。 GitGutterはどの構成を使用していても、作業ツリーのルートにある.gitディレクトリまたは.gitファイルがそのように認識することを期待しています。

.gitディレクトリが作業ツリーのルートにない場合、以下の手順が必要です。

  1. 呼び出してカスタム作業ツリーを指すようにリポジトリを構成する

    git config --add core.worktree <path_to_worktree>

    このステップはgitにカスタム作業ツリーを使用させるために必要です。

  2. リポジトリのデータベースを指す作業ツリーのルートに.gitファイルを作成します。

    。.git ファイルには、 gitdir: <path_to_git_dir>という行が含まれていなければなりません。

    このファイルは、以下のシェルコマンドを使用して作成できます。

    Linux / Mac OS

    echo "gitdir: $(git rev-parse --git-dir)" > .git

    Windows

    for /f %i in ('git rev-parse --git-dir') do set gitdir=%i
    echo gitdir: %gitdir% > .git

🚀 高度な機能

差分ポップアップ

差分ポップアップは、Sublime Text 3のガター変更の上にマウスをGitGutter: Show Diff PopupによってGitGutter: Show Diff Popupされるか、 GitGutter: Show Diff Popupまたはキーバインディングを介してコマンドパレットから呼び出すことができます。

Sサブライムテキスト3ビルド3124+とmdpopups 2.0.0+

シンボル シンボルの意味
× ポップアップを閉じる
最初の変更に行く
前の変更に戻る
次の変更に進む
≈、≒ 差分強調表示を有効/無効にする
git状態の内容をコピーする
gitの状態への変更を元に戻す

変更に戻る

これらのコマンドは、変更を迅速にナビゲートするために使用されます。 これらのコマンドのデフォルトのキーバインディングは次のとおりです。

OS X Windows / Linux 説明
Cmd + Shift + Option + k Ctrl + Shift + Alt + k 前の変更に戻る
Cmd + Shift + Option + j Ctrl + Shift + Alt + j 次の変更に戻る

これらのコマンドは、ドキュメント境界で続行するかどうかを決定するために、デフォルトで"next_prev_change_wrap"設定を使用します。 この動作とステップサイズは、コマンド引数によって、 None以外の値でカスタマイズすることができます。

{ "command": "git_gutter_prev_change", "args": {"count": 2, "wrap": False} },
{ "command": "git_gutter_next_change", "args": {"count": 2, "wrap": False} }

引数

arg 有効範囲 説明
カウント なし、> = 1 宛先ハンクを見つけるための反復数
ラップ なし、偽、真 文書の境界で折り返しを有効/無効にする

コミットからコンテンツをコピーする

コマンドは、最初のカーソルの下の変更されたhunkのコミットされた内容をクリップボードにコピーします。 このコマンドのデフォルトのキーバインディングは次のとおりです。

OS X Windows / Linux 説明
Cmd + Shift + c Ctrl + Shift + c コンテンツのコピー

変更をコミットに戻す

このコマンドは、最初のカーソルの下にあるテキストをgitの状態に戻します。 このコマンドのデフォルトのキーバインディングは次のとおりです。

マックOS Windows / Linux 説明
Cmd + Shift + Option + z Ctrl + Shift + Alt + z 変更をコミットに戻す

異なるコミット/ブランチ/タグとの比較

GitGutterはデフォルトで作業コピーとHEADを比較します。

比較オプションを変更するには:

  1. コマンドパレットを開きます (Windows / LinuxではCtrl + Shift + P 、Mac OSではCmd + Shift + P
  2. 入力を開始するGitGutter: Compare against
  3. キーボードで6つのオプションのいずれかを選択し、 Enterを押します。
  4. 比較するブランチ/タグ/コミットを選択します。

または次のキーバインディングのいずれかを使用します。

マックOS Windows / Linux 説明
Cmd + Shift + Option + c、h Ctrl + Shift + Alt + c、h HEADとの比較
Cmd + Shift + Option + c、b Ctrl + Shift + Alt + c、b 特定のブランチと比較する
Cmd + Shift + Option + c、t Ctrl + Shift + Alt + c、t 特定のタグと比較する
Cmd + Shift + Option + c、c Ctrl + Shift + Alt + c、c 特定のコミットと比較する
Cmd + Shift + Option + c、f Ctrl + Shift + Alt + c、f 特定のファイルコミットと比較(現在のファイルの履歴)
Cmd + Shift + Option + c、o Ctrl + Shift + Alt + c、o 特定の起点との比較(@ {上流})

👉 変更は一時的にリポジトリ全体に適用されます。

⚙設定

設定は、 Preferences > Package Settings > GitGutterメニューからアクセスできます。

デフォルトの設定は、GitGutterの更新時に上書きされるため、変更しないでください。 代わりにGitGutterのユーザー設定ファイルに関連する設定をコピーしてください。

評価を有効/無効にする

"enable": true

GitGutterは、ファイルがロード、保存、アクティブ化、またはデフォルトで変更されるたびに評価を行います。 評価を無効にし、すべてのガターアイコン、ステータスメッセージ、およびミニマップマーカーを非表示にするには、 falseを設定しfalse

デバウンス遅延

"debounce_delay": 1000

ガターアイコンの更新を次の量(ミリ秒単位)で遅らせます。 パフォーマンスの問題に役立ちます。 デフォルトは1000(1秒)です。

フォーカス変更モード

"focus_change_mode": true

GitGutterは、ビューがデフォルトでフォーカスを取得するたびに変更を評価します。 ビューを変更するときに評価を無効にするには、 falseを設定します。

👉 この設定は"live_mode": false有効"live_mode": falseのみ。

👉 GitGutterは、ドキュメントをロードして保存した後、常に変更を評価します。

ライブモード

"live_mode": true

GitGutterは、デフォルトでファイルが変更されるたびに変更を評価します。 各入力後に評価を無効にするには、 falseを設定します。

👉 GitGutterは、ドキュメントをロードして保存した後、常に変更を評価します。

ホバーディフポップアップ

"enable_hover_diff_popup": true

Sサブライムテキスト3ビルド3124+とmdpopups 2.0.0+

GitGutterには、ガターの変更をホバリングするときの差分ポップアップが表示されます。 このポップアップを無効にするには、 falseを設定しfalse キーバインドやコマンドパレットからでも開くことができます。

差異ポップアップデフォルトモード

"diff_popup_default_mode": "default"

Sはサブライムテキスト3ビルド3124+とmdpopups 2.0.0+

ポップアップはカーソルの下にあるコンテンツの前の状態を"default"表示しますが、 "diff"に設定してgit状態とエディタ状態の違いを強調表示することができます。

差分ポップアップの外観

Sサブライムテキスト3ビルド3124+とmdpopups 2.0.0+

ポップアップはmdpopupsライブラリを使用し、対応する設定はGitGutterだけでなくグローバルです。 構文の強調表示は、 "mdpopups.use_sublime_highlighter": true追加することで、アクティブな配色と一致するように設定することができます。

👉 他の設定はmdpopups settingsホームページで見つけることができます

👉 gitgutter_popup.css Userディレクトリを追加して、ユーザースタイルの設定を行います。

👉 ユーザースタイルの設定には、設定メニューからアクセスできます。

保護されたリージョンの差分ポップアップ

"diff_popup_protected_regions": [
  "sublime_linter.protected_regions"
],

GitGutterの差分ポップアップがガターをホバリングしている間に他のポップアップを表示しないようにするには、保護された領域のリストを作成することができます。 マウスカーソルの下の行がこれらの領域の1つで占められている場合、差分ポップアップは表示されません。

👉 保護する地域の名前を把握する必要があります。

👉 キーバインディングまたはコマンドパレットを使用して差分ポップアップを開くことはできます。

未対応のファイル

"show_markers_on_untracked_file": true

GitGutterは、デフォルトでは、追跡されていないファイルや無視されたファイルの各行にアイコンを表示します。 これらのアイコンを非表示にするには、 falseに設定します。

アイコンに色を付けるには、スコープ( markup.ignored.git_gutterおよびmarkup.untracked.git_gutter )を配色に追加する必要があります。

ミニマップ

"show_in_minimap": 1

GitGutterはデフォルトでSublime Text 3のミニマップにdiffを表示します。 show_in_minimapを次のいずれかの値に変更して、この機能を無効にするか、マーカーの幅を変更します。

説明
= 0 マーカーを隠す
> 1 マーカーの幅
-1 フルラインを強調

Gitパス

"git_binary": ""

GitGutterによってPATHに gitが見つからない場合は、gitバイナリの場所にgit_binary設定を設定できます。 値はgitバイナリへの直接的な文字列でもよいし、

"git_binary": "E:\\Portable\\git\\bin\\git.exe"

sublime.platform()が返すものをキーにした辞書かもしれないので、プラットフォームごとにカスタマイズすることができます:

"git_binary": {
  "default": "",
  "linux": "/usr/bin/git",
  "windows": "C:/Program Files/Git/cmd/git.exe"
}

設定値に環境変数を使用することは有効で、適切に展開されます。

POSIX環境では、 which gitを実行して、パス内にある場合にwhich gitへのパスを見つけることができます。 Windowsでは、 where gitを使って同等の処理を行うことができます。

Git環境変数

"env": {
  "GIT_OPTIONAL_LOCKS": 0
}

"env"ディクショナリでは、カスタム環境変数をgitに渡すことができます。 値は、Sublime Textが実行されているグローバル環境変数を上書きします。

👉 Noneキーは、ローカル環境から削除されます。

👉 ビューまたはプロジェクトごとに定義された"git_gutter_env"は、グローバルな"env"辞書を隠します。

👉 $PATHを操作する場合は、OSの正しい区切り文字を使用してください。

差分アルゴリズム

"diff_algorithm": "patience"

この動作を変更するには、 diff_algorithmを次のいずれかの値に設定します。

説明
“デフォルト” 基本的なgreedy diffアルゴリズム。 現在、これがデフォルトです。
“最小” 最小の差異が生成されることを確認する余分な時間を費やしてください。
“忍耐” パッチを生成する際には、 “忍耐diff”アルゴリズムを使用してください。
“ヒストグラム” このアルゴリズムは、忍耐強さアルゴリズムを「低出現の共通要素をサポートする」まで拡張する。

👉 この値は、 git diffに渡すコマンドライン引数を決定します。

空白を無視する

"ignore_whitespace": "none"

GitGutterには、デフォルトで変更を評価する際のすべての空白が含まれます。 この動作を変更するには、 ignore_whitespaceを次のいずれかの値に設定します。

説明
“なし” 空白の変更を無視しない
“eol” 行末の空白の変更を無視する
“スペース” 変更された空白の量を無視する
“すべて” すべての空白を無視する

👉 この値は、 git diffに渡すコマンドライン引数を決定します。

保護地域

"protected_regions": [
  "sublimelinter-warning-gutter-marks",
  "sublimelinter-error-gutter-marks",
  "bookmarks"
],

GitGutterがより重要な溝アイコンを無効にするのを防ぐために、保護された領域のリストを作成することができます.GitGutterは溝アイコンを追加しません。

👉 保護する地域の名前を把握する必要があります。

ステータスバーテキストを表示する

"show_status_bar_text": true

GitGutterはデフォルトで、開いているファイルに関するステータス情報をステータスバーに表示します。 情報を非表示にするには、 falseに設定しfalse

ステータスバーテキストテンプレート

"status_bar_text": [
  "In {{repo}} on {{branch}}",
  "{% if compare != 'HEAD' %}, Comparing against {{compare}}{% endif %}",
  ", File is {{state}}",
  "{% if deleted != 0 %}, {{deleted}}-{% endif %}",
  "{% if inserted != 0 %}, {{inserted}}+{% endif %}",
  "{% if modified != 0 %}, {{modified}}≠{% endif %}"
]

The Status Bar Text is rendered using a fully customizable template from status_bar_text . The setting is organized as an array of strings for better readability. It is joined and then passed to jinja2 .

GitGutter provides the following variables to be used in the template.

変数 説明
{{repo}} repository name / folder name containing the .git directory
{{branch}} checked out branch you are working on
{{remote}} tracked remote of current branch you are working on or None
{{ahead}} number of commits the local branch is ahead of remote
{{behind}} number of commits the local branch is behind remote
{{added_files}} number of untracked files added to working tree
{{deleted_files}} number of files deleted from working tree
{{modified_files}} number of modified files in the working tree
{{staged_files}} number of files in the staging area
{{compare}} commit/branch/HEAD the file is compared to
{{状態}} One of committed/modified/ignored/untracked
{{deleted}} number of deleted regions
{{inserted}} number of inserted lines
{{modified}} number of modified lines

テーマ

"theme": "Default.gitgutter-theme"

GitGutter provides support for custom gutter icons and diff popup style sheets coming with theme packages. Set theme to a valid theme file name to activate a different icon set.

GitGutter includes following themes:

  • Bars.gitgutter-theme
  • Bars Thin.gitgutter-theme
  • Default.gitgutter-theme
  • Default HiDPI.gitgutter-theme

To provide a custom theme developers need to add a folder with all required icons and an optional gitgutter_popup.css file to their package. An empty JSON file <ThemeName>.gitgutter-theme must exist to mark this folder a resource for GitGutter icons.

Per-project and Per-syntax Settings

All GitGutter settings can be placed in any of Sublime Text’s settings files to provide syntax-, user-, project- or view-specific setups.

The setting keys need to be prefixed using git_gutter_ to do that.

To modify GitGutter settings for an open Project just open Project > Edit Project menu and add the settings key as shown.

{
    "folders":
    [
        {
            "path": "src"
        }
    ],
    "settings":
    {
        // git_binary is the only setting not being prefixed
        "git_binary": "/path/to/project/specific/git"

        // git_gutter settings
        "git_gutter_live_mode": false,
        "git_gutter_ignore_whitespace": "space"
    }
}

👉 All correctly prefixed settings can be placed into Preferences.sublime-settings instead of GitGutter.sublime-settings .

👉 Settings can be modified temporarily per view by calls like view.settings().set("git_gutter_enable", False)

🖌 Icon Coloring

The colors come from your color scheme .tmTheme file.

Required Color Scheme Entries

If your color scheme file does not define the appropriate colors (or you want to edit them) add an entry that looks like this:

<dict>
  <key>name</key>
  <string>GitGutter deleted</string>
  <key>scope</key>
  <string>markup.deleted.git_gutter</string>
  <key>settings</key>
  <dict>
    <key>foreground</key>
    <string>#F92672</string>
  </dict>
</dict>
<dict>
  <key>name</key>
  <string>GitGutter inserted</string>
  <key>scope</key>
  <string>markup.inserted.git_gutter</string>
  <key>settings</key>
  <dict>
    <key>foreground</key>
    <string>#A6E22E</string>
  </dict>
</dict>
<dict>
  <key>name</key>
  <string>GitGutter changed</string>
  <key>scope</key>
  <string>markup.changed.git_gutter</string>
  <key>settings</key>
  <dict>
    <key>foreground</key>
    <string>#967EFB</string>
  </dict>
</dict>
<dict>
  <key>name</key>
  <string>GitGutter ignored</string>
  <key>scope</key>
  <string>markup.ignored.git_gutter</string>
  <key>settings</key>
  <dict>
    <key>foreground</key>
    <string>#565656</string>
  </dict>
</dict>
<dict>
  <key>name</key>
  <string>GitGutter untracked</string>
  <key>scope</key>
  <string>markup.untracked.git_gutter</string>
  <key>settings</key>
  <dict>
    <key>foreground</key>
    <string>#565656</string>
  </dict>
</dict>

Supported Color Schemes

Color schemes that already have support for GitGutter include:

⮱ Alternatives

Check out the collection of GitGutter(ish) packages for various editors







-jisaacks
-, ,

執筆者: