আমি কীভাবে এক সাথে অনেকগুলি ফাইল খুলতে পারি ভিমে?


87

ভিমের মধ্যে থেকে কোনও ডিরেক্টরিতে সমস্ত ফাইল খোলার উপায় আছে কি? সুতরাং :commandএমনটি যা কার্যকরভাবে বলবে "সমস্ত ফাইল /some/pathবাফারগুলির মধ্যে খুলুন "।

আদর্শভাবে, দিরের নীচে সমস্ত ফাইলগুলি পুনরাবৃত্তভাবে খোলার পক্ষে দুর্দান্ত।

উত্তর:


105

আপনি যে আদেশটি সন্ধান করছেন তা হ'ল আর্কগুলি:

উদাহরণ স্বরূপ:

:args /path_to_dir/*

ডিরেক্টরিতে সমস্ত ফাইল খুলবে


32
**পুনরাবৃত্তির সাথে ফাইলগুলি মেলে ব্যবহার করুন । উদাহরণস্বরূপ:args /path_to_dir/**
daf

4
কোনও এক্সটেনশান ছাড়াই ফাইলগুলি খুলতে, প্যারেন্ট ডিরেক্টরিটি উল্লেখ করুন যেমন আর্গস ** /। Hg / hgrc কাজ করে কিন্তু ** / এইচজিসিআর তা করে না।
79E09796

11
ফাইলগুলি একবার খুললে :tab allসেগুলি পৃথক ট্যাবে রাখার জন্য ব্যবহার করুন।
ব্যাকলিন

"সমস্ত ফাইল" এর মধ্যে সাব-ডিরেক্টরি অন্তর্ভুক্ত থাকবে যা পছন্দসই নয়। (আমার ভিমের ত্রুটিগুলি "/path_to_dir/subdir/" Illegal file name) দ্রুত সমাধানটি argd */আবার তালিকা থেকে
এগুলি

নিম্নলিখিত পরামর্শ সহ উত্তরটি সম্পূর্ণ করা সত্যিই চমৎকার লাগবে: একটি ভাল অনুশীলন হিসাবে এবং যে সমস্ত ফাইল খোলা হয়েছে তাতে একই কমান্ডের প্রয়োগ করতে হয় তা দেখাতে, আপনি সমস্ত আদেশ প্রয়োগের জন্য নীচের আদেশটি কার্যকর করতে পারেন my_commands_batch.vim ফাইলটিতে অন্তর্ভুক্ত রয়েছে:argdo source my_commands_batch.vim
11:56

21

আমি যদি একটি নির্দিষ্ট এক্সটেনশন দিয়ে শেষ হওয়া সমস্ত ফাইল খুলতে চাই তবে এটি কেন কাজ করে না? আমি চেষ্টা করেছিলাম

:n ./**.cs

এবং কেবল বর্তমান ডিরেক্টরিতে ফাইলগুলি খোলায়।

আমি উত্তরটি পেয়েছি correct সঠিক কোডটি :n **/*.cs

আরও তথ্যের জন্য :h find


9

তুমি কি চেষ্টা করেছিলে

:n /some/path/*

এটি সমস্ত ফাইলগুলিকে / কিছু / পথে খুলবে

আমি মনে করি না যদিও এটি পুনরাবৃত্তভাবে ফাইলটি খুলবে।

সম্পাদনা

সম্ভবত ** ব্যবহার ড্যাফ উল্লিখিত হিসাবে পুনরাবৃত্তভাবে খুলবে


N: এর অর্থ কী? ভিমের সাহায্যের দিকে তাকানো আমাকে কেবল "শেষ প্যাটার্নটির পুনরাবৃত্তি" করতে নির্দেশ করে .. যা আমি বুঝতে পেরেছি কীস্ট্রোক। কেবলমাত্র কমান্ড মোডের জন্য সহায়তা পাওয়ার কোনও উপায় আছে?
U0001

4
খুব সহজ: এইচ: এন .. ": এন" এর জন্য সহায়তা পান। আমি নিজের প্রশ্নের উত্তর দেওয়া পছন্দ করি না;)
U0001

4

যে পদ্ধতিতে গণ্ডগোলের প্রয়োজন হয় না argsসেটি হ'ল একটি পাঠ্য ফাইলে ফাইলগুলির তালিকা রাখা এবং তারপরে :soসেই ফাইলটিতে কমান্ডগুলি চালানোর জন্য কমান্ডটি ব্যবহার করা ।

উদাহরণস্বরূপ, আপনি যদি .phpকোনও প্রদত্ত ডিরেক্টরিতে শেষ হওয়া সমস্ত ফাইল খুলতে চান তবে প্রথমে files.txtফাইলগুলির তালিকা সমেত তৈরি করুন , সেগুলি খোলার জন্য আপনি যে কমান্ডটি ব্যবহার করতে চান তা দিয়ে চাপ দিন।

sp alpha.php
sp bravo.php
sp charlie.php

তারপরে, ভিমের মধ্যে:

:so files.txt

যদি ফাইলগুলির তালিকা বড় হয় তবে এটি files.txtফাইলের আউটপুট পুনর্নির্দেশের মাধ্যমে দ্রুত ফাইল উত্পন্ন করতে অপেক্ষাকৃত তুচ্ছ ls, এবং তারপরে spপ্রতিটি ফাইলের নামের পূর্বে প্রিমেন্ড করার জন্য একটি ভিআইএম ম্যাক্রো ব্যবহার করে ।

এই স্পষ্টত ব্যবহার যত মার্জিত নয় argsএবং argdoআদেশ, কিন্তু যারা কমান্ড এছাড়াও আরো অনেক জটিল।

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


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

1

পুনরাবৃত্তভাবে ফাইলগুলি খোলার আর একটি উপায়

find . -type f -exec vi {} \;

4
"Vim মধ্যে থেকে" সীমাবদ্ধতা পূরণ করে না।
জাইএক্স

এবং এখনও যা প্রয়োজন তা করেন :)
দুর্বৃত্ত এক

4
এটা না. যা প্রয়োজন তা হল প্রদত্ত ডিরেক্টরি থেকে ভিএম এর মধ্যে পুনরাবৃত্তভাবে ফাইলগুলি । আপনি যদি শর্তগুলি ফেলে kate **/*(^/)দিচ্ছেন তবে আপনিও বলতে পারেন যে (zsh গ্লোব্বিং সিনট্যাক্স ব্যবহার করে) যা প্রয়োজন তা করে: প্রদত্ত ডিরেক্টরি থেকে পুনরাবৃত্তভাবে ফাইলগুলি খোলে। এটি "ভিতরে থেকে" নয় এবং এটি ভিমটি মোটেও ব্যবহার করে না, তবে এটি "এখনও যা প্রয়োজন তা করে"। বা এমনকি kate ~/.vimrc ~/.bashrc। "দেওয়া থেকে", "প্রদত্ত ডিরেক্টরি থেকে" এবং "পুনরাবৃত্তিমূলকভাবে" পুরোপুরি ছাড়াই, কিন্তু এটি "এখনও যা প্রয়োজন তা করে": ফাইলগুলি খোলে।
জাইএক্স

এটি একবারে ফাইলগুলি খুলবে
পল

1

আপনি যদি যুক্তি তালিকায় যুক্ত করতে চান;

:arga what_you-d_like_to_add

দেখা

:he arga

আরও তথ্যের জন্য ভিএম থেকে / ইন।

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