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 vimrc
ve 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_commands
menü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-insert
ve -ignorecase
eşleştirme seçenekleri (bulanık-arama gibi) modunu daralma menü başlangıç yapmak.