删除 vim 中的 netrw s-up 和 s-down 映射

bja*_*fly 4 vim

我的 .vimrc 文件中有以下映射,用于在窗口之间移动,但是当在 netrw 插件的浏览窗口 :e 中时,下移键将产生一个警告窗口,而不是尊重我的映射。我假设这个映射必须被硬编码到插件本身中。如何删除插件中的上移和上移映射。

nnoremap <silent> <S-Up> :wincmd k<CR>     
nnoremap <silent> <S-Down> :wincmd j<CR>   
Run Code Online (Sandbox Code Playgroud)

尝试上移或下移时显示的窗口如下所示,它显示在新的拆分中,这非常烦人:

**warning** (netrw) using Nexplore or <s-down> improperly; see help for netrw-starstar
Run Code Online (Sandbox Code Playgroud)

因此,我的问题是如何在 netrw 插件中关闭此行为,以便它尊重上面显示的映射。

sid*_*yll 5

插件创建了一个缓冲区映射,因此您可以在使用以下命令创建后再次覆盖它autocmd

autocmd filetype netrw nnoremap <buffer> <s-down> :wincmd j<cr>
Run Code Online (Sandbox Code Playgroud)

如果多次使用,创建一个组可能会很有用:

augroup netrw_maps
  autocmd!
  autocmd filetype netrw call ApplyNetrwMaps()
augroup END

function ApplyNetrwMaps()
  nnoremap <buffer> <s-up> :wincmd k<cr>
  nnoremap <buffer> <s-down> :wincmd j<cr>
  " ...
endfunction
Run Code Online (Sandbox Code Playgroud)