Editor de texto com opção de tela dividida


26

Existe um editor que tenha a opção de "dividir a tela" em duas ou mais partes, acessando mais de um arquivo (possivelmente com uma árvore de arquivos) sem abrir mais janelas do editor de uma só vez e como fazer isso (quais são as comandos).

Não sei se me esclareci, mas a "tela dividida" é a única maneira de descrever o que quero alcançar. Eu quero usá-lo para programar, tendo mais de um arquivo aberto para edição. Note que eu sou muito novo no vi e no emacs, se estes são capazes de fazer isso. Além disso, se isso tiver que ser feito através de um editor de terminal, poderá ser feito no mesmo terminal, independentemente do tamanho da tela?


11
Sei que você perguntou especificamente sobre editores e não sobre terminais, mas acho que vale a pena anotar para futuros visitantes: o emulador de terminal terminatortambém possui o recurso de tela dividida: ctrl + shift + eserá dividido verticalmente e ctrl + shift + odividido horizontalmente (e também ctrl + shift + tabrirá uma nova aba)
Carlos Campderrós

@ CarlosCampderrós Vou manter isso em mente, obrigado!
Eve

11
@ CarlosCampderrós: ​​Você também pode usar um multiplexador como screen ou tmux para conseguir isso em outros emuladores de terminal. A desvantagem, é claro, é que você deve se lembrar de executá-las primeiro, mas a flexibilidade provavelmente vale a pena.
Phoshi

Respostas:


38

vim pode fazer isso facilmente:

ctrl+ ws- Dividir janelas

ctrl+ ww- alternar entre janelas

ctrl+ wq- Saia de uma janela

ctrl+ wv- Dividir janelas verticalmente

:sp filename

abrirá filenameem um novo buffer e dividirá uma janela.

Você também pode fazer

vim -o file1 file2

Para abrir os arquivos em um layout de tela dividida. Substitua -opor -Opara divisão vertical em vez de horizontal.


4
Ou digite :help CTRL-Wpara ver todas as operações da janela dividida.
Bernhard

11
Uau, ótimo! Eu também me deparei com ": split", mas ele só se divide horizontalmente. Você pode incluir apenas qual versão do vim é essa? Obrigado!
Eve

@ Eve Eu uso o VIM (Vi IMproved) 7.3.
rush

11
@Eve - você também pode usar :vsplitpara criar uma divisão vertical, e como com :splitele aceita um nome de arquivo ou comando
Useless

11
E como <C-w>h/ j / k / l se moverá entre janelas em direções específicas, <C-w>H/ J / K / L (maiúsculo) moverá a janela nessa direção.
Izkata 3/08/12

13

Isso pode ser feito usando o Emacs. Funciona na GUI e no modo terminal. Você pode até dividir várias vezes. Aqui estão algumas combinações básicas de teclas:

Cx 2 Divida a janela selecionada em duas janelas, uma acima da outra (janela dividida abaixo).
Cx 3 Divida a janela selecionada em duas janelas, posicionadas lado a lado (janela dividida à direita).
C-Mouse-2 Na linha de modo de uma janela, divida essa janela.

Fonte: http://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html


11
Para quem não conhece a terminologia do Emacs , vale a pena notar que uma janela do Emacs é o que muitos outros editores chamam de tela ou painel . Um quadro do Emacs é o que outros chamam de janela (é chamado de quadro porque as janelas dentro dele são emolduradas pela decoração da área de trabalho (barra de título e bordas) ou pelo terminal ... O Windows contém buffers (algum texto; geralmente um arquivo).
Peter.O

11
@ Peter.O - Não apenas para aqueles que não estão familiarizados com o Emacs ... Eu uso o Emacs há mais de 5 anos e não teria sido capaz de explicar as diferenças. Eu apenas uso.
Jordanm #

11

Com o vim, você pode usar splitou vsplit.

O primeiro se divide na horizontal e o segundo se divide na vertical.

CTRLw depois, navegue pelas telas divididas.

Você também pode usar a guia. tabnew filenameabrirá o nome do arquivo em uma nova guia. Você pode usar tabnexte :tabpreviousnavegar entre as guias.

Eu mapeia pessoalmente as setas esquerda e direita para navegar entre as guias:

map <right> :tabnext<CR>
map <left> :tabprevious<CR>
inoremap <right> <ESC>:tabnext<CR>a
inoremap <left> <ESC>:tabprevious<CR>a

11
Além disso, o plug-in NERD_tree pode ser usado para mostrar a árvore de diretórios em uma divisão separada. ( vim.org/scripts/script.php?script_id=1658 )
Bernhard

7

Kate

O Editor de Texto Avançado do KDE é muito útil.
Tem tudo o que você descreveu na pergunta e muito mais .

Veja por si mesmo:

Captura de tela

Para dividir a exibição, vá para ExibirDividir exibição . Então você pode selecionar uma destas opções:

  • Dividir vertical ( Ctrl+ Shift+ L)
  • Dividir horizontal ( Ctrl+ Shift+ T)
  • Fechar visualização atual ( Ctrl+ Shift+ R)

Para obter o layout como nesta captura de tela, Dividir vertical , clique na vista inferior e, em seguida, Dividir horizontal .

Obviamente, os limites das vistas podem ser alterados arrastando as bordas (divisores) entre elas. Para alternar entre as visualizações, use F8e Shift+ F8.

A propósito, o Kate possui o chamado Modo VI ( ConfiguraçõesConfigurar o Kate…Edição → Modo de entrada VI). Em seguida, os atalhos para a divisão de visualizações se tornam os mesmos do Vim (consulte esta resposta ).


7

joe( Próprio editor de Joe ) também pode fazer isso:

ctrl+ ko- dividir janela horizontalmente

ctrl+ kp- alterna para a janela anterior

ctrl+ kn- alterna para a próxima janela

ctrl+ ke- abre um novo arquivo na janela atual

ctrl+ kg- aumenta a altura da janela atual

ctrl+ kt- encolher altura da janela atual

ctrl+ ki- ocultar todas as janelas, exceto a atual, pressione novamente para mostrar todas as janelas novamente

ctrl+ cou ctrl+ kx- fecha uma janela



4

Se você estiver interessado em se familiarizar um pouco melhor com o VIM, confira vimcasts.org , ele possui vários tutoriais em vídeo muito amigáveis. Este especialmente para mágica em tela dividida

Apreciar!


Isso é legal, muito obrigado! Eu gostaria disso mais, mas tenho apenas um.
Eve

2

Em relação às árvores de arquivos, eu pessoalmente uso o NERDtree com o Vim. Requer patógeno. Eu achei o comando para abrir a árvore ( :NERDtree toggle, iirc) um pouco longo, então eu remapeei para <F2>. Se você estiver trabalhando em um projeto com muitos arquivos em vários diretórios (pense nos projetos do Rails), é muito bom.

EDITAR:

O NERDtree está no Github: https://github.com/scrooloose/nerdtree

Este é o remapeamento que eu uso no meu .vimrc: map <F2> :NERDTreeToggle<CR>


Obrigado, posso ter outras perguntas sobre isso. Aqueles que reservo para outra hora. ;)
véspera de

