ভিআইএম অস্থায়ী ফাইল উপেক্ষা করুন


238

সমস্ত ডিরেক্টরিতে ভিএম দ্বারা উত্পাদিত অস্থায়ী ফাইলগুলিকে গিট উপেক্ষা করার সঠিক উপায় কী (কোনও সিস্টেমের জন্য বিশ্বজুড়ে বা একক প্রকল্পের জন্য স্থানীয়ভাবে)?


6
প্যাটার্নটি *.sw?স্ট্যান্ডার্ডটি সমাধান করে .swpতবে বিকল্প স্ব্যাপ ফাইলের এক্সটেনশনগুলিও পছন্দ করে .swo
বুলে

7
@ বুলে আপনার পরামর্শ .swfফাইলগুলিও উপেক্ষা করবে । আমি তা করতে দৃ .়ভাবে নিরুৎসাহিত করব, বিশেষত যদি আপনি কোনও ফ্ল্যাশ অ্যাপ তৈরি করে থাকেন building
স্টিফেনমুরডোক

1
@ মারফ্লার ভাল পয়েন্ট। লুকানো ফাইলের সাথে পূর্বনির্ধারিত একই প্যাটার্নটিকে .তবে এটি প্রতিরোধ করা উচিত।
বুলে

আমি আজ একটি .swx দেখেছি।
রিচার্ড

2
গবেষণা দেখায় যে 16 ব্যাকআপ ফাইল তৈরি পরে ( .tmp.swp, .tmp.swo, ..., .tmp.swa), তেজ সৃষ্টি .tmp.svz। আমার কী ধৈর্য ধরেছে তা দেখার পরে কি .tmp.saa- সম্ভবত .tmp.rzz? আপডেট: উত্সটি ( src/memline.c, ফাংশন findswapname()) সন্ধান করে এটি .saaএকটি ত্রুটির সাথে ছেড়ে দেয় : "E326: অনেকগুলি স্ব্যাপ ফাইল পাওয়া গেছে"।
কিথ থম্পসন

উত্তর:


391

ভিম অস্থায়ী ফাইলগুলি শেষ হয় ~ যাতে আপনি ফাইলটিতে .gitignoreলাইন যুক্ত করতে পারেন

*~

ভিএম swp ফাইলগুলিও তৈরি করে যার মধ্যে swp এবং sw এক্সটেনশন রয়েছে। যারা লাইন ব্যবহার করে তাদের অপসারণ করতে:

*.swp
*.swo

এটি একক প্রকল্পের সমস্ত ভিআইএম অস্থায়ী ফাইলগুলি উপেক্ষা করবে

আপনি যদি এটি বিশ্বব্যাপী করতে চান, আপনি নিজের বাড়িতে একটি .gitignore ফাইল তৈরি করতে পারেন (আপনি এটি অন্য নাম বা অবস্থান দিতে পারেন), এবং নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন:

git config --global core.excludesfile ~/.gitignore

তারপরে আপনাকে কেবল সেই ফাইলগুলিতে যুক্ত করতে হবে যা আপনি সেই ফাইলটিতে উপেক্ষা করতে চান


30
ভিম ক্রমাগত নামযুক্ত অদলবদল ফাইল (.এসডাব্লুপি, .এসও, ইত্যাদি) তৈরি করবে, তাই আমি তাদের সমস্তটি আড়াল করতে .*.sw*আমার ব্যবহার করি .gitignore
ড্র স্টিফেন্স

32
@ ড্রিউস্টেফেনস, আমি .*.sw?আরও নির্ভুল বলে বিশ্বাস করি । (যদিও আমি দেখেছি লোকেরা *.sw*সন্দেহের জন্য কিছু বৈকল্পিক ব্যবহার করেছে যে আমিই সেই ব্যক্তি যা সত্যিই স্পষ্ট কিছু অনুপস্থিত ...)
মর্টেন সিবুহর

10
@ মর্টেন অনুসারে vimdoc.sourceforge.net/htmldoc/recover.html ,। *। এস ?? তাদের সকলকে ইউনিক্সে ধরতে হবে (.s ?? ?? .swp থেকে .sa তে হ্রাস)।
ম্যাক্স ন্যানসি

6
কেবল @ ম্যাট্রিক্সফ্রোগের দুর্দান্ত মন্তব্যকে কিছুটা প্রসারিত করার জন্য - যেহেতু এই প্রশ্নটি ভিমের জন্য আপনি এখানে সেই প্রকল্পে সঠিক .gitignore খুঁজে পেতে পারেন ।
স্ন্যাপশট

17
সতর্ক হোন. গিথুব ফাইলগুলিকে .*.s[a-w][a-z]উপেক্ষা করবে .svg
জন

