কেন ভিম একটি ~ এক্সটেনশন দিয়ে ফাইলগুলি সংরক্ষণ করে?


179

আমি খুঁজে পেয়েছি যে উইন্ডোজ ভিমে উইম ব্যবহার করার সময় ফাইলটি সংরক্ষণ করে, .ext.swpভিম উইন্ডোটি বন্ধ করার পরে মুছে ফেলা একটি .ext~ফাইল এবং একটি ফাইল।

আমি ধরে নিই যে .ext.swpভিম ক্রাশ হওয়ার পরে ফাইলটি একটি সেশন ব্যাকআপ। .ext~তবে ফাইলটির উদ্দেশ্য কী ? এটি কি স্থায়ী ব্যাকআপ ফাইল? আমি এই নকলগুলি ছাড়াই আমার হোস্টে যে সমস্ত ফাইল নিয়ে কাজ করছি সেগুলি অনুলিপি করার কারণে এটি বিরক্তিকর। আমি কীভাবে এটি বন্ধ করতে পারি বা এটি যদি কোনও ভাল কারণে থাকে তবে ফাইলগুলি লুকান ?


আপনার যদি একাধিক জায়গায় একসাথে কোনও ফাইল খোলা থাকে তবে তারা একটি তৈরি করবে .ext.swp
dirkgently

2
dirkgently: না, এখানে আমি একমাত্র ভিআইএম উইন্ডোতে একটি ফাইল খুলতে পারি এবং এটি .swp ফাইলটি তৈরি করবে। আমি যখন উইন্ডোটি সংরক্ষণ / বন্ধ করি তখন তা সরিয়ে ফেলা হয় না বলে আমি খুব বেশি হতাশ হই না।
রস 18

উত্তর:


220

*.ext~ফাইলটি একটি ব্যাকআপ ফাইল, ফাইল ধারণকারী হিসাবে এটি ছিল আগে আপনি এটা সম্পাদিত হয়।

*.ext.swpফাইল সোয়াপ ফাইল, যা একটি লক ফাইল হিসেবে কাজ করে এবং পূর্বাবস্থা / পুনরায় করুন ইতিহাস সেইসাথে অন্য কোন অভ্যন্তরীণ তথ্য তেজ চাহিদা থাকে। ক্রাশের ক্ষেত্রে আপনি নিজের ফাইলটি পুনরায় খুলতে পারবেন এবং ভিম তার আগের অবস্থাটি অদলবদল ফাইল থেকে পুনরুদ্ধার করবে (যা আমি সহায়ক মনে করি, তাই আমি এটিকে স্যুইচ অফ করি না)।

ব্যাকআপ ফাইলগুলির স্বয়ংক্রিয় তৈরি বন্ধ করতে, (আপনার ভিআইআরসিআর মধ্যে) ব্যবহার করুন:

set nobackup
set nowritebackup

যেখানে nowritebackupভিমের ডিফল্ট "সংরক্ষণ" আচরণ পরিবর্তন করে, যা হ'ল:

  1. নতুন ফাইলে বাফার লিখুন
  2. মূল ফাইলটি মুছুন
  3. নতুন ফাইলটির নতুন নাম দিন

এবং ভিমকে আসল ফাইলে বাফারটি লিখতে বাধ্য করে (যার ফলে এটি আই / ও ত্রুটির ক্ষেত্রে এটি ধ্বংস করার ঝুঁকির ফলে)। তবে আপনি উইন্ডোজ ডেস্কটপে "জাম্পিং ফাইলগুলি" এর সাথে আটকাতে পারেন, এটি আমার কাছে থাকার প্রাথমিক কারণ nowritebackup


7
+1 এর জন্য you prevent "jumping files" on the Windows desktop। গুগল করা হয়েছে এবং এই উত্তরটি খুঁজে পেয়েছে
মের্লিন মরগান-গ্রাহাম ২৮'১১

1
আসলে - না আমি উভয় আছে nobackupএবং nowritebackup? ব্যাকআপ হিসাবে ফাইলের একটি অনুলিপি লেখার কোনও উপায় আছে, তবে কি এই লিখিতভাবে / মুছুন / নাম পরিবর্তন করে না?
মের্লিন মরগান-গ্রাহাম

@ মেরলিন: আপনার যদি backup(এর বিপরীতে nobackup) থাকে তবে ভিম একটি ব্যাকআপ ( *.ext~ফাইল) তৈরি করবে । এটি সম্পূর্ণরূপে সম্পর্কিত নয় nowritebackup
তোমালক

