আমি কীভাবে ভিমে একটি ত্রৈমুখী উইন্ডোতে তালিকাভুক্ত বাফার করব?


13

ভিএম এডিটর ব্যবহার করে বাফার ব্রাউজ করা একটি সাধারণ কাজ। আমি এখন স্ট্যান্ডার্ড কমান্ড ব্যবহার করি যেমন :lsবা এ :bnext। আসলে আমি আমার .vimrc এ সেট করেছি:

"move amongs buffers with CTRL
map <C-J> :bnext<CR>
map <C-K> :bprev<CR>

আমি এমআরইউ প্লাগইন প্রয়োগের সহজ (= দুর্দান্ত) উপায়ে কুইকফিক্স উইন্ডোতে তালিকার হিসাবে বাফারগুলি ব্রাউজ করতে চাই ।

এমআরইউয়ের মতো সহজ তবে একটি বাফারগুলিতে অভিনয় করে এমন কোনও প্লাগইন রয়েছে?

ঠিক আছে, একটি সম্ভাব্য সমাধান হ'ল সিআরটিএলপিপ প্লাগিনের:CtrlpBuffers অংশ, কমান্ডটি ব্যবহার করা যেতে পারে তবে আমি সিটিআরএলপি-র কোনও বড় অনুরাগী নই, কারণ এককালে অদ্ভুত বিহেভিওয়ের রয়েছে আমি পুরোপুরি বুঝতে পারি না (ফাজি-মোড নির্বাচনগুলি ...); সুতরাং আমি এমআরইউ প্লাগইন হিসাবে সত্যিই সাধারণ কিছু সন্ধান করছি।

বিটিডাব্লু, আমি :cexpr {expr}কমান্ডের সাথে কৌতুক করেছি , :buffersতালিকার বিষয়বস্তু সহ কুইকফিক্স উইন্ডোগুলি সাফল্য ছাড়াই পপুলেট করার চেষ্টা করছি (সম্ভবত আমার অজ্ঞতা প্রোগ্রামিংয়ের ভিমস্ক্রিপ্ট কারণ)

যেকোনো পরামর্শ ?


আপনি কি :bnextপরিবর্তে বলতে চেয়েছিলেন :cnext?
tommcdo

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

আমি উইন্ডোতে খোলা বাফারগুলি ব্রাউজ করতে সক্ষম হতে চাই। প্রকৃতপক্ষে কুইকফিক্সটি পুনরায় করা হয়নি
জর্জিও

@ টমমকডো: হ্যাঁ দুঃখিত, আমার স্বাভাবিক টাইপস। মানে: বনেস্ট এবং আমি প্রশ্নটি আপডেট করেছি
জর্জিও রবিনো

উত্তর:


18

আপনি প্রতিটি বাফারের সাথে এইভাবে কুইকফিক্স তালিকাটি তৈরি করতে পারেন:

:call setqflist(map(filter(range(1, bufnr('$')), 'buflisted(v:val)'), '{"bufnr": v:val}'))
  • setqflist()প্রতিটি ত্রুটি (ফাইলের নাম, লাইন নম্বর, অবস্থান ইত্যাদি) বর্ণনা করে অভিধান আইটেমগুলির একটি তালিকা নেয়। এই ক্ষেত্রে আমরা একটি সর্বনিম্ন তথ্যের সেটটি নির্দিষ্ট করছি: বাফার নম্বর
  • map()একটি তালিকা এবং একটি এক্সপ্রেশন (একটি স্ট্রিং) নেয় এবং ইনপুট তালিকার প্রতিটি আইটেমে প্রয়োগ হওয়া এক্সপ্রেশনটির একটি নতুন তালিকা প্রদান করে। এখানে, আমরা তালিকাভুক্ত বাফার নম্বরগুলির একটি তালিকা নিচ্ছি এবং তাদের ব্যবহারের জন্য বিন্যাসকরণ করছি setqflist()( '{"bufnr": v:val}', v:valতালিকার আইটেমটির মূল্য কোথায় )
  • filter()প্রদত্ত প্রকাশকে সন্তুষ্ট না করে এমন উপাদানগুলি সরিয়ে একটি তালিকা ফিল্টার করে। এখানে অভিব্যক্তিটির buflisted(v:val)অর্থ হল বাফার সংখ্যাটি বিদ্যমান এবং তালিকাভুক্ত, অর্থাৎ :lsআউটপুটে প্রদর্শিত হবে
  • range(a, b)থেকে সংখ্যার একটি তালিকা তৈরি aকরেb
  • bufnr()প্রদত্ত বাফার নামটির নম্বর প্রদান করে। যুক্তি যদি হয় তবে '$'এটি সর্বাধিক বাফার নম্বর প্রদান করে

