ভিমের অবিরামের পূর্বাবস্থা ব্যবহার করছেন?


96

ভিম .3.৩-এ নতুন বৈশিষ্ট্যগুলির একটি হ'ল 'কনস্টিভেন্ট পূর্বাবস্থায়', যা বাফার থেকে বেরিয়ে যাওয়ার সময় অনট্রাট্রি ফাইলগুলিতে সংরক্ষণ করতে দেয়।

দুর্ভাগ্যক্রমে, আমি এটিকে যথাযথভাবে সক্ষম করতে সক্ষম হয়ে উঠিনি, বা আমার এটি অবশ্যই ভুল ব্যবহার করা উচিত। আমি এ পর্যন্ত চেষ্টা করেছি এখানে:

আমি নিম্নলিখিতগুলি ~ / .vimrc এ যুক্ত করেছি

set undofile                " Save undos after file closes
set undodir=$HOME/.vim/undo " where to save undo histories
set undolevels=1000         " How many undos
set undoreload=10000        " number of lines to save for undo

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

মন্তব্য:

  1. আমি ক্রিম প্রকল্প ছাড়াই ভিম থেকে ভিম 7.3 ব্যবহার করে উইন 7 এ আছি। অবিচ্ছিন্ন পূর্বাবস্থায় বেক-ইন করা হয়।

  2. File আমার ফাইল সিস্টেমে হোম / .vim / পূর্বাবস্থা বিদ্যমান


38
শুধু চাপ দেওয়ার জন্য, পয়েন্ট 2) খুব গুরুত্বপূর্ণ। তেজ আপনি এবং ক্রমাগত পূর্বাবস্থা করার জন্য ডিরেক্টরি তৈরি করতে হবে যতক্ষণ কাজ করবে নাmkdir ~/.vim/undo
PUK

4
+1 দুঃখিত, লিনাক্সে এটি কাজ করে ... আমাকে এ সম্পর্কে বলার জন্য ধন্যবাদ!
সিরো সান্তিলি 郝海东 冠状 病 六四 事件 法轮功

এই প্রশ্নের ভবিষ্যতে কোনো দর্শক জন্য: কি না undodir মান প্রায় কোট করা! আমি এই সমস্যার জন্য কিছু সময়ের জন্য আটকে গেলাম - এর চারপাশে উদ্ধৃতি ছাড়াই একটি পরম পহাত ব্যবহার করুন।
নাভাই

উত্তর:


51

এটি .vimrcতৈরি করতে আপনার undodirএটি রাখুন যদি এটি বিদ্যমান না থাকে এবং অবিচ্ছিন্ন পূর্বাবস্থাকে সক্ষম করে। উইন্ডোজ এবং লিনাক্স উভয় ক্ষেত্রেই পরীক্ষিত।

" Put plugins and dictionaries in this dir (also on Windows)
let vimDir = '$HOME/.vim'
let &runtimepath.=','.vimDir

" Keep undo history across sessions by storing it in a file
if has('persistent_undo')
    let myUndoDir = expand(vimDir . '/undodir')
    " Create dirs
    call system('mkdir ' . vimDir)
    call system('mkdir ' . myUndoDir)
    let &undodir = myUndoDir
    set undofile
endif

5
ডিরেক্টরিটি তৈরি করার পক্ষে এটি পছন্দনীয়::silent call system('mkdir -p ' . &undodir)
কাইল স্ট্র্যান্ড

4
আমি ব্যবহার &কারণ আমি বদলে এটা Ting। (আমার মনের মধ্যে মধ্যে এই পার্থক্য এবং । অনেক, অনেক, অনেক মন bogglingly ভয়াবহ Vimscript কিন্তু YMMV এর "অতিরিক্ত বৈশিষ্ট্যগুলিও উপস্থিত রয়েছে" এক)setundodirletletset
কাইলি স্ট্র্যান্ড

4
ধন্যবাদ কাইল, এটি .vimউপস্থিত না থাকলে তৈরি করা ভাল ধারণা । দুর্ভাগ্যক্রমে -pউইন্ডোজে পতাকাটি বিদ্যমান নেই তাই আমি mkdirউইন্ডোজ সামঞ্জস্যতা নিশ্চিত করতে দুবার কল করার উত্তর সম্পাদনা করেছি ।
ম্যাথিয়াস ব্রাউন

