ভিমের একাধিক উদাহরণের মধ্যে কমান্ডের ইতিহাসটি কীভাবে সমাধান করা হয়?


15

ভিম প্রাক্তন কমান্ডগুলির একটি ইতিহাস রাখে (এর মাধ্যমে অ্যাক্সেসযোগ্য :এবং q:) এবং সেই ইতিহাসটি প্রস্থান করার পরেও স্থির থাকে।

আমি যদি ভিমের একাধিক উদাহরণ (একই ব্যবহারকারীর, একই হোম ডিরেক্টরি) চালনা করি, তবে কীভাবে কমান্ডের ইতিহাসের মধ্যে ভিম সালিসি করবে? দেখে মনে হচ্ছে জয় থেকে প্রস্থান করার শেষ প্রক্রিয়াটি। সমস্ত দৃষ্টান্তের কমান্ডের ইতিহাস রাখার কোনও উপায় আছে কি?


1
সত্যি? এই ইতিহাস আমার জন্য ত্যাগ করার পরে স্থির হয় না। (তেজ 7.4.52, উবুন্টু 14.04)
Doorknob

3
@ ডুরকনব আপনার ~/.viminfoনিজের মালিকানাধীন কিনা তা নিশ্চিত করুন । লোকেদের চালানোর জন্য একটি সাধারণ ভুল হ'ল sudo vim ...যা আপনি যদি আগে নিজের ব্যবহারকারী হিসাবে ভিআইএম না চালিয়ে থাকেন তবে ~/.viminfoমূল হিসাবে তৈরি করবে । যদি সমস্যা হয় তবে আমি সুবিধাজনক ফাইলগুলি ব্যবহার করতে sudoeditবা sudo -eসম্পাদনা করতে শেখাব
জামেসান

@ জামেসান হুহ, এটি সম্ভবত সমস্যা ছিল বলে মনে হয়; chownআমার .viminfo আমার কাছে ফিরে এটি ঠিক করে। (কীভাবে এর মালিকানাটি রুটে পরিণত হয়েছিল তা নিশ্চিত নয়, যেহেতু আমি সর্বদা ব্যবহার করেছি sudoeditতবে ওহ ভাল well)
ডোরকনব

উত্তর:


10

আপনার শিরোনাম প্রশ্নের উত্তর হ'ল আপনি যা পর্যবেক্ষণ করেছেন। ভিএম ব্যবহারকারী ম্যানুয়াল থেকে:help 21.3

আপনি যখন একাধিকবার ভিম চালাবেন, সর্বশেষ প্রস্থানকারী তার তথ্য সংরক্ষণ করবে। এটি এমন তথ্যের কারণ হতে পারে যা পূর্বে সঞ্চিত ভিমগুলি হারিয়ে যেতে পারে। প্রতিটি আইটেম শুধুমাত্র একবার মনে রাখা যেতে পারে।

যাইহোক, viminfo ফাইলের ফাইলের নাম (যেখানে কমান্ডের ইতিহাস সংরক্ষণ করা হয়, বৈশ্বিক চিহ্নগুলির মতো অন্যান্য বিষয়গুলির মধ্যে এবং যদি কনফিগার করা থাকে তবে বিষয়বস্তুগুলি রেজিস্টার করে) পরিবর্তনযোগ্য! এর অর্থ আপনি বিভিন্ন প্রকল্প বা ভিএম এর উদাহরণগুলির জন্য আলাদা 'ইতিহাস' সেটআপ করতে পারেন। ধরে নিই যে আপনি প্রতি প্রকল্পে একাধিক ভিম ইনস্ট্যান্স চালাচ্ছেন না, ভিআইএমআরএফ (বা অন্য প্রকল্পের সেটিংস প্লাগইন) এর মাধ্যমে ভিিমিনফো ফাইল নাম পরিচালনা করা এটি পরিচালনা করার দুর্দান্ত উপায়।

বিকল্প viminfo ফাইল সেটআপ করুন