1

Eu uso tmuxe vimpara edição em tela dividida em um ambiente baseado em terminal, embora você possa usar qualquer editor de texto baseado em linha de comando para isso (por exemplo nano, emacsetc.).

tmuxé a abreviação de "multiplexador de terminal" e permite criar sessões com vários terminais, executando em "janelas" separadas e também "painéis" nessas janelas, que permitem dividir a tela. tmuxestá incluído nos repositórios de muitas distribuições Linux e BSD. Acho que essa é a opção mais flexível para codificação, pois também posso adicionar divisões e janelas que contêm terminais onde eu posso compilar código e usar um sistema de controle de versão, como na gitminha edição de código.

Aqui está um exemplo de como eu criaria uma sessão de edição de tela dividida usando tmuxe vim.

Primeiro abra um terminal. Nos comandos abaixo, escritos depois $são emitidos a partir da linha de comando. Isso usa as combinações de teclas padrão em tmux.

  1. Inicie uma nova sessão do tmux. Aqui nós criamos um chamado "coding":

    $ tmux new -s coding

    tmux acaba de abrir

  2. Pressione Ctrl+ bseguido por %para uma divisão vertical ou "para uma divisão horizontal.

    divisão vertical

    divisão horizontal

  3. Você pode mover-se entre as divisões (ou no tmuxjargão, os "painéis") pressionando Ctrl+ bseguido de o.

  4. Agora abra um editor de texto com os arquivos que você deseja editar em cada painel. Aqui, acabei de abrir dois arquivos de texto usando vim, por exemplo,

    $ vim file1.txt

    Alternar painéis: Ctrl+ bseguido de o.

    $ vim file2.txt

    editando dois arquivos simultaneamente

tmuxé extremamente avançado, permitindo vários painéis em uma única janela organizada de várias maneiras e vimpermite abrir vários arquivos de texto ao mesmo tempo em guias. Eu costumo usar as guias vime os painéis tmuxpara permitir a edição, controle de versão e código de depuração simultaneamente. Se você tiver tempo para investir no aprendizado dos atalhos de teclado e dos recursos tmux, pode ser um ambiente de desenvolvimento muito poderoso.

Uma tmuxfolha de dicas para começar: a tela de dayid e a folha de dicas do tmux

Um tutorial sobre guias em vim: Dicas do Vim: Usando guias


0

eu pessoalmente usaria screen ou tmux. ambos permitem que você abra vários painéis, embora eu ache que o tmux é melhor para recuperar uma sessão de painéis múltiplos do que a tela. você também obtém o benefício adicional de poder se conectar à sessão se desconectar da sessão da área de trabalho local e depois entrar no SSH. Você ainda pode compartilhar a sessão com outros usuários e também colaborar.


aqui está uma downvote porque você não mudança de uso
peterh diz Reintegrar Monica

0

Ao lado vim, emacse joeeditores, aqui estão alguns outros terminais (TTY) editores emulador / x-terminais, que podem mostrar pelo menos dois arquivos ao mesmo tempo. Pode não ser o canivete suíço mais bonito, mas a curva de aprendizado não parece muito íngreme:

1) mcedit

Faz parte do Midnight Commander (um gerenciador de arquivos em modo de texto, instale-o apt-get install mcnas distros baseadas no Debian).

mcedit

2) wpe \ xwpe

Disponível apt-get install xwpenas distros Dedbian. No entanto, parece que é uma proteção interrompida.

xwpe

3) nfte \ efte

O eFTE também está disponível via apt-get install efte.

efte

Por outro lado, para a janela X também existem algumas ferramentas "diff" da GUI que podem ser úteis para esse fim. No meu Linux Mint, tenho pelo menos dois:

4) xxdiff

Um aplicativo baseado em Qt ( apt-get install xxdiff)

xxdiff

Não testado e não mostrado, mas existe também Fldiffusando o Fast Light Toolkit (FLTK), mas inspirado parcialmente xxdiff. Também nos repositórios oficiais ( apt-get install fldiffe você pode testá-lo você mesmo). O mesmo se aplica a mgdiff.

5) kdiff3

Uma aplicação KDE semelhante ( apt-get install kdiff3).

kdiff3


0

Você pode usar o editor de texto atom do github. Ele vem com funcionalidade de tela dividida.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.