इस आउट-ऑफ-द-बॉक्स को करने के लिए उचित मात्रा में काम करना होगा, लेकिन मुझे लगता है कि आप Unite.vim प्लगइन का उपयोग करके कुछ सीधे-सीधे कुछ कर सकते हैं । यह विभिन्न स्रोतों से मेनू बनाने के लिए एक एकीकरण इंटरफ़ेस प्रदान करता है। (वास्तव में, कुछ ने भी Ctrl को यूनाइट के साथ बदल दिया है ।) यूनाइट डॉक्यूमेंटेशन में यह उदाहरण है (या एक :help g:unite_source_menu_menus
बार देखने के बाद , यूनाइट स्थापित होने के बाद) विवरणों के बेसिक मेन्यू कैसे बनाएं।
उस प्रलेखन के बाद, मैं एक साधारण उदाहरण के साथ आया हूं जो कमांड का एक मेनू प्रदान करता है। प्रदर्शन के उद्देश्यों के लिए, मैंने इसे NERDTree (NERDTree प्लगइन से) खोलने के लिए कमांड के साथ सेट किया है, जो एक प्रोजेक्ट में TOIT के लिए git दोष (fugitive.vim प्लगइन से) दिखा रहा है और बिल्ट-इन का उपयोग कर रहा है :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
विकल्प (जैसे फजी-सर्च)।