Vim 2021:コンテキストメニューを追加する


あなたがカーソルの下に現在の単語/線と何かをするとき、すてきな文脈メニューは非常に役に立ちます.また、あなたのキーマップを忘れたときに思い出させることができます:

セットアップ


UI拡張プラグインquickuiの助けを借りて、次のように簡単に定義できます.
Plug 'skywind3000/vim-quickui'

" define your context menu as a list of (text, command) pairs
let g:context_menu_k = [
            \ ["&Help Keyword\t\\ch", 'echo expand("<cword>")' ],
            \ ["&Signature\t\\cs", 'echo 101'],
            \ ['-'],
            \ ["Find in &File\t\\cx", 'exec "/" . expand("<cword>")' ],
            \ ["Find in &Project\t\\cp", 'exec "vimgrep " . expand("<cword>") . "*"' ],
            \ ["Find in &Defintion\t\\cd", 'YcmCompleter GotoDefinition' ],
            \ ["Search &References\t\\cr", 'YcmCompleter GoToReferences'],
            \ ['-'],
            \ ["&Documentation\t\\cm", 'exec "PyDoc " . expand("<cword>")'],
            \ ]

" map 'K' to display the context menu
nnoremap <silent>K :call quickui#tools#clever_context('k', g:context_menu_k, {})<cr>
その後、Kを押すと、カーソルの周りに表示されます.

コンテキストメニューはLSPコマンドを整理する良い場所です.

用途

  • は、j/kまたは矢印キーで項目を移動します.
  • 242479142またはEnterまたはマウス左クリックでアイテムを受け入れます.
  • は、終了するために、Spaceを押します.
  • ホットキーはESCで定義できます.
  • 境界線と色もカスタマイズ可能です.

    doc プラグイン専用コンテキスト


    コンテキストメニューは、プラグインの経験を強化するために使用することができます、プラグインのバッファにいくつかのバッファーローカルキーマップを設定することができます:
    let g:context_menu_git = [
          \ ["&Stage (add)\ts", 'exec "normal s"' ],
          \ ["&Unstage (reset)\tu", 'exec "normal u"' ],
          \ ["&Toggle stage/unstage\t-", 'exec "normal -"' ],
          \ ["Unstage &Everything\tU", 'exec "normal U"' ],
          \ ["D&iscard change\tX", 'exec "normal X"' ],
          \ ["--"],
          \ ["Inline &Diff\t=", 'exec "normal ="' ],
          \ ["Diff S&plit\tdd", 'exec "normal dd"' ],
          \ ["Diff &Horizontal\tdh", 'exec "normal dh"' ],
          \ ["Diff &Vertical\tdv", 'exec "normal dv"' ],
          \ ["--"],
          \ ["&Open File\t<CR>", 'exec "normal \<cr>"' ],
          \ ["Open in New Split\to", 'exec "normal o"' ],
          \ ["Open in New Vsplit\tgO", 'exec "normal gO"' ],
          \ ["Open in New Tab\tO", 'exec "normal O"' ],
          \ ["Open in &Preview\tp", 'exec "normal p"' ],
          \ ["--"],
          \ ["&Commit\tcc", 'exec "normal cc"' ],
          \ ]
    
    function! s:setup_fugitive()
        nnoremap <silent><buffer>K :call quickui#tools#clever_context('g', g:context_menu_git, {})<cr>
    endfunc
    
    augroup MenuEvents
        au!
        au FileType fugitive call s:setup_fugitive()
    augroup END
    
    Fugitiveを使用している場合は、&を押して逃亡メニューを表示できます.

    必要はありませんこれらの滅多なキーマップを使用して覚えて、ちょうどKは完全に十分です.
    のコンテキストメニューを設定することもできます.
    defx.nvim
    これはDefxをよりユーザーフレンドリーにしました.