6
একটি টেবিল সেই সুইচ সমন্বয় মধ্যে পার্থক্য আচরণ বর্ণনা নেই: help backup-table। এটি সক্রিয় আউট সেটিং তন্ন তন্ন nobackupনা nowritebackup, কিন্তু এর পরিবর্তে সেটিং backupcopy=yesএছাড়াও "জাম্পিং" সমস্যা solves। এটি পারফকে আঘাত করতে পারে, যদিও তাদের নিজস্ব হিসাবে
মার্লিন মরগান-গ্রাহাম

27
অফ করার পরিবর্তে set backupdir=~/.vim/backupউইন্ডোতে .vimrc বা _vimrc এর ডিরেক্টরিতে ব্যাকআপ দিন
tsukimi

223

আমি মনে করি আরও ভাল সমাধান হ'ল আপনার লিমিটেড ফাইলটিতে এই লাইন স্থাপন করা

set backupdir=~/vimtmp//,.
set directory=~/vimtmp//,.

প্রথম লাইনটি ব্যাকআপ ফাইলের জন্য, দ্বিতীয় লাইন অদলবদলের জন্য। শেষে ডাবল স্ল্যাশ নিশ্চিত করে যে দুটি ফাইল একই নামে থাকার ক্ষেত্রে কোনও দ্বন্দ্ব নেই, মন্তব্য দেখুন (এই সম্পাদনার সময় এই বিকল্পটি কেবল স্ব্যাপ ফাইলগুলির জন্য সম্মানিত, এখনও ব্যাকআপ ফাইলের জন্য নয় )। ,.অনুমতি vimবর্তমান ডিরেক্টরি ব্যবহার হলে সাবেক অস্তিত্ব নেই।

এটি কাজ করার জন্য আপনাকে নিজের হোম ডিরেক্টরিতে একটি ডিরেক্টরি তৈরি করতে হবে যা ভিমটম্প বলে। এছাড়াও, আপনার কনফিগারেশনে ব্যাকআপগুলি সক্ষম হয়েছে set backupকিনা তা পরীক্ষা করুন ( না থাকলে যোগ করুন )।

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


22
+1 আমি আসলে আমার ~ / .vim / tmp এ সেট করেছি তবে যেভাবেই হোক না কেন এটি আমার গাধাটিকে একাধিক অনুষ্ঠানে বাঁচিয়েছে।
জে সি ইয়ামোকস্কি

11
তোমার কেন দরকার ,. প্রতিটি লাইনের শেষে?
শনি

9
@ শিন ভিম প্রথম উপলব্ধ দির ব্যবহার করবে, সুতরাং এই ক্ষেত্রে যদি ~ / vimtmp উপস্থিত না থাকে তবে এটি বর্তমান কার্যকারী ডিরেক্টরিটি ব্যবহার করবে
xixixao

3
@ স্যালম্যানপিকে একটি আদর্শ বিশ্বে আপনার কনফিগারেশন ফাইলগুলি সরাসরি পাবলিক অ্যাক্সেসযোগ্য সার্ভারগুলিতে সম্পাদনা করা উচিত নয়
স্কোর_উন্ডারে

12
পথের শেষে দুটি স্ল্যাশ ব্যবহার করুন। উদাহরণস্বরূপ, ডিরেক্টরি শেষে ব্যাকআপডির = ~ / .vim / .backup // সেট করুন - "//" এর অর্থ ফাইলের সম্পূর্ণ ফাইল থেকে সমস্ত পাথ বিভাজনকারী শতাংশের পরিবর্তে "%" প্রতিস্থাপন করা হবে " চিহ্ন. এটি সংরক্ষণ ডিরেক্টরিতে ফাইলের নামের স্বতন্ত্রতা নিশ্চিত করবে।
হ্যাকনিটলি

25

এই ফাইলগুলি বন্ধ করতে, কেবলমাত্র .vimrc (ইউনিক্স ভিত্তিক ওএসের ভিম কনফিগারেশন ফাইল) এ এই লাইনগুলি যুক্ত করুন:

set nobackup       #no backup files
set nowritebackup  #only in case you don't want a backup file while editing
set noswapfile     #no swap files

12
:set nobackup 

ব্যাকআপ বন্ধ হবে। আপনি যদি এখনও সেই ব্যাকআপ ফাইলগুলি চান তবে একটি কেন্দ্রীয় ফোল্ডারে চাইলে আপনি একটি ব্যাকআপডির সেটও করতে পারেন। এইভাবে আপনার কাজের দির ~ ফাইলগুলিতে লিখিত হয় না।

আপনি নীচে ব্যাকআপগুলিতে আরও তথ্য সন্ধান করেন : তিনি ব্যাকআপ


11

