neovim+diffchar.vimでgitコンフリクト解消時に単語の差分も見れるようにする
概要
gitのマージツールをneovimにしていたのだが、デフォルトのままだと単語ごとの差分が表示されないため、csvなどのマージの際にコンフリクトした箇所をわざわざ違うdiffツールを使って差分を確認するなどの面倒な作業が発生していた。
これが不便だったので、diffchar.vimを使って、単語ごとの差分を出すようにした。
環境
OS
macOS High Sierra 10.13.6
neovim
NVIM v0.2.2
Build type: Release
LuaJIT 2.0.5
Compilation: /usr/local/Homebrew/Library/Homebrew/shims/super/clang -Wconversion -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DNDEBUG -DMIN_LOG_LEVEL=3 -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -I/tmp/neovim-20180209-92407-udkzoo/neovim-0.2.2/build/config -I/tmp/neovim-20180209-92407-udkzoo/neovim-0.2.2/src -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/opt/gettext/include -I/usr/include -I/tmp/neovim-20180209-92407-udkzoo/neovim-0.2.2/build/src/nvim/auto -I/tmp/neovim-20180209-92407-udkzoo/neovim-0.2.2/build/include
Compiled by [email protected]
Features: +acl +iconv +jemalloc +tui
See ":help feature-compile"
システム vimrc: "$VIM/sysinit.vim"
省略時の $VIM: "/usr/local/Cellar/neovim/0.2.2_1/share/nvim"
Run :checkhealth for more info
git
git version 2.17.0
導入手順
diffchar.vimをインストール
プラグインマネージャーを使うのが楽。
自分の場合はdeinを使用。
[[plugins]]
repo = 'rickhowe/diffchar.vim'
diffchar.vimの設定
ドキュメントを参考にdiff表示の設定。
自分は以下のように設定。
let g:DiffUnit = 'Char' " any single character
let g:DiffColors = 3 " 16 colors in fixed order
gitconfigの設定
以下のコマンドでgitconfigを編集
git config --global --edit
[merge]
tool = nvim
[mergetool "nvim"]
cmd = nvim -c '2wincmd w | diffthis | 3wincmd w | diffthis | 1wincmd w | wincmd J' -O $MERGED $LOCAL $REMOTE
$LOCAL
ペインと$REMOTE
ペインをdiffモードで比較し、$MERGED
ペインを下部に移動している。
まわりくどいように思えるが、こうすることで$MERGED
ペインをdiffモードに入れずに表示することができる。
結果
参考
2018/9/9追記
cmd = nvim -d \"$LOCAL\" \"$REMOTE\" \"$MERGED\" -c '2 wincmd l | wincmd J | wincmd k'
だと、$MERGED
のペインもdiffモードで比較されてしまうので、よくないとのことで改良案をいただいたのでそちらのコマンドに変更しました。
ありがとうございます。
Author And Source
この問題について(neovim+diffchar.vimでgitコンフリクト解消時に単語の差分も見れるようにする), 我々は、より多くの情報をここで見つけました https://qiita.com/mkiken/items/ddc2ee55731b01fac187著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .