Kutudan çıkarken yapmak oldukça fazla iş gerektirir, ancak Unite.vim eklentisini kullanarak oldukça basit bir şey yapabileceğinizi düşünüyorum . Çeşitli kaynaklardan menüler oluşturmak için bir entegrasyon arayüzü sağlar. (Aslında, bazıları CtrlP'yi Unite ile değiştirmiştir .) Unite belgelerindeki bu örnek (veya Unite'ı:help g:unite_source_menu_menus yükledikten sonra bir göz atın ), komutların temel menüsünün nasıl oluşturulacağını açıklar .
Bu dokümantasyonun ardından, bir komut menüsü sunan basit bir örnek buldum. Gösterim amacıyla, NERDTree'yi (NERDTree eklentisinden) açmak, bir git suçu (fugitive.vim eklentisinden) göstermek ve bir projedeki TODO'lar için (yerleşik olanı kullanarak) selamlamak için komutlarla ayarladım :grep. Menüyü açmak için bir eşleme tanımladım <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>
Bunu kendinize kopyalayabilir vimrcve dizi tarafından tanımlanan komutların listesini düzenleyebilirsiniz g:unite_source_menu_menus.my_commands.command_candidates. Dizinin her öğesi formun bir dizisidir [Label, Command].
Örneğimde, my_commandsmenümü tanımlamak için seçtiğim bir addı. İstediğiniz herhangi bir ismi kullanabilirsiniz.
Bu yardımcı olur umarım!
DÜZENLEME: Katma -start-insertve -ignorecaseeşleştirme seçenekleri (bulanık-arama gibi) modunu daralma menü başlangıç yapmak.