আমি কীভাবে একবারে সমস্ত বাফার পুনরায় লোড করতে পারি?


20

ইন কোনও বৈশিষ্ট্য শাখায় কাজ করার সময় git, আমাকে প্রায়শই মূল শাখায় বাগ ফিক্স করার জন্য আমার পরিবর্তনগুলি লুকিয়ে রাখতে হবে। আমি যখন পরিবর্তনগুলি নিয়ে কাজ করে যাচ্ছি, আমি git stash pop, যা ফাইলগুলিতে টাইমস্ট্যাম্পগুলি আপডেট করে।

ফাইলগুলি অভিন্ন হলেও, পরবর্তী সময় সংরক্ষণের চেষ্টা করার পরে, আমি পাই:

সতর্কতা: ফাইলটি পড়ার পরে ফাইলটি পরিবর্তন করা হয়েছে !!!

আপনি কি সত্যিই এটিতে লিখতে চান (y / n)?

আমি যখনই ডিস্কে পরিবর্তিত হয় তখনই আমি স্বয়ংক্রিয়ভাবে ফাইলটি পুনরায় লোড করতে চাই না git stash pop

এখনই, আমি স্বতন্ত্রভাবে প্রতিটি বাফার পুনরায় লোড করি ( :e)। আমি এক আদেশে এটি করার কোনও উপায় আছে কি?

উত্তর:


26

আপনি :help bufdoযা করতে চান তা দেখুন । এটি বাফার তালিকার প্রতিটি বাফারে একটি কমান্ড কার্যকর করবে। উদাহরণ স্বরূপ:

:bufdo e

কমান্ড :help noconfirmজারির আগে আপনি নিশ্চয়তা ডায়ালগটি অক্ষম করতে চানbufdo

:set noconfirm

এবং bufdoকমান্ড পরে এটি পুনরায় চালু ।

:set confirm

1
বল করার জন্য, দেখুন: :bufdo! e
কেনারব

এবং স্ক্রিনে বার্তা মুদ্রণ ছাড়াই: নীরব! বুফডো ই
ওয়ার্নার

12

আপনি :checktimeকমান্ড দিয়ে এটি করতে পারেন । দস্তাবেজগুলি থেকে :

:checkt[ime]        Check if any buffers were changed outside of Vim.
                    This checks and warns you if you would end up with two
                    versions of a file.

কমান্ডটি আপনাকে জিজ্ঞাসা করবে যে প্রতিটি বাফার ফাইলের জন্য কী করা উচিত যার ফাইলটির পরিবর্তিত টাইমস্ট্যাম্প রয়েছে। পরিবর্তিত হয়নি এমন ফাইলগুলির জন্য এটি অক্ষম করতে আপনি :set autoreadভিমকে কেবল পুনরায় লোড করতে বাধ্য করতে পারেন । ভিএম আপনাকে জিজ্ঞাসা করবে বাফার এবং ডিস্কে থাকা ফাইলের মধ্যে লিখিত সামগ্রীগুলি পরিবর্তন হয়েছে কিনা।

ব্যবহারের সহজতার জন্য আপনি নীচের মতো মানচিত্র সেটআপ করতে পারেন:

nnoremap <F5> :checktime<CR>

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

এটি সত্যিই সহায়ক! আমি শেষ পর্যন্ত যা করেছি তা হ'ল এই কমান্ডটি আমার ট্যাব স্যুইচিং শর্টকাটগুলির অংশ হিসাবে একীভূত করা। যেমনnnoremap tl :tabnext<CR>:checktime<CR>
cr8ivecodesmith

1
@ টোকয়ামি, আপনার বৈশিষ্ট্যটি ইভেন্টের gvimসাথে সম্পর্কিত হতে পারে । আপনি এখানে কিছু সম্পর্কিত তথ্য পেতে পারেন - unix.stackexchange.com/a/383044/99801FocusGainedvim
ভিক্টর ইয়ারেমা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.