এবং আপনি একটি পৃথক ব্যাকআপ এক্সটেনশানও সেট করতে পারেন এবং সেই ব্যাকআপগুলি কোথায় সংরক্ষণ করতে হবে (আমি ~/.vimbackupsলিনাক্সকে পছন্দ করি )। আমি "সংস্করণযুক্ত" ব্যাকআপগুলি ব্যবহার করতাম, এর মাধ্যমে:

au BufWritePre * let &bex = '-' . strftime("%Y%m%d-%H%M%S") . '.vimbackup'

এটি একটি গতিশীল ব্যাকআপ এক্সটেনশন সেট করে ( ORIGINALFILENAME-YYYYMMDD-HHMMSS.vimbackup)।


3
আপনি অন্তর্ভুক্ত কিভাবে ডিরেক্টরির ব্যাক আপ সেট আপ করতে চাইতে পারেন, অর্থাত নির্বাণ set backupdir=~/.vimbackupsআপনার ~ / .vimrc মধ্যে
rampion

1
ভিএম সাহায্য এই কৌশলটি সম্পূর্ণরূপে বর্ণনা করে। দেখুন:help backupext
নেটজেফ

8

আপনার এই লাইনটি রাখুন vimrc:

set nobk nowb noswf noudf " nobackup nowritebackup noswapfile noundofile


ভিতরে যে হবে:

C:\Program Files (x86)\vim\_vimrc

সমস্ত ব্যবহারকারীদের জন্য সিস্টেম-ব্যাপী ভিআইএম কনফিগারেশনের জন্য ফাইল।

সম্পাদনার পরে টিল্ডা ফাইলগুলি noundofileরোধ করতে উইন্ডোজে সর্বশেষ *~সেটটি করা গুরুত্বপূর্ণ ।


আমি ভিম ডিফল্টরূপে এই লাইন অন্তর্ভুক্ত ছিল চাই। কেউ কুৎসিত ডিরেক্টরি পছন্দ করে না।

ব্যবহারকারীকে প্রথমে উন্নত ব্যাকআপ / পূর্বাবস্থায় ফিরিয়ে আনতে চান কিনা তা ব্যবহারকারীকে চয়ন করতে দিন।

এটি ভিমের সবচেয়ে বিরক্তিকর অংশ।

পরবর্তী পদক্ষেপটি সেট আপ করা হতে পারে:

set noeb vb t_vb= " errorbells visualbell

বীপিং নিষ্ক্রিয় করতে যেমন :-)


এই জন্য আপনাকে অনেক ধন্যবাদ! "নোন্ডোফাইল" হ'ল এমন বিকল্প যা অবশেষে godশ্বর -ভয়ঙ্কর জঞ্জাল থেকে মুক্তি পেয়েছিল। (এবং আমি আপনার পোস্টে যা লিখেছেন তার সাথে 100% সম্মত!)
pwmusic

6

আপনি ঠিক বলেছেন যে .swpফাইলটি লকিংয়ের জন্য এবং পুনরুদ্ধারের ফাইল হিসাবে ভিএম দ্বারা ব্যবহৃত হয়।

আপনি set nobackupযদি এই ফাইলগুলি না চান তবে আপনার ভিএমআরসি লাগানোর চেষ্টা করুন । আপনি যদি পুরো স্কুপটি চান, বা এর পরিবর্তে .bak ফাইল রাখতে চান তবে বিভিন্ন ব্যাকআপ সম্পর্কিত বিকল্পগুলির জন্য ভিম ডক্স দেখুন See


লক ফাইল হিসাবে উদ্দেশ্য উল্লেখ করার জন্য +1। আমি এটা ভাবিনি।
তোমালাক

5

আমার জন্য একমাত্র বিকল্পটি কাজ করেছিল আমার লাইনটি আমার। / .Vimrc ফাইলে রাখা

Noundofile সেট করুন

ব্যাকআপ ফাইলগুলি উল্লেখ করে অন্যান্য বিকল্পগুলি টেম্প ফাইলগুলি) (টিলড) এ শেষ হওয়া আটকাতে পারেনি


এই অবশেষে আমার জন্য কাজ করে। অন্যান্য উত্তরে কেন এটি উল্লেখ করা হয়নি? এটি অপসারণ করে: .<filename>.un~ফাইলগুলি অপসারণ করে যখন অন্য বিকল্পগুলি কেবল <filename>~ফাইলগুলি সরিয়ে দেয় ।
জেএলটি

0

আমাকে set noundofile~ _gvimrc এ যোগ করতে হয়েছিল

cd ~কমান্ডের সাহায্যে ডিরেক্টরিটি পরিবর্তন করে "identified" ডিরেক্টরিটি চিহ্নিত করা যায়

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