2013-06-09 3 views
9

としてのvimを使用してセットアップ色のGitの差分をする私は私の要求に従うようにgitを設定することができません:差分ページャ どのようにページャ

  • として

    1. 使用vimの対話モードでファイルを追加する際の差分の色を保ちます

    マイ~/.gitconfigセットアップ:この構成で

    [color] 
        ui = auto 
        # diff = false 
    
    [pager] 
        diff = vim - 
    

    予想通りgit add --interactiveためのインタラクティブモードがカラー出力を生成します。

    interactive adding

    これの欠点は、vimの中に差分が破損していることです。 git diffの出力を参照してください。

    diff using vim

    git diff | vim -色を使用する場合はOKですが、私は完全なコマンドを入力するのが面倒です。どちらの場合でも色を保存する方法はありますか?

  • +0

    がhttp://stackoverflow.com/questions/39470081/vim-check-見ますif-a-a-a-a-pagerを自動的に実行する方法:AnsiEscがロードされたとき。 – 0fnt

    答えて

    11

    AnsiEsc pluginをインストールし、ファイルをロードした直後に:AnsiEscを実行する必要があります。これを行うには、ポケベルをvim -c AnsiEsc -に設定します。

    あるいは、VIM自身の強調表示を使用:同じ方法を用いて(-c command

    %sm/\e.\{-}m//g 
    set ft=diff 
    

    実行:

    diff = "vim -c '%sm/\\e.\\{-}m//g' -c 'set ft=diff' -" 
    
    +2

    完璧、ありがとう!私は、置換後にバッファの先頭にカーソルを置くやや改良されたバージョンを使用しました。 _diff = "vim -c '%sm/\\ e。\\ { - } m // ge' -c 'set ft = diff' -c 'normal gg' - " _ –

    +0

    私は追加しました。 -c 'setlocal buftype = nofile':vimが保存しようとしていない変更について不平を言わないようにする:q – notlesh

    0

    は、これらの設定を試してみてください。

    git config --global diff.tool vimdiff 
    git config --global merge.tool vimdiff 
    
    git config --global difftool.prompt false 
    
    4

    あなたはここに二つの選択肢があります。

    Use Vimdiff as a difftool

    $ git config --global diff.tool vimdiff 
    $ git config --global difftool.prompt false 
    $ git config --global alias.d difftool 
    
    [diff] 
        tool = vimdiff 
    [difftool] 
        prompt = false 
    [alias] 
        d = difftool # Not needed, just a convenience. $ git difftool, still works. 
    

    通常のGitの差分が、カラーhighlithingと。

    $ git config --global color.ui true 
    
    [color] 
        ui = true 
    

    今、あなたは奇妙なミックスをしています。もちろん、両方を使用することはできますが、pagerはものを台無しにしています。
    ^[32mなどを得る理由は、Vimでシェルの色を読み取ろうとしているからです。これは機能しません。

    関連する問題