118

বিকল্পভাবে আপনি পৃথক স্থানে সোয়াফফায়ালগুলি সংরক্ষণ করতে ভিআইএম কনফিগার করতে পারেন, যেমন আপনার .vimrcফাইলের সাথে নীচের মতো লাইন যুক্ত করে :

set backupdir=$TEMP//
set directory=$TEMP//

আরও তথ্যের জন্য এই ভিএম টিপ দেখুন।


8
দ্রষ্টব্য, ম্যাক ওএস এক্স-এ, আপনি $TMPDIRপ্রকৃত টেম্পডির পেতে ব্যবহার করতে পারেন :)
অ্যালেক্স মুর-নিমি

5
আপনার পছন্দসই ডিরেক্টরি (আমি ~ / tmp // ব্যবহার করি) এর পরে ডাবল ফরোয়ার্ড স্ল্যাশ পুরো পথটি সংরক্ষণ করে ফাইলের নামকরণ সংঘর্ষকে বাধা দেয়। এইভাবে, আপনি এখনও নামের ফাইলগুলি সম্পাদনা করতে পারেন, উদাহরণস্বরূপ, একই সময়ে দুটি ডিরেক্টরিতে config.xML।
ব্রায়ান

1
কী $TEMPমানে?
থিমফিল্ড

দ্রষ্টব্য আমাকেও যুক্ত করতে হয়েছিল set undodir=$TEMP//, যেহেতু আমি অবিচ্ছিন্ন পূর্বাবস্থার ফাইলগুলিও সংরক্ষণ করি।
মাইকা লিন্ডস্ট্রোম

24

এটি এমন কিছু যা কেবল প্রতি ব্যবহারকারী ভিত্তিতে করা উচিত, প্রতি-সংগ্রহস্থল নয়। জো যদি ইম্যাকস ব্যবহার করে, তবে সে ইমাস ব্যাকআপ ফাইলগুলি উপেক্ষা করতে চাইবে, তবে বেটি (যিনি vi ব্যবহার করেন) vi ব্যাকআপ ফাইলগুলি উপেক্ষা করতে চান (অনেক ক্ষেত্রে সেগুলি একই রকম, তবে প্রায় 24,893 সাধারণ সম্পাদক অস্তিত্ব রয়েছে এবং এটি দুর্দান্ত বিভিন্ন ব্যাকআপ এক্সটেনশনের সকলকে উপেক্ষা করার চেষ্টা করা হাস্যকর))

অন্য কথায়, ভিতরে .gitignoreবা ভিতরে কিছুই রাখবেন core.excludesনা $GIT_DIR/config$HOME/.gitconfigপরিবর্তে তথ্য রাখুন (যেমন নুনোপলোনিয়া পরামর্শ দেয় --global।) নোট করুন যে "গ্লোবাল" এর অর্থ প্রতি-ব্যবহারকারী নয়, প্রতি-সিস্টেম নয়।

আপনি যদি সমস্ত ব্যবহারকারীর জন্য সিস্টেম জুড়ে কনফিগারেশন চান (যা আপনি করেন না) তবে আপনার একটি পৃথক প্রক্রিয়া প্রয়োজন। (সংগ্রহশালা শুরুর আগে সম্ভবত টেমপ্লেট সেটআপ সহ))


3
স্পষ্টতই, বেটি জো :-) এর চেয়ে অনেক বেশি স্মার্ট Good
paxdiablo


5

"গিট কমিট" এর আগে ভিম ছাড়ুন।

করতে vim(, ব্যাকআপ ফাইলের জন্য অন্যান্য ফোল্ডার ব্যবহার /tmpউদাহরণস্বরূপ):

set bdir-=.
set bdir+=/tmp

.swp ফাইলগুলির জন্য বর্তমান ফোল্ডারটি ব্যবহার বন্ধ করে দিতে:

set dir-=.
set dir+=/tmp

ব্যবহারটি -=, +=সাধারণত ভাল হবে, কারণ ভিডির অন্যান্য ডিফল্ট রয়েছে বিডির, দির , আমরা সব পরিষ্কার করতে চাই না। বিডিআর, ডিয়ার সম্পর্কে আরও তথ্যের জন্য ভিএম সাহায্য পরীক্ষা করে দেখুন :

:h bdir
:h dir

5
আপনি যেখানে আপনার ভিএম অদলবদল ফাইল সংরক্ষণ করবেন সে বিষয়ে সাবধানতা অবলম্বন করুন। আপনি সম্পাদনা করছেন এমন কোনও ফাইল থেকে আপনি দুর্ঘটনাক্রমে শংসাপত্র বা অন্যান্য ডেটা ফাঁস করতে পারেন: সিকিউরিটি.স্ট্যাকেক্সচেঞ্জ
প্রশ্নগুলি