প্রকল্প স্তরের পরিচালনার জন্য, আমরা আপনার ভাইমিনফোকে অন্য কোনও ফাইলে সংরক্ষণ করতে ভিএমকে কনফিগার করতে চাই। এটি প্রস্থান করার আগে একটি চলমান ভিমে করা যেতে পারে, বা আপনার ভিআরসিআরসি দ্বারা উদাহরণস্বরূপ, আপনার ভিএমআরসিতে লাইন থাকতে পারে যা কোনও প্রকল্পের অন্তর্গত হিসাবে কোনও নির্দিষ্ট ডিরেক্টরি সনাক্ত করে।

:set viminfo+=nPath/to/custom/viminfofile

ডিরেক্টরিটির ভিত্তিতে ভিএমআরসি স্বয়ংক্রিয়ভাবে সেট করার একটি উদাহরণ:

 if getcwd() == "/projects/projA"
     set viminfo+=n~/.viminfo-projA
 endif

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

প্রারম্ভকালে একটি বিকল্প ভিমনফো লোড করুন

প্রকল্পের পর্যায়ে এটি পরিচালনা না করে আপনি যেখানে নিজের ইতিহাসটি সংরক্ষণ করতে এবং পরে এটি লোড করতে চান সেই ক্ষেত্রে এটি ভাল।

প্রথমে ইতিহাসটি সংরক্ষণ করার জন্য, আপনি প্রস্থান করার আগে উপরের মত ভিমনফো বিকল্পটিতে যুক্ত করুন। তারপরে ইতিহাসটি লোড করতে, -i বিকল্পের সাথে vim চালু করুন

vim -i Path/to/custom/viminfofile

আপনি যদি ভিিমিনফো ফাইলটি সংরক্ষণ করতে ভিএম থেকে প্রস্থান করতে না চান তবে আপনি :wv( :wviminfo) ব্যবহার করতে পারেন । এটি উপরের এন সেটিং অনুসারে ভিআইএম প্রস্থান না করে viminfo ফাইল সংরক্ষণ করে। এবং, আপনি :wv SomeOtherFileএমন কোনও জায়গায় সংরক্ষণ করতেও পারবেন যা ভিমনফো বিকল্পের সেটিংয়ের মতো নয়। প্রস্থান করার সময় ফাইলের নাম সেট করার চেয়ে এটি আরও সুবিধাজনক হতে পারে, তবে একবার প্রস্থান করার পরে ডিফল্ট ফাইলটি ব্যবহার করা থেকে ভিআইএম থামায় না।

উদাহরণস্বরূপ, প্রথম ভিমে:

:wv ~/customInfo

এবং দ্বিতীয় টার্মিনালে:

vim -i ~/customInfo

অথবা, যদি ইতিমধ্যে একটি দ্বিতীয় ভিআইএম চলমান থাকে এবং আপনি ভিিমিনফো লোড করতে চান:

:rv ~/customInfo

মনে রাখবেন :wvএবং :rvফাইলটির নাম পরিবর্তন করবেন না ভিআইএম প্রস্থান করার সময় সংরক্ষণ করবে না বা প্রারম্ভকালে ফাইলটির নাম পড়বে।

অতিরিক্ত তথ্য

এর বিবরণ set viminfo+=nSomePath: আমরা নামের বিকল্পটি সামঞ্জস্য করতে সেট কমান্ডটি ব্যবহার করি viminfo+=ইঙ্গিত আমরা বিকল্প না পরিবর্তন সবকিছু যোগ করতে চাই। আমরা nবিকল্পটি যুক্ত করব যা ভিমনফোর জন্য ফাইলের নাম নির্দিষ্ট করে। অবিলম্বে পরে nআমরা আছে SomePathযা viminfo সংরক্ষণের জন্য ব্যবহৃত ফাইলের নাম হতে হবে।

wv( :help wv) এর জন্য ডকুমেন্টেশন ইঙ্গিত দেয় যে এই আদেশটি প্রথমে viminfo ফাইলটি পড়বে, তারপরে পুরানো এবং নতুন তথ্যের মধ্যে মার্জ হবে। এখনও এই ক্ষেত্রে মার্জটি কীভাবে কাজ করে সে সম্পর্কে আমার কাছে কোনও তথ্য নেই তবে আমি অনুমান করি যে এটি অজানা ফাইল এবং রেজিস্টারের জন্য চিহ্ন রাখে যা বর্তমান সেশনে সেট করা নেই।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.