উইন্ডোজ 7 এ ভিমডিফ (7.4) চালানো যায় না


29

আমি সম্প্রতি একটি উইন্ডোজ 7 মেশিনে জিভিমের 7.4 সংস্করণ ইনস্টল করেছি। উইন্ডোজ এক্সপ্লোরারে কনটেক্সট-সেনসিটিভ মেনু থেকে দুটি ফাইল আলাদা করার চেষ্টা করে আমি ত্রুটির বার্তা পেয়ে যাচ্ছি:

E810: টেম্প ফাইলগুলি পড়তে বা লিখতে
পারে না E97: ভিন্নতা তৈরি করতে পারে না

দুটি নির্বাচিত ফাইল দ্বি-ফলক জিভিম ভিউতে খোলা হয়েছে এবং সম্পাদকটি ডিফ মোডে রয়েছে বলে মনে হচ্ছে, তবে প্রকৃত পার্থক্য হাইলাইট করা হয়নি।

%TEMP%এবং %TMP%বিভিন্ন পরিবেশের একটি বৈধ ডিরেক্টরির নাম দিয়ে জনবহুল করছে।

নিয়মিত জিভিম সেশনে ফাইলগুলি খোলার সময় এবং :diffthisকমান্ড প্রম্পটে টাইপ করার সময় আমি একই প্রতিক্রিয়া পাই ।

এটি ভিম .3.৩ এর সাথে সঠিকভাবে কাজ করত, তবে দেখে মনে হয়েছিল যে v7.4-তে কোনও কিছু পরিবর্তিত হয়েছে।

আমি কীভাবে দুটি ফাইলকে আলাদা করতে পারি?

উত্তর:


45

এই সমস্যাটি উইন্ডোজে ইনস্টলার দ্বারা তৈরি ডিফল্ট _vimrc ফাইলের কারণে ঘটতে পারে। আপনি যদি এখনও সেই ডিফল্ট ফাইলটি ব্যবহার করেন, বা যদি আপনি এটি কোনও সময়ে অনুলিপি করেন তবে আপনি diffexprবিকল্পটিতে যে কাজটি অর্পণ করেছেন তা পরীক্ষা করে দেখুন । উইম 7.৩ থেকে 7.৪ এর মধ্যে একটি প্যাচ উইন্ডোজে cmd.exe শেলের জন্য নতুন ডিফল্ট উদ্ধৃতি বিধি চালু করেছে। এই প্যাচটি প্যাচ দ্বারা সমাধান করা একই সমস্যাটি সমাধানের জন্য ডিজাইন করা মাইডিফ () ফাংশনটিতে কার্যতালিকা ভেঙেছে।

মাইডিফ () ফাংশনটি ইনস্টলারটি ঠিক করে 7.4.103 সংস্করণে স্থির করা হয়েছিল। এখানে মাইডিফ () ফাংশনটি রয়েছে যা সর্বশেষতম ইনস্টলারটি আপনার জন্য তৈরি করবে যদি আপনি কেবল এটির _vimrc এ অনুলিপি করতে চান:

 function MyDiff()
   let opt = '-a --binary '
   if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
   if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
   let arg1 = v:fname_in
   if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
   let arg2 = v:fname_new
   if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
   let arg3 = v:fname_out
   if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
   if $VIMRUNTIME =~ ' '
     if &sh =~ '\<cmd'
       if empty(&shellxquote)
         let l:shxq_sav = ''
         set shellxquote&
       endif
       let cmd = '"' . $VIMRUNTIME . '\diff"'
     else
       let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
     endif
   else
     let cmd = $VIMRUNTIME . '\diff'
   endif
   silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3
   if exists('l:shxq_sav')
     let &shellxquote=l:shxq_sav
   endif
 endfunction

আপনি আপনার সম্পূর্ণ সংস্করণটি ভার্সনটি আদেশ :versionবা :introকমান্ডগুলি ব্যবহার করে বা স্টার্টআপে স্প্ল্যাশ স্ক্রিনে দেখতে পাবেন।

দুর্ভাগ্যক্রমে আপনি যদি কোনও অফিশিয়াল ইনস্টলার চান, আপনার হয় হয় 8.0 অবধি অপেক্ষা করতে হবে, বা একটি নাইট বিল্ড ইনস্টল করতে হবে । তবুও, আপনি অন্য জায়গা থেকে ভিম ইনস্টল করতে পারেন বা নিজের ভিম তৈরি করতে পারেন ।


স্ট্যাক ওভারফ্লোতে অনুলিপি করা হয়েছে (অস্বাভাবিকভাবে, উভয় সাইটে অন-টপিক), যদি এই উত্তরটি আপডেট হয় তবে অন্যটিও উচিত।


1
তখন নেটটিতে কয়েকটি সমাধান পাওয়া গেছে, তবে এটিই কেবল আমার জন্য কাজ করেছিল!
ysap

বিটিডাব্লু - আপনি কীভাবে সাব-সংস্করণটির # টি বলতে পারেন (উদাঃ 7.4.103)?
ysap

তিনটি উপায়: একটি খালি বাফার উপর প্রারম্ভ প্যাচ স্তর সহ সংস্করণ সম্পর্কিত তথ্য দেখায়, :introকমান্ড একই পাঠ্যটি দেখায়, এবং :versionকমান্ডটি "অন্তর্ভুক্ত প্যাচগুলি" লাইনে তথ্য দেয়। :versionএছাড়াও অন্তর্ভুক্ত বা বাদ দেওয়া বৈশিষ্ট্যগুলির একটি খুব বিস্তারিত তালিকা দেয়।
বেন

1
এছাড়াও, ব্রাম প্রাথমিক ক্ষুদ্র সংস্করণ যেমন 7.4.0 এর পরে কোনও অফিসিয়াল ইনস্টলার ইনস্টল করে না। কিন্তু স্থান প্রচুর আরো একটি সাম্প্রতিক তেজ জন্য একটি ইনস্টলার পেতে যদি আপনি কম্পাইল মত মনে হয় না আছে, প্রায়শই সম্ভবত এখানে হচ্ছে উদাহৃত sourceforge.net/projects/cream/files/Vim
বেন

1
@ আমি বিষয়টি স্থির করেছি, এটি অন্যরকম কারণ হয়ে দাঁড়িয়েছিল এবং আমি MyDiff()উইন্ডোতে ভিএম ব্যবহার করার সময় এটি ব্যবহার করার মতো কিছু হতে ভুল বুঝেছিলাম, তবে এটি সেন্টিমিটারের মাধ্যমে ভিএম ব্যবহার করার জন্য, আমি গিট ব্যাশের মাধ্যমে ভিম ব্যবহার করছি। ধন্যবাদ.
ক্যাপ্টেন ম্যান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.