5

এখানে আসল ভিআইএম কোড যা স্যুপ ফাইলের এক্সটেনশানগুলি উত্পন্ন করে:

/* 
 * Change the ".swp" extension to find another file that can be used. 
 * First decrement the last char: ".swo", ".swn", etc. 
 * If that still isn't enough decrement the last but one char: ".svz" 
 * Can happen when editing many "No Name" buffers. 
 */
if (fname[n - 1] == 'a')        /* ".s?a" */
{   
    if (fname[n - 2] == 'a')    /* ".saa": tried enough, give up */
    {   
        EMSG(_("E326: Too many swap files found"));
        vim_free(fname);
        fname = NULL;
        break;  
    }
    --fname[n - 2];             /* ".svz", ".suz", etc. */
    fname[n - 1] = 'z' + 1;
}
--fname[n - 1];                 /* ".swo", ".swn", etc. */

এটি বিন্যাসের অদলবদল উত্পন্ন করবে:

[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-v][a-z]
[._]sw[a-p]

ভিআইএম-র জন্য গিথুবের নিজস্ব গিটিগনোরোর ফাইলটিতে যা অন্তর্ভুক্ত রয়েছে তা বেশ কিছুটা ।

অন্যরা যেমন সঠিকভাবে উল্লেখ করেছেন, এই .gitignore .svg চিত্র ফাইল এবং .swf অ্যাডোব ফ্ল্যাশ ফাইলগুলি এড়িয়ে যাবে।


3

আমি পেয়েছি এটি ভিট দ্বারা তৈরি অস্থায়ী ফাইলগুলি উপেক্ষা করবে

[._]*.s[a-w][a-z]
[._]s[a-w][a-z]
*.un~
Session.vim
.netrwhist
*~

এটি এখানেও দেখা যায়


5
এটি .swfযখনই আপনি কোনও ফ্ল্যাশ অ্যাপ্লিকেশন তৈরি করে তখন পপিং আপ থাকা আপত্তিজনক ফাইলগুলিও এড়িয়ে যাবে।
স্টেফেনমুরডোক

আপনি যতক্ষণ কোনও বিকাশকারী না হয়ে আপনার ফ্ল্যাশ ফাইলগুলি পরীক্ষা করে দেখার প্রয়োজন হয়
সেগুলি

1
এটি .svgকোন সমস্যা হতে পারে তা উপেক্ষা করবে ।
ব্রুনো ব্রোনোস্কি

1
*.un~আপনার যেহেতু অন্তর্ভুক্ত করা *~
বাড়াবাড়ি

2

নিশ্চিত,

আপনার প্রকল্পের হোম ডিরেক্টরিতে কেবল একটি ".gitignore" তৈরি করতে হবে এবং এটি ধারণ করতে হবে

*.swp

এটাই

এক আদেশে

project-home-directory$ echo '*.swp' >> .gitignore

4
আমি echo *.swp >> .gitignoreআগের .gitignore এর ওভাররাইড এড়ানো ভাল মনে করি ।
সিজার এ রিভাস

2
আপনি শেলটি '*' প্রসারিত করতে চান না। সুতরাং, ব্যবহার করুনecho '*.swp' >> .gitignore
11:32

আপনি দুর্ঘটনাক্রমে এই >চরিত্রগুলির একটিও মিস করতে চান না । আমি একবার passwdফাইলটিতে এটি করেছি তখন লগ আউট করেছি :-)
প্যাক্সিডিয়াবল

2
# VIM: Temperory files
*~

# VIM: Swap-files
[._]*.s[a-w][a-z]
[._]s[a-w][a-z]

# VIM: Commands :cs, :ctags
tags
cscope.*

# VIM session
Session.vim

# VIM: netrw.vim: Network oriented reading, writing, browsing (eg: ftp scp) 
.netrwhist

সোয়াপ ফাইলটির নাম সাধারণত আপনি যে ফাইলটি সম্পাদনা করছেন তার সাথে একই রকম হয় ".swp" এক্সটেনশনটি।

  • ইউনিক্সে, একটি '। সম্পাদিত ফাইলের মতো একই ডিরেক্টরিতে ফাইলের নাম অদলবদল করতে প্রস্তুত হয়। এটি এড়ানো যায় যে সোয়াপ ফাইলটি ডিরেক্টরি ডিরেক্টরিতে প্রদর্শিত হয়।
  • এমএস-ডস মেশিনে এবং 'শর্টনেম' বিকল্প চালু থাকলে যে কোনও '।' মূল ফাইলের নামটি '_' দিয়ে প্রতিস্থাপন করা হয়।
  • যদি এই ফাইলটি ইতিমধ্যে বিদ্যমান থাকে (যেমন, আপনি যখন ক্র্যাশ থেকে পুনরুদ্ধার করছেন) একটি সতর্কতা দেওয়া হয় এবং অন্য একটি এক্সটেনশন ব্যবহৃত হয়, ".swo", ".swn", ইত্যাদি etc.
  • একটি বিদ্যমান ফাইল কখনই ওভাররাইট করা হবে না।
  • ভিম ফাইলটি সম্পাদনা বন্ধ করার সাথে সাথে অদলবদল ফাইলটি মুছে ফেলা হবে।

