neovim + diffchar.vim에서 git 충돌 제거시 단어의 차이도 볼 수있게합니다.
개요
git의 병합 툴을 neovim으로 하고 있었지만, 디폴트인 채로는 단어마다의 차이가 표시되지 않기 때문에, csv등의 병합시에 컨플릭트한 부분을 일부러 다른 diff 툴을 사용해 차이를 확인하는 등의 번거로운 작업이 발생했습니다.
이것이 불편했기 때문에, diffchar.vim (을)를 사용해, 단어 마다의 차분을 내도록(듯이) 했다.
환경
오 S
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 버전 2.17.0
도입 절차
diffchar.vim 설치
플러그인 매니저를 사용하는 것이 편합니다.
자신의 경우는 dein 를 사용.
dein.toml
[[plugins]]
repo = 'rickhowe/diffchar.vim'
diffchar.vim 설정
문서 을 참고로 diff 표시의 설정.
자신은 다음과 같이 설정.
init.vim
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 추가
여기 에서 @rickhowe 님에게
cmd = nvim -d \"$LOCAL\" \"$REMOTE\" \"$MERGED\" -c '2 wincmd l | wincmd J | wincmd k'
그렇다면,
$MERGED
의 페인도 diff 모드로 비교되어 버리므로, 좋지 않다고 하는 것으로 개량안을 받았으므로 그쪽의 커멘드로 변경했습니다.감사합니다.
Reference
이 문제에 관하여(neovim + diffchar.vim에서 git 충돌 제거시 단어의 차이도 볼 수있게합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mkiken/items/ddc2ee55731b01fac187텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)