আমার যখন 16 গিগাবাইট র‌্যাম থাকে তখন কেন ভিএম 100 এমবি পাঠ্য ফাইলটি খুলতে পারে না?


67

আমার কাছে একটি 100MB মাইএসকিউএল ডাটাবেস ব্যাকআপ ফাইল রয়েছে এবং আমার লিনাক্স বাক্সে ভিমে এটি খুলতে আমার সমস্যা আছে যার মধ্যে 16 জি র্যাম রয়েছে।

ভিম কেবল ঝুলে থাকে (কমপক্ষে অব্যবহৃত)। এটি এমন কিছু যা আমি বুঝতে পারি না। আমার 16 গিগাবাইট র‌্যাম রয়েছে, কেন আমি সম্পাদকে 100 এমবি ফাইল লোড করতে পারি না?

এটি কি ভিমের কারণে? আমি ভেবেছিলাম সমস্ত মেমরি পরিচালনা ওএস দ্বারা পরিচালিত হয়।


3
এই জাতীয় ফাইলগুলি দেখার জন্য একটি পাঠ্য সম্পাদকের পরিবর্তে একটি এইচএক্স সম্পাদক ব্যবহার করার কথা বিবেচনা করুন। ভিআই-এর মতো ইন্টারফেস সহ হেক্স সম্পাদকের উদাহরণ হতে পারে hexer
রুসলান

13
ভুলে যাবেন না যে আমরা এখন কয়েক দশক ধরে স্মৃতি থেকে বেরিয়ে আসার পরে র্যামটি যেভাবে সঞ্চালিত হয়েছিল তা ছিল না । স্মৃতি এখন ভার্চুয়ালাইজড; এটি পৃষ্ঠাগুলিতে বিভক্ত এবং সেই পৃষ্ঠাগুলিকে ডিস্কে সরিয়ে নেওয়া যেতে পারে। কোনও প্রক্রিয়ার ঠিকানার জায়গার বাইরে বরাদ্দকৃত মেমরির পরিমাণ এবং যে পরিমাণ র‌্যাম সেবন করেছে তার একে অপরের সাথে খুব কম সম্পর্ক রয়েছে। আপনি যখন স্মৃতিশক্তি শেষ হয়ে যান, আপনি ঠিকঠাক জায়গার বাইরে চলেছেন , র‌্যাম নয় । এটিকে ভাবার সর্বোত্তম উপায় হ'ল মেমরি হ'ল ডিস্ক স্পেস , প্রতিটি প্রক্রিয়া সেই জায়গার একটি নির্দিষ্ট পরিমাণ পায় এবং র‌্যাম হল হার্ডওয়্যার যা আপনার ডিস্কটিকে আরও দ্রুত করে তোলে
এরিক লিপার্ট

21
@ এরিকলিপার্ট বাদে disতিহ্যবাহী ডিস্কগুলি এত ধীর (র্যামের তুলনায়) যেগুলি কেবল সক্রিয় ব্যবহারে নেই এমন ভার্চুয়াল মেমরি পৃষ্ঠাগুলি সঞ্চয় করার জন্য উপযুক্ত। অদলবদল থ্রেশিংয়ের কারণে যদি কোনও প্রক্রিয়া স্তব্ধ হয়ে থাকে (বা কমপক্ষে অপব্যবহারযোগ্য, যেমন ওপি এটি প্রয়োগ করে) তবে এটি অবিকল কারণ র‍্যামটি এর শেষ হয়ে গেছে।
depquid

6
@ এরিকলিপার্ট ঠিকানার জায়গার বাইরে চলেছে আজ 32 বিট সিস্টেমে কেবল প্রাসঙ্গিক। আমি সন্দেহ করি যে 16 জি র‍্যাম সহ ব্যবহারকারী এখনও সাধারণ 64 বিট একের পরিবর্তে 32 বিট পিএই কার্নেল ব্যবহার করবেন।
রুসলান

