Procurando um terminal centralizado em tela cheia

8

Existem vários editores livres de distração para escrever: eles fornecem um ambiente mínimo em tela cheia com o objetivo de se forçar a se concentrar na tarefa em questão.

Eu quero fazer algo semelhante com vim. Embora eu possa simplesmente acioná-lo em um terminal e pressionar F11 para colocá-lo em tela cheia, também quero limitar a largura para cerca de 75 caracteres e centralizar a área que estou usando.

Pense em como os processadores de texto fornecem uma página virtual no meio do programa - é isso que eu quero. Tipo de.

Existe uma maneira de fazer isso, seja com um programa de terminal especial ou com alguma configuração no vim? Se um dos programas da GUI vim tiver esse recurso, ou se houver outra maneira de fazer isso que eu não tenha pensado, isso também seria uma resposta útil.

evilsoup
fonte

Respostas:

12

Se você iniciar screende forma maximizada xterm( Alt-Enterin xterm) como:

screen -c this-file

Onde this-filecontém:

focusminsize 75 25
split -v
focus
only
split -v
split -v
focus

Você terá uma região central de largura 75.

Stéphane Chazelas
fonte
Isso está tão perto da perfeição, obrigado. Isso coloca bordas brancas ao redor da área ativa e ao longo da parte inferior do terminal; você sabe se existe uma maneira de se livrar deles?
precisa saber é
Isso não funcionou para mim.
slm
1
RE: meu comentário anterior, a resposta para se livrar das fronteiras pode ser encontrada nesta pergunta da SU . Eu coloquei as linhas no meu .screenrc, então meu padrão screenusará todos os comandos aqui. Funciona perfeitamente para mim no Ubuntu 13.04, gnome-terminalversão 3.6.1 (e no xterm e guake) e screenversão 4.00.03jw4. Obrigado!
precisa saber é o seguinte
Estou no Fedora 14 e na versão 2.32.0 do gnome-terminal. Versão da tela 4.00.03. xterm -v, 6.8.99.903. Não funciona lá.
slm
Tentei no Ubuntu 13.04 funcionou lá. Agora vejo o que está fazendo. São 3 painéis, divididos igualmente, e o foco está no meio.
slm
1

Uma alternativa é usar um programa devilspiepara fazer isso. Caso você nunca tenha ouvido falar de devilspie:

excerto

Um utilitário de correspondência de janelas, inspirado na opção “Matched Windows” do Sawfish e na falta de funcionalidade no Metacity. A falta de correspondência na janela do Metacity não é uma coisa ruim - a Metacity é um gerenciador de janelas enxuta e a correspondência de janelas não precisa ser uma tarefa do gerenciador de janelas.

A torta do diabo pode ser configurada para detectar janelas à medida que são criadas e corresponder a janela a um conjunto de regras. Se a janela corresponder às regras, poderá executar uma série de ações nessa janela. Por exemplo, posso fazer com que todas as janelas criadas pelo X-Chat apareçam em todos os espaços de trabalho e a janela principal do Gkrellm1 não apareça no pager ou na lista de tarefas.

Deve estar no repositório da maioria das distribuições.

Exemplo

Então, para centralizar uma xtermjanela vimdentro dela, faça o seguinte.

  1. Faça a sua configuração de torta do diabo. dir.

    $ mkdir ~/.devilspie
    
  2. Crie um .dsarquivo especificando sua regra de torta do diabo

    $ cat ~/.devilspie/something.ds 
    (if
        (matches (application_name) "vim")
        (begin
            (geometry "600x400")
            (center)
        )
    )
    
  3. Corra devilspie. Eu gosto de executá-lo no modo de depuração ( -d) para iniciar.

    $ devilspie -d
    Devil's Pie 0.22 starting...
    Loading /etc/devilspie
    /etc/devilspie doesn't exist
    Loading /home/saml/.devilspie
    Loading /home/saml/.devilspie/something.ds
    1 s-expressions loaded.
    
  4. Execute nosso xtermcom vim.

    $ xterm -e vim
    

    ss do xterm vim

Qual é o nome da minha janela?

Você pode usar o comando xlsclient -lpara obter uma lista de janelas abertas. Acho que é a maneira mais fácil de determinar o nome de uma janela para incorporação devilspie. Você também pode querer usar xwininfotambém.

Exemplo

$ xlsclients -l|less
...
Window 0x6800023:
  Machine:  grinchy
  Name:  vim
  Icon Name:  vim
  Command:  xterm -e vim
  Instance/Class:  xterm/XTerm
...

Você pode controlar um nome de janela como este:

$ xterm -title WeirdWindow -e vim

Referências

slm
fonte
Definitivamente, isso é legal, mas não é o que estou tentando realizar. Apenas posiciona a janela em um local especificado e com as dimensões especificadas, certo? Quero ter uma 'página' ativa no centro da tela, com o restante da tela em branco - para que não haja distrações em segundo plano.
precisa saber é
@evilsoup - sim, ele centraliza o xterm @ nas dimensões especificadas. Você pode apagar o plano de fundo, atualizarei minha resposta apenas para termos um método alternativo. Sua pergunta não disse que você queria que ela apague em segundo plano, talvez eu tenha perdido alguma coisa. Também acho que você está perdendo o poder de devilspie. Você pode adicionar uma regra ao arquivo .ds para minimizar todo o resto, por exemplo.
slm
@ evilsoup - seria suficiente apagar o fundo? Eu sei que você tem a outra solução, mas eu só queria fornecer um método alternativo.
slm
1

Existe um plugin para o Vim chamado VimRoom que fornece isso por meio de um mapeamento (o padrão é V).

Wieland
fonte