বাক্সের বাইরে এই কাজটি করার জন্য যথেষ্ট পরিমাণ কাজের প্রয়োজন হবে তবে আমি মনে করি আপনি ইউনিট.ভিম প্লাগইন ব্যবহার করে বেশ কিছুটা সোজা-ফরোয়ার্ড করতে পারেন । এটি বিভিন্ন উত্স থেকে মেনু তৈরির জন্য একটি ইন্টিগ্রেশন ইন্টারফেস সরবরাহ করে। (প্রকৃতপক্ষে, কেউ কেউ এমনকি CtrlP এর সাথে ইউনিটও প্রতিস্থাপন করেছেন )) ইউনিট ডকুমেন্টেশনের এই উদাহরণটি (অথবা :help g:unite_source_menu_menus
একবার আপনি ইউনিয়ন ইনস্টল করার পরে একবার দেখুন ) কীভাবে কমান্ডের মৌলিক মেনু তৈরি করা যায় তার বিশদ বিবরণ।
এই ডকুমেন্টেশন অনুসরণ করে, আমি একটি সাধারণ উদাহরণ নিয়ে এসেছি যা কমান্ডের মেনু সরবরাহ করে। প্রদর্শনের উদ্দেশ্যে, আমি এটি NERDTree খোলার জন্য কমান্ড দিয়ে সেট আপ করেছি (NERDTree প্লাগইন থেকে), একটি গিট দোষ দেখানো (পলাতক.ভিম প্লাগইন থেকে) এবং একটি প্রকল্পে টোডোর জন্য গ্রেপিং (বিল্ট-ইন ব্যবহার করে :grep
)। মেনুটি খুলতে আমি একটি ম্যাপিং সংজ্ঞায়িত করেছি <Leader>c
।
# Initialize Unite's global list of menus
if !exists('g:unite_source_menu_menus')
let g:unite_source_menu_menus = {}
endif
# Create an entry for our new menu of commands
let g:unite_source_menu_menus.my_commands = {
\ 'description': 'My Commands'
\ }
# Define the function that maps our command labels to the commands they execute
function! g:unite_source_menu_menus.my_commands.map(key, value)
return {
\ 'word': a:key,
\ 'kind': 'command',
\ 'action__command': a:value
\ }
endfunction
# Define our list of [Label, Command] pairs
let g:unite_source_menu_menus.my_commands.command_candidates = [
\ ['Open/Close NERDTree', 'NERDTreeToggle'],
\ ['Git Blame', 'Gblame'],
\ ['Grep for TODOs', 'grep TODO']
\ ]
# Create a mapping to open our menu
nnoremap <Leader>c :<C-U>Unite menu:my_commands -start-insert -ignorecase<CR>
আপনি এটিতে অনুলিপি করতে পারেন vimrc
এবং অ্যারের দ্বারা সংজ্ঞায়িত কমান্ডগুলির তালিকা সম্পাদনা করতে পারেন g:unite_source_menu_menus.my_commands.command_candidates
। অ্যারের প্রতিটি আইটেম ফর্মের একটি অ্যারে [Label, Command]
।
আমার উদাহরণস্বরূপ, my_commands
এমন একটি নাম যা আমি আমার মেনুটি সনাক্ত করতে পছন্দ করেছিলাম। আপনি চাইলে যে কোনও নাম ব্যবহার করতে পারেন।
আশাকরি এটা সাহায্য করবে!
সম্পাদনা: সংকীর্ণ মোডে মেনুটি শুরু করার জন্য ম্যাপিংয়ের সাথে যুক্ত -start-insert
এবং -ignorecase
বিকল্পগুলি (ফাজি-অনুসন্ধানের মতো)।