簡體   English   中英

Map 在正常 vim 模式和 NERDTree 內部的不同操作的相同鍵

[英]Map same key for different actions in normal vim mode and inside NERDTree

我想 map Alt+F1 to:NERDTreeFocus 而在正常 vim mod 和 to:NERDTreeToggle 而在 NERDTree 視圖中。 我試過這個:

map <silent> <M-1> :NERDTreeToggle<CR>
nmap <silent> <M-1> :NERDTreeFocus<CR>

但它不起作用,顯然,我不明白綁定在 vim 中是如何工作的。 你能幫我嗎?

:map:nmap之間的區別僅涉及映射適用的模式 您需要區分 NERDTree 用於其用戶界面的暫存緩沖區和所有其他緩沖區。 幸運的是,Vim 允許定義僅適用於當前緩沖區的映射:help:map-local

為了進行設置,您需要位於活動的 NERDTree 緩沖區內。 幸運的是,插件為其暫存緩沖區設置了自定義文件類型,因此FileType事件可用於掛鈎設置,而無需直接修改插件或啟動它的所有命令:

:nnoremap <silent> <M-1> :NERDTreeFocus<CR>
:autocmd FileType nerdtree nnoremap <buffer> <silent> <M-1> :NERDTreeToggle<CR>

附加評論

  • 你應該使用:noremap ; 它使映射不受重新映射和遞歸的影響。
  • <M-1>應該由Alt + 1觸發,而不是F1 (除非你有一個奇怪的鍵盤設置)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM