Недавно я начал изучать Vim, и мне не нравится стандартное назначение клавиш для разделения окон в Vim. То есть, мне не нравится вводить Cw, а затем S для горизонтального и v для вертикального, и перемещать фокус с помощью Cw jkhl или вверх-вниз, влево-вправо.
Мне бы хотелось иметь 'h' для разделения по горизонтали и 'v' для разделения по вертикали в обычном режиме, без ввода Cw. Как это можно сделать? И еще, кто-нибудь знает вменяемую конфигурацию для смены фокуса в Windows, потому что я не уверен, имеет ли это смысл без 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>
. По умолчанию в используемой мной установке по умолчанию используется клавиша backspace, 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>