আমি যে পরিবর্তনগুলি করেছি বা না করেছি তা নিরাপদে কীভাবে পূর্বাবস্থায় ফেরাতে পারি?


12

আমি প্রায়শই ভুল উইন্ডোটিকে কেন্দ্র করে টাইপ করার ভুলটি করি (এবং ইউএসবি প্রমাণীকরণকারীর সাহায্যে এটি কয়েকবার করেছি)। প্রচুর হটকি সক্ষম হওয়া প্রোগ্রামগুলিতে (জিমেইল, ভিএলসি, ভিম), এটি প্রায়শই অযাচিত পরিবর্তনগুলি করার অযৌক্তিক পরিণতি অর্জন করে।

আমি মাঝে মাঝে আমার পদক্ষেপগুলি সনাক্ত করতে পারি এবং যেকোন পরিবর্তনগুলি পুনরুদ্ধার করতে আমি টাইপ করে যা মনে করতে পারি বা যদি নিজেকে তাড়াতাড়ি ধরতে পারি তবে আমি যে টুইটগুলি টিক করেছি সেগুলি ফিরিয়ে আনতে পারি। দুর্ভাগ্যবশত, যে সবসময় না।

ভিমে, আমার কাছে সহজেই পূর্বাবস্থায় ফিরে আসা একটি পাঠ্য লাইনের পরিবর্তন করার মতো নির্দোষ এবং আপাত কিছু থাকতে পারে something অথবা, আমি অজান্তেই এমন কিছু সংশোধন করতে পারি যা এত সহজে চিহ্নিত করা যায় না। যদি আমি দুর্ঘটনাক্রমে ভিমে অনাকাঙ্ক্ষিত কমান্ডগুলির ক্রম টাইপ করি, তবে আমি কীভাবে কোনও সম্পাদনা বা সেটিংসে পরিবর্তনগুলি পূর্বাবস্থায় ফিরিয়ে আনতে পারি?


1
আপনি কি "রিভার্ট" ক্রিয়া খুঁজছেন? :e!তা করতে হবে
জ্যাসপার

1
আমি মনে করি :e!যদি আপনি শেষ সঠিক অবস্থার পরে সংরক্ষণ না করে থাকেন তবে আপনি খারাপ হবেন এবং uআপনি যদি গুচ্ছ স্টাফ টাইপ করেন তবে অপর্যাপ্ত হতে পারে। (আপনি যদি টাইপ করেন date month, উদাহরণস্বরূপ, তবে আপনি একটি ট্যাগ মুছে u
ফেলতেন

1
@ ডাব্লুচারগিন uঅনুক্রমের অংশ হওয়ার কথা বলছেন না , মাঝখানে কিছু আনডো সম্পাদন করছেন।
yo '

উত্তর:


14

ডাকা

:undolist

আপনি পরিবর্তনগুলির শেষ সেটটি কখন করেছেন তা দেখতে। যদি এটি বলে যে কয়েকটি পরিবর্তন হয়েছে, যেমন, "3 সেকেন্ড আগে", এবং আপনি জানেন যে আপনি কেবল ইচ্ছাকৃতভাবে এটি পরিবর্তন করেছেন, বলুন, এক মিনিট আগে, তারপরে কার্যকর করুন

:earlier 10s

কাঙ্ক্ষিত অবস্থায় ফিরে যেতে। অন্যথায়, যদি সাম্প্রতিক কোনও পরিবর্তন না হয়, আপনাকে কিছু করতে হবে না।


আরও রেফারেন্স: :help undo-tree


4

প্রশ্নটির পুনঃব্যবহার করতে, আপনি কোনও ফাইলটিতে কী পরিবর্তন করেছেন সে সম্পর্কে দেখার বা অন্যথায় অবহিত করার একটি উপায় সন্ধান করছেন এবং তারপরে একটি পূর্বাবস্থায় ফিচারটি ব্যবহার করুন। অন্য কোনও উপায়ে বা প্লাগইন রয়েছে যা এটি সমর্থন করে। তবে আমি ব্যাখ্যা করব যা আমি একই উদ্দেশ্যে ব্যবহার করছি।

এটি সম্পন্ন করার জন্য আপনি বিদ্যমান ভিম বৈশিষ্ট্যটি একত্রিত করুন। উদাহরণস্বরূপ, আপনি একটি ফাংশন সংজ্ঞায়িত করতে পারেন যেমন:

" Function: View changes after the last save
function! s:DiffSinceSave()
  let filetype=&ft
  diffthis
  vnew | r # | normal! 1Gdd
  diffthis
  exe "setlocal bt=nofile bh=wipe nobl noswf ro ft=" . filetype
  exe "normal! ]c"
endfunction
com! DiffSaved call s:DiffSinceSave()

এরপরে আপনি এটিকে পরে কল করতে পারেন এবং একটি শর্টকাট কী মানচিত্র করতে পারেন।

" Map key to function: View changes after the last save
nnoremap <leader>? :DiffSaved<CR>

এটি একটি বিভক্ত উইন্ডো ভিত্তিক ডিফ ভিউ খুলবে যা আপনাকে সর্বশেষ সংরক্ষণের পর থেকে করা পরিবর্তনগুলি প্রদর্শন করবে। আপনি যে পরিবর্তনগুলি করেছেন তা সনাক্ত করার পরে, আপনি সেই দৃশ্যটি ছেড়ে দিতে পারেন এবং অন্যান্য ভিআইএম বৈশিষ্ট্যগুলি যেমন পূর্বাবস্থায় ফেরা এবং পূর্বাবস্থায় ফেলা ইত্যাদি ব্যবহার করতে পারেন বা প্লাগইনগুলি পূর্ববর্তী অবস্থায় ফিরে যেতে পারেন।

আমি বুঝতে পারি যে এটি আদর্শ নয় কারণ এটি কার্যকর হওয়ার জন্য আপনার একটি নির্দিষ্ট ধরণের ওয়ার্কফ্লো থাকতে হবে। তবে এটি মোটামুটি ভালভাবে কাজ করে। এবং আরও পাশাপাশি, আমরা কীভাবে ভিএম কাজ করে বা বাইরের কোনও কিছুর উপর নির্ভর করে তা পরিবর্তন করছি না।

আমি আশা করি তুমি এটার উপকারিতা খুঁজে পাবে। আমি এই সমাধানটি কিছুক্ষণ আগে ভিম উইকিয়া সহ ইন্টারনেটে পাওয়া স্নিপেটগুলি থেকে গ্রহণ করেছি। সুতরাং যে কোনও creditণ দেওয়ার জন্য যেখানে।


3

এটির সহজ উত্তরটি আমার কাছে মনে হয় আপনি চাপ uপরিবর্তন করতে চান না হওয়া পর্যন্ত টিপুন, তারপরে টিপুন Ctrl-R


0

@ সুজারজারের মতো, আমি আমার স্ট্যাটাসলাইনে uরেড [+]মার্কারটি অদৃশ্য হওয়া অবধি চাপতে থাকি।

set statusline=%f\ %#Error#%m%##

সর্বশেষে পরিবর্তন না করা অবস্থায় স্বয়ংক্রিয়ভাবে পূর্বাবস্থায় ফিরে আসার জন্য একটি কী থাকা ভাল। তবে :e!এটি একটি দুর্দান্ত সমাধান; এই দিনগুলি ভিম এমনকি আপনার পূর্ববর্তী ইতিহাসে "বাতিল" পরিবর্তনগুলি রাখবে।
জোয়েটউইল

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