'এর প্রতিস্থাপন এমএস-ডস সামঞ্জস্যপূর্ণ ফাইল সিস্টেমগুলির (যেমন, ক্রসডোস, মাল্টিডোস) সমস্যা এড়াতে '_' দিয়ে সম্পন্ন করা হয়।

http://vimdoc.sourceforge.net/htmldoc/recover.html

http://www.vim.org/scripts/script.php?script_id=1075


0

আমার ক্ষেত্রে অস্থায়ী ফাইলগুলি ইতিমধ্যে পূর্ববর্তী ক্রিয়াকলাপ দ্বারা কমিট হয়, সুতরাং .gitignore সংশোধন করা দ্বারা এই কমিট করা ফাইলগুলিকে প্রভাবিত করবে না ..., আপনাকে git rm files_to_be_ignored --cacheপ্রথমে প্রথমে প্রতিশ্রুতিবদ্ধ হবে, তারপরে সম্পন্ন করতে হবে।


0

এটি একটি ম্যাকের সাথে কাজ করে যা অ্যালেক্স মুর-নিনি দ্বারা উল্লিখিত হয়েছে:

set backupdir=$TMPDIR//
set directory=$TMPDIR//

ব্যবহার TMPDIRএবং না নিশ্চিত করুন TEMPDIR


-4

আপনি যদি সোর্স নিয়ন্ত্রণ ব্যবহার করেন। ভিএম টেম্প ফাইলগুলি বেশ অকেজো।
সুতরাং আপনি ভিএম এগুলি না তৈরি করতে কনফিগার করতে পারেন।

কেবল আপনার ~ / .vimrc সম্পাদনা করুন এবং এই লাইনগুলি যুক্ত করুন:

set nobackup
set noswapfile

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

8
সম্পাদক ক্রাশ এবং অন্যান্য বেশ কয়েকটি কারণে ভিআইএম অস্থায়ী ফাইলগুলি অত্যন্ত কার্যকর। এগুলি বন্ধ করা স্নানের জল দিয়ে বাচ্চাকে বাইরে ফেলে দিচ্ছে।
ব্রায়ান রিহম্যান

5
@ আরনিস বলুন, বিদ্যুৎ বিভ্রাট? অথবা কোনও কারণে আপনার এক্স সেশনটি মারা যাওয়া। ভিএম টেম্প ফাইলগুলি বেশ গুরুত্বপূর্ণ আইএমও।
jrdioko

1
@ জর্দিওকো এক্স ক্রাশ হ'ল কারণটি কেউ ব্যবহার করতে চাইতে পারে screen(বা dtachযদি তিনি সমস্ত পর্দার বৈশিষ্ট্যগুলি না চান)। বিদ্যুৎ বিভ্রাট ইউপিএস দ্বারা পরিচালিত হয়। ব্যাকআপগুলি important সমস্ত গুরুত্বপূর্ণ ফাইলগুলির ব্যাক আপ করার জন্য আপনার প্রিয় সফ্টওয়্যার by দ্বারা সম্পন্ন হয়} আমি ইতিমধ্যে সম্পাদিত ফাইলগুলি সম্পাদনা করার চেষ্টা করার সময় আমি অদলবদলগুলি বিজ্ঞপ্তি ব্যবহার করি, ব্যাকআপ ফাইলগুলি কারণ ব্যাকআপের সাথে এন +1 থাকায় ফাইলগুলির কোনও ক্ষতি হয় না এবং ফাইলগুলি পূর্বাবস্থায় ফেরানো যায় না কারণ অবিচ্ছিন্ন পূর্বাবস্থায় কাজ করা সহজ হয়। আমার কাছে কেবল পূর্ববর্তী ফাইলগুলিই কিছুটা গুরুত্বপূর্ণ bit
জাইএক্স

5
আপনি ভিএম কে সম্পূর্ণরূপে বন্ধ করার চেয়ে টেম্প ফাইলগুলি অন্য কোথাও সঞ্চয় করতে বলছেন off
কাইল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.