我最近开始学习 Vim,我不喜欢 Vim 中默认的拆分窗口键映射。也就是说,我不喜欢输入 Cw 然后输入 S 来水平移动,输入 v 来垂直移动,以及通过 Cw jkhl 或上下左右移动焦点。
我希望在正常模式下使用“h”进行水平分割,使用“v”进行垂直分割,而无需输入 Cw。如何实现?此外,是否有人知道在窗口中更改焦点的合理配置,因为我不确定如果没有 Cw 这是否有意义。
谢谢。
答案1
这不是一个好的答案,因为我不记得我从哪里得到这些,但在我的_vimrc
(.vimrc
在 Windows 上)
这批货物在缓冲区之间移动,即Alt right arrow
移动到下一个缓冲区等等
nmap <silent> <A-Right> :wincmd l<CR>
nmap <silent> <A-Up> :wincmd k<CR>
nmap <silent> <A-Down> :wincmd j<CR>
nmap <silent> <A-Left> :wincmd h<CR>
更新
Vim 使用引导键的概念,即标准键后跟其他键,以使命令更容易。请参阅:h <Leader>
。在我使用的默认安装中,它默认为退格键,let mapleader = ","
因为我发现,sw(leftarrow)
它比更容易backspace(leftarrow)
。它的意思是,例如,nmap <leader>q :q!<cr>
输入,q
退出当前缓冲区而不保存它。
结束更新
这些命令将 vim 命令重新映射到更短的命令,使用leader
命令例如在缓冲区的左上角创建新的缓冲区,leader>sw<left>
其中<left>
表示左箭头
nmap <leader>sw<left> :topleft vnew<CR>
nmap <leader>sw<right> :botright vnew<CR>
nmap <leader>sw<up> :topleft new<CR>
nmap <leader>sw<down> :botright new<CR>
nmap <leader>s<left> :leftabove vnew<CR>
nmap <leader>s<right> :rightbelow vnew<CR>
nmap <leader>s<up> :leftabove new<CR>
nmap <leader>s<down> :rightbelow new<CR>