আমি ভিটকে গিটের সাথে খুব ত্রি-ত্রি মার্জ হিসাবে ব্যবহার করছি এবং কখনও কখনও স্থানীয় এবং দূরবর্তী উভয় শাখা থেকে পরিবর্তন নেওয়া প্রয়োজন। kdiff3
বেশ কয়েকটি কী চাপ দিয়ে এটি করতে পারেন, ভিমে এটি করার কোনও উপায় আছে কি?
আমি ভিটকে গিটের সাথে খুব ত্রি-ত্রি মার্জ হিসাবে ব্যবহার করছি এবং কখনও কখনও স্থানীয় এবং দূরবর্তী উভয় শাখা থেকে পরিবর্তন নেওয়া প্রয়োজন। kdiff3
বেশ কয়েকটি কী চাপ দিয়ে এটি করতে পারেন, ভিমে এটি করার কোনও উপায় আছে কি?
উত্তর:
আপনি যা চেয়েছিলেন ঠিক তেমন নয়, তবে এটি দরকারীটি খুঁজে পেতে পারে: স্প্লাইস প্লাগইন: ত্রি-মুখী সংযোজনের সময় বিরোধগুলি সমাধানের জন্য একটি ভিম প্লাগইন । এটি ভিমেওতে একটি দুর্দান্ত ডেমো স্ক্রিনকাস্ট রয়েছে ।
আপনি যদি ডিফল্ট ভিমডিফের সাথে আটকে থাকেন তবে আপনি সুরন্ডিং উইন্ডোগুলির জন্য বাফার নম্বরটি পুনরুদ্ধার করতে একটি ফাংশন তৈরি করতে পারেন এবং তাদের :diffget
দু'বার কল করতে ব্যবহার করতে পারেন :
*:diffg* *:diffget*
:[range]diffg[et] [bufspec]
Modify the current buffer to undo difference with another
buffer. If [bufspec] is given, that buffer is used. If
[bufspec] refers to the current buffer then nothing happens.
Otherwise this only works if there is one other buffer in diff
(...)
The [bufspec] argument above can be a buffer number, a pattern for a buffer
name or a part of a buffer name. Examples:
:diffget Use the other buffer which is in diff mode
:diffget 3 Use buffer 3
:diffget v2 Use the buffer which matches "v2" and is in
diff mode (e.g., "file.c.v2")
আপনি যে কীগুলিতে ব্যবহৃত হয়েছিল সেগুলিতে এই ফাংশনে একটি কল বরাদ্দ করতে আপনি তাদের ম্যাপিং ব্যবহার করতে পারেন kdiff3
।
আপনি এই vimcast আরও তথ্য পেতে পারেন ।
yANK এবং pহিসাবে, যে কোনও প্লাগ-ইন বা অতিরিক্ত ফাংশন ছাড়া কাজ যদিও এটা সম্ভবত হয় করতে একটু কম সুবিধাজনক dgবাdp
অভিভাবক বাফারগুলি থেকে প্রয়োজনীয় বিটগুলি কেবল অনুলিপি করুন এবং মার্জ করা বাফারগুলিতে সঠিক স্থানে আটকে দিন। আপনি যদি পুরো জিনিসটি না দিয়ে কেবল একটি ডিফ ব্লকের অংশ চান তবে এটিও কার্যকর।
আপনার, কখনও কখনও, ভিমকে জোর করে ডিফারেন্সটি পৃথক করে আপডেট করতে বাধ্য করতে হবে :diffupdate
।
আপনি কেবল গিট সংঘাতের চিহ্নিতকারীগুলির সাহায্যে লাইনগুলি মুছতে পারেন। নিম্নলিখিত দুটি পদ্ধতি শুরু হওয়া সমস্ত লাইন মুছে ফেলবে:
<<<<<<<
=======
>>>>>>>
পদ্ধতি 1: ম্যানুয়ালি একটি কমান্ড প্রবেশ করা এবং সম্পাদন করা
:g/^<\{7}\|^|\{7}\|^=\{7}\|^>\{7}/d
পদ্ধতি 2: ব্যবহারকারীর সংজ্ঞায়িত কমান্ড প্রয়োগ করা
"Delete all Git conflict markers
"Creates the command :GremoveConflictMarkers
function! RemoveConflictMarkers() range
echom a:firstline.'-'.a:lastline
execute a:firstline.','.a:lastline . ' g/^<\{7}\|^|\{7}\|^=\{7}\|^>\{7}/d'
endfunction
"-range=% default is whole file
command! -range=% GremoveConflictMarkers <line1>,<line2>call RemoveConflictMarkers()
ভিম ডিফেজেট এবং ডিফুপুট কেবল একটি শাখা বা অন্যটি চয়ন করবে। সুতরাং উপরে বর্ণিত বিষয় ব্যতীত কেবলমাত্র আসল সমাধান হ'ল ম্যানুয়ালি ইয়াঙ্ক করা এবং উভয় ফাইল থেকে ওয়ার্কিং কপিটিতে আটকানো।