4
আহ। -pপতাকাটি ব্যবহারের জন্য আমার প্রাথমিক কারণটি হ'ল ডিরেক্টরি উপস্থিত থাকলে কোনও ত্রুটি এড়ানো। আমার কমান্ডটি একটি if has('win32')ব্লকের ভিতরে রয়েছে , তাই আমি কেবল উইন্ডোজ mkdirছাড়াই ব্যবহার করি -p
কাইল স্ট্র্যান্ড

4
কেন ব্যবহার mkdir()করবেন না ? তাহলে এটি হয়ে উঠতে পারে call mkdir(myUndoDir, 'p'):, যা এর মতো আচরণ করে mkdir -p
নেলস্ট্রোম

8

আমি আমার _gvimrc এ এটি চেষ্টা করেছি:

" Persistent undo
try 
    set undodir=C:\vim\undodir
    set undofile
catch
endtry

আমি চেষ্টা করা বন্ধনীটি মুছে ফেললে এটি বিজ্ঞাপন হিসাবে কাজ করা শুরু করে:

" Persistent undo
set undodir=C:\vim\undodir
set undofile

আমাকে ডিরেক্টরি তৈরি করতে হয়েছিল।


if has('persistent_undo')
আরেলাভ

silent !mkdir ~/.config/nvim/backups > /dev/null 2>&1
আরেলাভ

set undodir=~/.config/nvim/backups
আরেলাভ

4
endif"বার্তার দৈর্ঘ্য বাড়ানোর জন্য মন্তব্য করা বার্তা যুক্ত করা
আরেলাভ

3

আমি মনে করি $ হোম বিজ্ঞাপন হিসাবে কাজ করে না।

আমার সিস্টেমে, :echo $HOMEH: shows দেখায়, তবে : e $HOME/বলেছেন: ~/অবৈধ ফাইলের নাম।

এটি নিরাময় করে কিনা তা দেখার জন্য আপনি একটি নিখুঁত পথ দিয়ে চেষ্টা করতে পারেন


আমি | | প্রতিধ্বনি $ হোম | এবং |: e $ হোম / | সমস্যা ছাড়াই, তবে আমি যাইহোক জিনিস পরিবর্তন করার চেষ্টা করেছি। দেখে মনে হয়েছিল এটি অনেক সময় কাজ করে, অন্যের জন্য নয়। বিশেষত, যখন আমি আমার। / .Vimrc ফাইলটি সম্পাদনা করি তখন এটি কখনই ব্যাকআপগুলি সংরক্ষণ করে না।
ডাকওয়ার্থড

উইন্ডোজ 7 এ আমি ব্যবহার করছি $TEMP। আমি যখন তাকান set undodir?এটি দেখায় ~/AppData/Local/Temp। পূর্বাবস্থা ফিরিয়ে দেওয়া ফাইলটি স্থির থাকে এবং নিজেকে সঠিকভাবে লোড করে। $TEMPআরও নির্ভরযোগ্য হতে পারে ?
স্ল্যাভেক

1

এটি এখন প্রত্যাশার মতো কাজ করে: file.txtউইন্ডোজ :setlocal undofileon- তে একটি ভিম 7.৪ বাফারে খুলুন , তারপরে বাফারে একটি পরিবর্তন সংরক্ষণ করুন এবং আনডোফাইলটি .file.txt.un~পাশাপাশি তৈরি করা হবে কারণ :set undodir?"Undodir =" বলে প্রতিবেদন করা হয়েছে। ডিফল্টরূপে - অর্থাৎ ম্যানুয়ালি এটি নির্দিষ্ট করার দরকার নেই। আপনি :set undofileএকটি মডেলিনেও পারেন।


0

আপনি যদি% TEMP%। (ফাইলের নাম) .un looking সন্ধান করছেন তবে আপনি এটি পাবেন না

ফাইলের নামটি সি %% ব্যবহারকারী %% (ব্যবহারকারীর নাম)% _ ভিআমরিসি হবে line

কেন আমি জানি না

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