3
@ ডেপুইড: এটি একটি ভাল পয়েন্ট; আমার মন্তব্যের জোর এটি হ'ল ওপিতে বিশ্বাস রয়েছে যে "আমি 100MB স্টাফ লোড করেছি, আমার কাছে র‌্যাম 16000MB আছে, সুতরাং আমার 16000MB র্যামের 100MB গ্রাস হয়ে গেছে"। এই বিশ্বাস ব্যবস্থাটি পুরানো।
এরিক লিপার্ট

উত্তর:


69

অস্বাভাবিকভাবে দীর্ঘ লাইনযুক্ত ফাইলগুলির সাথে ভিমে কখনও কখনও সমস্যা হয়। এটি একটি পাঠ্য সম্পাদক, তাই এটি পাঠ্য ফাইলগুলির জন্য তৈরি করা হয়েছে, লাইন দৈর্ঘ্যের সাথে সাধারণত বেশিরভাগ কয়েকশ অক্ষর প্রস্থ থাকে।

একটি ডাটাবেস ফাইলে অনেকগুলি নতুন লাইন অক্ষর নাও থাকতে পারে, তাই এটি সম্ভবত একক 100 এমবি দীর্ঘ লাইন হতে পারে। ভিম এতে খুশি হবে না, এবং সম্ভবত এটি কাজ করবে, ফাইলটি লোড হতে বেশ দীর্ঘ সময় নিতে পারে।

আমি অবশ্যই ভিমের সাথে 100 এমবি এর চেয়ে অনেক বড় পাঠ্য ফাইলগুলি খুলেছি । এমনকি ফাইলটি একবারে মেমরির সাথে ফিট করার প্রয়োজন হয় না (যেহেতু ভিমটি ডিস্কে পরিবর্তনের পরিবর্তে অদলবদল করতে পারে)।


1
আমি খুব দীর্ঘ লাইনগুলি লক্ষ্য করেছি, খুব দীর্ঘ লাইন ছাড়াই অন্য একটি ফাইল দিয়ে চেষ্টা করেছি, একটি বড় উন্নতি দেখুন। ধন্যবাদ
জিজ্ঞাসা করুন এবং শিখুন

11
@ এস্কান্ডলার্ন ফাইলের ধরণের উপর নির্ভর করে আপনি set synmaxcol=120(বা অন্য কোনও উপযুক্ত নম্বর) ব্যবহার করলে পারফরম্যান্স বৃদ্ধি পেতে পারেন । আমি অতীতে এ থেকে বিশাল গতিবেগ লক্ষ্য করেছি।
সাপি

কেউ কি জানেন যে সাম্প্রতিক নেওভিম কাঁটাচামচ আরও দীর্ঘতর লাইনগুলি পরিচালনা করবে কিনা? আমার ধারণা এটি কোনও সাধারণ সমস্যা নয় ...
হেমার

@ গ্রেগ হিউগিল এটি সত্য, আমি এটিও পর্যবেক্ষণ করেছি, তবে আপনি কীভাবে জানলেন?
রাহুল পাতিল

56

আমার অভিজ্ঞতায় ভিম বড় ফাইলগুলিতে নয়, লম্বা লাইনে দম বন্ধ করে দিয়েছেবড় ফাইলের ব্যয়ে সংক্ষিপ্ত রেখাগুলিmysqldump ব্যবহার করতে এই কমান্ডটি ব্যবহার করুন :

$ mysqldump --complete-insert -u -p

অতিরিক্তভাবে, আপনি ভিমটি খুলতে পারেন এবং আপনার .vimrcফাইলটি বিশ্লেষণ না করতে বা এই আদেশ দিয়ে কোনও প্লাগইন লোড না করতে বলতে পারেন :

$ vim -u NONE output.sql

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


15

".vimrc এবং প্লাগইন (ক্লিন ভিআইএম) ছাড়াই ভিআইএম লোড করুন যেমন বিশাল ফাইলগুলির জন্য

  gvim -u NONE -U NONE -N largefile.sql

