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


27

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


4
কেন ব্যবহার lessকরবেন না ?
বার্নহার্ড

1
আপনি কি কোনও উপায়ে ফাইলগুলি চালিত করতে চান, বা আপনি কেবল সেগুলি দেখতে চান?
200_সুকস

1
আমি ফাইলগুলি সম্পাদনা করতে চাই।
পিটার-বি

সম্পর্কিত: stackoverflow.com/a/19795855/732016
wchargin

সম্ভবত আমি সাইট থেকে চিরকালের জন্য নিষিদ্ধ হয়ে যাব তবে আমার এটি বলতে হবে: যখন বিশাল ফাইলগুলির সাথে কাজ করার বিষয়টি আসে তখন কাজের জন্য ইম্যাকস একটি সরঞ্জাম। :-)
toro2k

উত্তর:


25

প্রথমে কোনও প্লাগইন বা ভিএমআরসিবিহীন ভিএম লোড করার চেষ্টা করুন:

vim -u NONE gargantuan.txt

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

এছাড়াও নিশ্চিত করুন set ft= syn=এবং syntax off

এটি যদি সহায়তা না করে তবে সম্ভবত আপনার খুব দীর্ঘ লাইন রয়েছে যা সমস্যা তৈরি করছে। set nowrapলাইন মোড়ানো বন্ধ করার চেষ্টা করুন ।


1
vim -U NONE -N gargantuan.txtnocompatibleভিআইএম চালানোর সময় একই কাজ করবে যা পুরানো "vi" এর সাথে সামঞ্জস্য করার চেষ্টা করার পরিবর্তে "vi আইএমপ্রোভড" মোডে চলে
ecerulm

15

চাকরির জন্য ভিম হ'ল ভুল হাতিয়ার: আপনার যেমন moreবা পেজের ব্যবহার করা উচিত less

আপনি যদি কোনও সম্পাদক ব্যবহার করার জন্য জোর দিয়ে থাকেন তবে ভিম উইকির সাথে অভিযোজিত এই উদাহরণটি ব্যবহার করে দেখুন :

augroup LargeFile
        let g:large_file = 10485760 " 10MB

        " Set options:
        "   eventignore+=FileType (no syntax highlighting etc
        "   assumes FileType always on)
        "   noswapfile (save copy of file)
        "   bufhidden=unload (save memory when other file is viewed)
        "   buftype=nowritefile (is read-only)
        "   undolevels=-1 (no undo possible)
        au BufReadPre *
                \ let f=expand("<afile>") |
                \ if getfsize(f) > g:large_file |
                        \ set eventignore+=FileType |
                        \ setlocal noswapfile bufhidden=unload buftype=nowrite undolevels=-1 |
                \ else |
                        \ set eventignore-=FileType |
                \ endif
augroup END

পারি lessবা moreআমার ফাইল পরিবর্তন করতে?
মার্টিন টর্নোইজ

3
তারা অবশ্যই পারে না। লগগুলি সম্পাদিত করার উদ্দেশ্যে নয়।
রোমেনেল

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

আমি ওরফে আছে less, moreএবং manকরতে vimpagergithub.com/rkitover/vimpager
অ্যালেক্স ক্রোল

5

লার্জফিল.ভিম প্লাগইনটি বড় ফাইলগুলি সম্পাদনা দ্রুত করার জন্য ডিজাইন করা হয়েছে। Http://www.drchip.org/astronaut/vim/index.html#LARGEFILE দেখুন ।

পৃষ্ঠা থেকে:

বড় ফাইলগুলির দ্রুত সম্পাদনা করার অনুমতি দেয় (ডিফল্ট: 100MB + হ'ল "বড়"), উইন্ডো, সিনট্যাক্স হাইলাইটিং ইত্যাদি ইভেন্টগুলি বন্ধ করার মূল্যে, এছাড়াও যেখানে আপনি এটিকে র‌্যাঙ্ক করতে পারেন তা উপলব্ধ।

ম্যানুয়াল অনুসারে, প্লাগ ইনটি ইনস্টল করে কেবল কাজ করে। আপনি g:LargeFileএমবি সংখ্যার পূর্ণসংখ্যায় পরিবর্তনের মাধ্যমে কাট অফ সেট করতে পারেন , যা এটি ২০ এমবি-তে ডিফল্ট বলে (প্রকল্পের বর্ণনার বিপরীতে যা ১০০ বলে)

প্লাগ-ইন কমান্ড প্রদান করে :UnLarge, :Largeএবং :Large!(ছোট ফাইল জন্য) নিষ্ক্রিয়, পুনরায় সক্ষম, অথবা বল করতে সক্ষম যথাক্রমে বর্তমানে লোড ফাইলে।



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