سؤال

أنا الإعداد git diff للالتفاف في Vimdiff ، باستخدام "Git Diff مع Vimdiff"كدليل ، وهو يعمل كما هو متوقع ما لم يكن هناك العديد من الملفات التي تحتوي على تغييرات.

عندما يكون هناك عدة ملفات مع تغييرات وأقوم بتشغيلها git diff, ، يفتح الملف الأول ، وبعد الإقلاع عن الحالة الأولى من VIMDIFF ، قدمت الرسالة التالية:

external diff died, stopping at filename

هذا سلوك مختلف تمامًا عما اعتدت عليه. كان لديّ إعداد مشابه في الماضي مع SVN ، وعندما أتعامل مع ملفات متعددة ، أود أن أراجع الملف الأول ، ثم الكتابة والاستقالة باستخدام :wq وينفتح الملف التالي مع الاختلافات.

هذا ليس هو الحال مع git. حاولت :n[ext], ، لكن القيام بذلك لا يملأ النافذة اليسرى بالملف الأصلي بحيث يمكن نشره مقابل الإصدار المعدل.

هل كانت مفيدة؟

المحلول

git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool

الكتابة git d يعطي السلوك المتوقع ، والكتابة :wq في دورات VIM إلى الملف التالي في تغييرات.

نصائح أخرى

يمكنك المحاولة git difftool, ، تم تصميمه للقيام بهذه الأشياء.

أولاً ، تحتاج إلى تكوين أداة Diff إلى VimDiff

git config diff.tool vimdiff

ثم ، عندما تريد الاختلاف ، فقط استخدم git difftool بدلاً من git diff. سوف تعمل كما تتوقع.

Git accepts kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
and opendiff as valid diff tools. You can also set up a custom tool. 

git config --global diff.tool vimdiff
git config --global diff.tool kdiff3
git config --global diff.tool meld
git config --global diff.tool xxdiff
git config --global diff.tool emerge
git config --global diff.tool gvimdiff
git config --global diff.tool ecmerge
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top