13

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

এগুলির কোনওটি দৈত্য ফাইলগুলির সাথে কেন এতটা অব্যবহারযোগ্য হতে হবে তা অবশ্যই যুক্তিযুক্ত নয়, তবে এটি কেন এটির কারণ রয়েছে তার কয়েকটি ব্যাখ্যা এটি।


কীভাবে ভিএমআইএমকে ফাইল পার্সিংয়ের মতো ভারী ক্রিয়াকলাপগুলি করা থেকে বিরত রাখা যায় তার জন্য আমার উত্তর দেখুন।
dotancohen

হ্যাঁ, এক্সএমএল এবং এসকিউএল এর মতো বিষয়ের উপর সিনট্যাক্স হাইলাইট করা বড় ফাইলগুলিতে খুব ধীরে ধীরে পেতে পারে।
মার্সিন

9

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


স্মৃতিশক্তি গ্রহন করাও সমস্যা নয়। সিপিইউ সময় গ্রহণ করা হচ্ছে (এবং আপনি যখনই অপেক্ষা করবেন তখন একটি দৃশ্যমান স্থিরতা) হয় is
অরবিট

সিপিইউ সময়টি বেশিরভাগ ক্ষেত্রে সিনট্যাক্স হাইলাইটিং স্ক্রিপ্ট দ্বারা গ্রহণ করা হয়।
demkoryu

হ্যা আমি রাজি. আমি কেবল এটাই বলছি যে মেমরির ব্যবহারের ফলে (ক) সমস্যা হওয়ার খুব সম্ভাবনা নেই, বা (খ) আপনার উত্তর যা বলেছে তার বিপরীতে দীর্ঘ বিলম্ব ঘটায়।
অরবিট

আপনি ঠিক বলেছেন, আমি আমার উত্তরটি সেই অনুযায়ী আপডেট করেছি।
demkoryu

7

আপনি এটি বাইনারি হিসাবে লোড করার চেষ্টা করতে পারেন। আমি সত্যিই বড়, অ-পাঠ্য ফাইলের জন্য ভাগ্য পেয়েছি

vim -b HUGEFILE

হিম সম্পাদক হিসাবে ভিআইএম ব্যবহার করা আইআইআরসিও সম্ভব: দেখুন: http://usevim.com/2012/06/20/vim-binary-files/


4

আশা করি ভিআইএমদের র্যামের চেয়ে অস্থায়ী ফাইলগুলির (যেমন অদলবদলের) বেশি প্রয়োজন আপনার সমস্যাটি আরও বেশি।

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

সৌভাগ্যক্রমে, ভিআইএম এর সূচীকরণ / সোয়াপ ফাইলগুলির জন্য আপনি কীভাবে একটি আলাদা অবস্থান নির্দিষ্ট করতে পারবেন সে সম্পর্কে ভাল ডকুমেন্টেশন রয়েছে:

আপনি সোয়াপ ফাইলটি অক্ষম করতে পারেন


1

আমি মাঝে মাঝে। এসকিউএল পাঠ্য বিন্যাসে বড় ডেটাবেস ব্যাকআপ খুলি। খুব দীর্ঘ ফাইল বা খুব দীর্ঘ লাইনযুক্ত ফাইলগুলি প্রায়শই ভিএম খোলার জন্য অনেক সময় নেয় বলে মনে হয়। এটি সিনট্যাক্স প্রসেসিং এবং রঙ হাইলাইটিংয়ের সাথে সম্পর্কিত হতে পারে, যেমন @ জাজ্পার এবং @ ডেমোনকরিউর উত্তরে উল্লিখিত হয়েছে।

প্রাক-প্রসেসিং হাইলাইট করে সিনট্যাক্স বাতিল করতে ফাইলটি লোড করার সময় "কন্ট্রোল-জি" টিপুন একটি দ্রুত কাজ হতে পারে।

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