Meu terminal não permite que eu digite Ctrl+ W, porque é um atalho para fechar uma guia do terminal.
Eu gosto de trabalhar com divisões, mas não consigo encontrar nenhuma maneira de fazer isso sem usar C-W
. Isso me forçou a usar abas, porque eu posso alternar entre eles com gt
, gT
ou #gt
onde # é um número, mas eu acho isso menos conveniente do que divisões como eu só posso ver o conteúdo de um arquivo de cada vez.
Também não posso usá-lo mouse=a
, pois meu terminal não suporta isso.
Como posso trabalhar com divisões no Vim sem o combo Ctrl+ Wdisponível?
key-bindings
vim-windows
split
Mateon1
fonte
fonte
wincmd
Por exemplo, você pode mapear::nmap wj :wincmd j<cr>
ele age da mesma forma queCTRL-W j
(mova para a janela abaixo).:help wincmd
CTRL-W j
funciona com contadores (vá para a n-ésima janela abaixo da atual) minha solução não.<C-W>
é um atalho muito útil (não apenas em muitos lugares no Vim, mas também no bash) para ser cancelado. Eu ficaria curioso para saber quais outras combinações de teclas são consumidas pelo terminal -<C-T>
? No mínimo, eu verificaria se estes são configuráveis no terminal.Respostas:
Você pode apenas remapear
<C-w>
para outra combinação, por exemplo:Agora você pode usar
<C-e>
e ele funcionará como se você tivesse pressionado<C-w>
.Isso substituirá o
<C-e>
mapeamento padrão (role para baixo). O Vim já usa todas as teclas do teclado, e a única maneira de evitar isso é usar a tecla líder, que age como um "prefixo":A menos que você tenha remapeado
<Leader>
, agora você pode usar\w
(um após o outro). Na verdade, eu prefiro isso, pois não gosto de combinações de teclas CTRL +.Consulte O que é o <Leader>? e Como posso descobrir o que <Leader> está definido? E é possível remapear <Leader>? .
fonte
Na verdade, eu uso
:wincmd
mais frequentemente do que Ctrl+ Wporque acho mais fácil digitar a abreviada:winc
.Por exemplo, o equivalente a Ctrl+ W Lé
:winc l
.fonte
Eu configurei os seguintes remaps no meu
.vimrc
:Agora eu posso usar
Ctrl+h
para mover para a janela esquerda,Ctrl+l
para mover para a janela direita, etc. Parece logicamente se encaixar na navegação normal do Vim.fonte
nnoremap <cr> <c-w>w
, pois a tecla de retorno não é muito usada no modo normal. Então é fácil percorrer as divisões.Para lidar com as divisões, eu uso o submode-plugin, que é realmente conveniente: permite criar um novo modo ("modo", como no modo normal, modo visual, modo de inserção, etc ...) onde você define novas ligações de teclas .
Com isso você não precisa Ctrl+wmais usar e, como você está em um novo modo, todas as chaves estão livres para se ligar: não há mais problemas como "Porra, não consigo encontrar uma combinação de teclas que, como um significado e ainda não esteja mapeada "
Você pode instalar o plug-in com qualquer gerenciador de plug-ins comum, e aqui estão algumas das minhas configurações para lhe dar alguma inspiração:
Criei um novo modo que chamei
WindowsMode
no qual manipulo minhas divisões:Essas linhas significam que eu entro no modo com Leaderke saio do modo com Leader: Depois de pressionar Leaderktodas as teclas, pressione:
Uma vez
WindowsMode
nessas linhas, hjklnavegue pelas divisões comoCtrl+whjklEu usei essas linhas para dividir as janelas /e !:
E qfeche uma divisão:
Mova as divisões com Ctrlhjkl:
O Vim-submode permite fazer muitas coisas poderosas; consulte o documento para obter mais detalhes.
EDIT Outra abordagem do submodo Window é descrita aqui . Eu acho que o método usado pelo autor é ainda mais próximo para responder à pergunta: Aqui é usado para criar um novo modo, mas todos os
<c-w>something
mapeamentos estão disponíveis com as mesmas chaves no submodo:Desta forma, todos os mapeamentos
<c-w>lowerCaseKey
,<c-w>upperCaseKey
,<c-w><c-Key>
e os mapeamentos<c-w>=_+-<>
são acessíveis no modo de janela sem o prefixo<c-w>
fonte