Se você voltar a esta pergunta, altere a resposta aceita, a da DrAI é muito mais correta do que a de Mykola.
Gbr3
Respostas:
261
Assim como a :tabeditabordagem sugerida anteriormente , uma maneira mais rápida de fazer isso (no modo normal) é pressionar Ctrl- WShift- T. Ctrl-W é o prefixo geral para uma ampla variedade de comandos de manipulação de janelas.
Observe que o help Ctrl-W_Tleva para a entrada de ajuda de Ctrl-W_t(minúscula), no entanto, mais abaixo na página está a Ctrl-W_Tentrada (com T maiúsculo), dizendo "Mova a janela atual para uma nova página de guia ...."
Rabarberski,
1
@DrAl e como movemos uma nova janela da guia para dividir a janela?
Ramiz Uddin
@RamizUddin Não há uma maneira simples de fazer isso (pois não é óbvio em qual janela você deseja abrir). No entanto, você pode descobrir o número do buffer da página da guia atual :echo bufnr("")e, usando esse número, pode dividir uma janela com :sp #3ou :sb 3(supondo que o número seja 3). Você pode criar alguns mapeamentos ou funções para simplificar isso.
DrAl
1
Como você move o buffer para uma nova guia, mantendo seu estado de desfazer / refazer. Em outras palavras, não quero abrir o mesmo arquivo em uma nova guia, quero literalmente mover o buffer para uma nova guia, para que o histórico de edição possa ser usado na nova guia. Se não houver uma maneira padrão de fazer isso, aposto que pode ser feito um plug-in que adiciona um novo atalho para isso, que grava o histórico de desfazer no arquivo de troca do novo buffer.
trusktr
2
@trusktr Eu imagino que abrir o buffer em uma nova guia :sbfuncionaria, mas com versões recentes do Vim (> = 7.3) você também pode usar desfazer persistente definindo set undodir=/path/to/dironde / path / to / dir é um diretório que você criado para a finalidade e depois set undofile. Isso permitirá que você saia do vim, reinicie e mantenha o estado de desfazer / refazer.
Pela mesma razão, incluí ":". Esta é a combinação de teclas vim completa no modo normal e você pode usar isso em 'nnoremap' e em 'nmap'
Mykola Golubyev
6
Isso também funciona, exceto que clona / duplica a janela para uma nova guia, em vez de fechá-la primeiro e depois abri-la em uma nova guia. Não é grande coisa. Apenas algo para estar ciente.
A-Dubb
6
Esta não move o buffer para uma nova guia, ele só abre o mesmo arquivo em uma nova guia, mas você não vai ter de desfazer / refazer a história, etc.
trusktr
5
C-w Té a maneira mais rápida de fazer o mesmo
Dylanthepiguy
3
Isso move o buffer mais recente em uma nova guia e restaura o buffer anterior na guia atual. Eu uso isso depois de arrastar um novo arquivo para o meu Gvim
:sbp |wincmd p| wincmd T
Você pode mapeá-lo dessa maneira para Ctrl-Backspace
Eu tenho usado isso, que fornece duas funções que podem ser vinculadas a um par de teclas de atalho ou comandos, e que funciona de maneira bastante intuitiva. Tenho certeza de que oferece um comportamento ainda mais amigável do que por exemplo Ctrl-W_T.
Por exemplo, quando várias janelas são abertas em várias guias, o uso dessa função permite mover especificamente a janela atual para a próxima ou a anterior e, se você mover algo para antes da primeira ou depois da última, será exibido em uma guia totalmente nova.
Isso significa que, se você tiver 2 guias, cada uma com uma única janela, mover a janela da primeira guia para a direita combinará com a segunda guia para resultar em uma única guia com duas janelas. Não sei o quão complicada essa operação é conseguir usando comandos tradicionais.
O que isso significa é que um único par de comandos de movimento permite mudar as janelas em torno das guias, dividir as janelas em guias (empurrando uma janela para o final) e unir guias separadas nas janelas dentro de uma única guia, praticamente tudo você poderia desejar, com falta de arranjo posicional (que é um tópico separado e para o qual os comandos Ctrl-W+ Shift-HJKLinternos funcionam bem).
Respostas:
Assim como a
:tabedit
abordagem sugerida anteriormente , uma maneira mais rápida de fazer isso (no modo normal) é pressionar Ctrl- W Shift- T. Ctrl-W é o prefixo geral para uma ampla variedade de comandos de manipulação de janelas.Vejo:
fonte
help Ctrl-W_T
leva para a entrada de ajuda deCtrl-W_t
(minúscula), no entanto, mais abaixo na página está aCtrl-W_T
entrada (com T maiúsculo), dizendo "Mova a janela atual para uma nova página de guia ....":echo bufnr("")
e, usando esse número, pode dividir uma janela com:sp #3
ou:sb 3
(supondo que o número seja 3). Você pode criar alguns mapeamentos ou funções para simplificar isso.:sb
funcionaria, mas com versões recentes do Vim (> = 7.3) você também pode usar desfazer persistente definindoset undodir=/path/to/dir
onde / path / to / dir é um diretório que você criado para a finalidade e depoisset undofile
. Isso permitirá que você saia do vim, reinicie e mantenha o estado de desfazer / refazer.Experimentar
fonte
C-w T
é a maneira mais rápida de fazer o mesmoIsso move o buffer mais recente em uma nova guia e restaura o buffer anterior na guia atual. Eu uso isso depois de arrastar um novo arquivo para o meu Gvim
Você pode mapeá-lo dessa maneira para Ctrl-Backspace
ele executa especialmente bem com
fonte
Eu tenho usado isso, que fornece duas funções que podem ser vinculadas a um par de teclas de atalho ou comandos, e que funciona de maneira bastante intuitiva. Tenho certeza de que oferece um comportamento ainda mais amigável do que por exemplo
Ctrl-W_T
.Por exemplo, quando várias janelas são abertas em várias guias, o uso dessa função permite mover especificamente a janela atual para a próxima ou a anterior e, se você mover algo para antes da primeira ou depois da última, será exibido em uma guia totalmente nova.
Isso significa que, se você tiver 2 guias, cada uma com uma única janela, mover a janela da primeira guia para a direita combinará com a segunda guia para resultar em uma única guia com duas janelas. Não sei o quão complicada essa operação é conseguir usando comandos tradicionais.
O que isso significa é que um único par de comandos de movimento permite mudar as janelas em torno das guias, dividir as janelas em guias (empurrando uma janela para o final) e unir guias separadas nas janelas dentro de uma única guia, praticamente tudo você poderia desejar, com falta de arranjo posicional (que é um tópico separado e para o qual os comandos
Ctrl-W
+Shift-HJKL
internos funcionam bem).fonte