এটি অনেকগুলি টাইপ করতে হবে, এবং খুব স্মরণীয় নয়, তাই আপনি এটি আপনার ভিএমআরসি-র একটি আদেশে মোড়ানো করতে পারেন:

command! Qbuffers call setqflist(map(filter(range(1, bufnr('$')), 'buflisted(v:val)'), '{"bufnr":v:val}'))

এখন আপনি :Qbuffersচটজলদি তালিকাটি জনপ্রিয় করতে ব্যবহার করতে পারেন ।


আপনি যদি নতুন বাফার যুক্ত হওয়ার সাথে সাথে এটি স্বয়ংক্রিয়ভাবে আপডেট হওয়া চান তবে আপনি এরকম কিছু করতে পারেন:

autocmd BufAdd * Qbuffers

তবে আমি এটির সুপারিশ করব না, কারণ এটি কুইকফিক্স তালিকার মতো :makeবা বেশিরভাগ জিনিসের জন্য ব্যবহারযোগ্য নয় :grep


1
tommcdo ব্যাখ্যার জন্য ধন্যবাদ। কিউফারস সুন্দর! সম্ভবত আমি একটি যুক্ত করব: তাত্ক্ষণিকভাবে কুইকফিক্স উইন্ডোটি খুলতে আপনার কলটির শেষের দিকে কপেন করুন এবং কার্সার অবস্থানের প্রতিবেদন করা কার্যকর হতে পারে। আমাকে কিছুটা উইমস্ক্রিপ্ট অধ্যয়ন করতে হবে :-)
জর্জিও

9

আপনার এই ম্যাপিং চেষ্টা করা উচিত:

nnoremap gb :ls<CR>:b<Space>

প্রম্পটে, পছন্দসই বাফার নম্বরটি টাইপ করুন এবং এন্টার টিপুন।

গিগাবাইট


কুইজেশন যেখানে কুইকফাইন্ড উইন্ডোতে বাফারগুলির তালিকা সম্পর্কে।
ভেক্সিই

হ্যাঁ, এবং আমার উত্তর একটি হালকা ওজনের বিকল্প সরবরাহ করে।
রোমেনেল

1
ওপিতে বলা হয়েছে যে তিনি বাফারলিস্ট সম্পর্কে জানেন তবে তা কুইকফিক্স উইন্ডোতে রাখতে চান। এবং আপনার সমাধানটি কেবল বাফারলিস্টটি ব্যবহার করার জন্য?
VeXii

1

কটাক্ষপাত আছে bufexplorer প্লাগইন । এটি উল্লিখিত এমআরইউ প্লাগইনের মতো একটি সাইডবারের সমস্ত বাফারের একটি ব্রাউজযোগ্য তালিকা খোলে। এছাড়াও, vim.org এ আরও বেশ কয়েকটি প্লাগইন রয়েছে

PS: আপনি স্ট্যাক ওভারফ্লোতে একই প্রশ্ন জিজ্ঞাসা করেছেন ; সমান্তরালভাবে একাধিক সাইটে অনুরূপ প্রশ্ন জমা দেবেন না!


tks Ingo, আমি কিছুটা বুফ এক্সপ্লোরার পরীক্ষা করেছি এবং আমি এটি পছন্দ করি। আমি এখানেও পোস্ট করেছি কারণ একটি স্ট্যাকওভারফ্লো করার পরামর্শ দিয়েছে
জর্জিও রবিনো

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