我正在尝试将 +
和 _
键设置为在 vim 中增加或减小窗格大小。以下是我在 .vimrc
文件中的代码:
nnoremap + :res +5
nnoremap _ :res -5
然而它似乎不起作用。在vim中映射调整大小的窗格的正确方法是什么?此外,是否有一种方法可以在输入命令后自动按下[enter]
键以便自动执行命令?
我正在尝试将 +
和 _
键设置为在 vim 中增加或减小窗格大小。以下是我在 .vimrc
文件中的代码:
nnoremap + :res +5
nnoremap _ :res -5
然而它似乎不起作用。在vim中映射调整大小的窗格的正确方法是什么?此外,是否有一种方法可以在输入命令后自动按下[enter]
键以便自动执行命令?
:res
命令很好,但您需要将 <CR>
(回车符)附加到映射上才能在按下 + 或 _ 时实际执行它们。 因此,您的映射应该像这样:nnoremap + :res +5<CR>
nnoremap _ :res -5<CR>
另一种选择是使用“模式”,在该模式下,普通箭头键可以调整当前窗口的大小。
将其映射到+
或
:call ToggleResizeMode()
"
" + toggle remap arrow keys to resize windows
"
nnoremap + :call ToggleResizeMode()<CR>
let s:KeyResizeEnabled = 0
function! ToggleResizeMode()
if s:KeyResizeEnabled
call NormalArrowKeys()
let s:KeyResizeEnabled = 0
else
call ResizeArrowKeys()
let s:KeyResizeEnabled = 1
endif
endfunction
function! NormalArrowKeys()
" unmap arrow keys
echo 'normal arrow keys'
nunmap <Up>
nunmap <Down>
nunmap <Left>
nunmap <Right>
endfunction
function! ResizeArrowKeys()
" Remap arrow keys to resize window
echo 'Resize window with arrow keys'
nnoremap <Up> :resize +2<CR>
nnoremap <Down> :resize -2<CR>
nnoremap <Left> :vertical resize -2<CR>
nnoremap <Right> :vertical resize +2<CR>
endfunction
或者更好的是:有人已经实现了窗口子模式,可能在某个插件中可以找到。 https://ddrscott.github.io/blog/2016/making-a-window-submode/
:vertical res +10
,相当简单,但为了完整起见。 - DrGregoryHouse