Como iniciar o gVim maximizado?

38

Como fazer com que o gVim maximize automaticamente sua janela quando a abro? E uma solução multiplataforma, estou tentando usar as mesmas configurações em uma máquina Linux e Windows ...

Eu tentei o hack :set lines=999 columns=999, quase funciona, mas a janela não é maximizada, apenas redimensionada e perco algumas linhas / colunas.

Alguém ainda usa você no MS-DOS
fonte
3
Essa é a maneira mais portátil que eu conheço. Você poderia elaborar sobre "mas a janela não está maximizada, apenas redimensionada e eu perco algumas linhas / colunas". A maximização é rápida, redimensionando até as bordas. E acho que nunca perdi uma linha / coluna dessa maneira.
Rook
@ Idigas: correta, maximização é apenas "de redimensionamento até que enche o espaço disponível (não abrangendo as barras de ferramentas etc)", em termos de wm-fala :)
akira
Definir o hack acima não é redimensionado até as bordas. Estou começando a pensar que a melhor abordagem será adicionar um if no meu vimrc: se o windows chamar uma configuração, caso contrário, chame outra configuração.
Alguém ainda usa o MS-DOS

Respostas:

30

No wiki do Vim :

au GUIEnter * simalt ~x

Isso funcionará no Windows; Não sei ao certo quais combinações de teclas você precisaria no Gnome / KDE.

njd
fonte
Isso não funcionou para mim no Windows 7 Ultimate.
Matt Alexander
2
Isso também depende do idioma do sistema operacional, infelizmente. Para versões em francês do Windows, ele se torna au GUIEnter * simalt ~n.
07/09/11
Existe uma maneira de fazer o oposto, de não maximizar? Parece que :simalt ~xsó funciona de uma maneira no Windows7x64 ENG.
TankorSmash
1
~xvem do atalho de teclado para a opção de menu. Verifique o atalho para a opção desejada e tente. Talvez seja Restore?
Grzegorz Gierlik
@GrzegorzGierlik Obrigado, você está certo. Eu não sabia que isso simaltsignificava "simular o pressionamento de tecla alt". Obrigado.
precisa saber é o seguinte
10

A melhor maneira de se preocupar com a compatibilidade entre plataformas é set lines=999 columns=999. Encontrei-o no Wiki do Vim e, apesar de não ser perfeito, é a melhor solução se você precisar trabalhar em diferentes sistemas operacionais.

Alguém ainda usa você no MS-DOS
fonte
Você pode combinar isso com au GUIEnter * simalt ~ x ??
snitzr
Sim, criando uma condição no seu vimrc para saber se é Windows ou Linux. Como estou usando principalmente o Linux, adicionarei essa configuração mais tarde.
Alguém ainda usa o MS-DOS
Essa abordagem não funciona para mim no GNOME 3. Quando a janela já não estava maximizada, isso diminuía a velocidade do Vim por um tempo (não acontece quando eu maximizava o uso do gerenciador de janelas) e deixava uma pequena margem acima a janela descoberta, porque a altura da minha tela não é um múltiplo perfeito da altura da linha. Quando a janela foi verticalizada (mas não horizontalmente) maximizada, arrastando a janela para a esquerda ou direita da tela, isso não terá efeito.
Andres Riofrio
@AndresRiofrio Para essas situações (vários ambientes de desktop no Linux), estou pensando seriamente em usar o devilspie . É uma solução de terceiros, eu sei, mas pode funcionar. Eu usei em alguns outros aplicativos que eu queria que fosse aberto maximizado.
Alguém ainda usa o MS-DOS
Isso também faz com que a janela fique enorme se você a des maximiza.
Kevin Cox
6

Truque com:

au GUIEnter * simalt ~x

depende do idioma do Windows.

Para a minha versão em polonês funciona:

GUIEnter * simalt ~ s

De onde svem Mak_s_ymalizuj.

Portanto, se ~xnão funcionar, pressione ALT+SPACEpara abrir o menu Janela e verifique o atalho para a opção de menu Ma_x_imize Window .

Grzegorz Gierlik
fonte
1
E ~ n para francês ("Agra & ndir") #
Sébastien RoccaSerra
1
E ~ m para norueguês
Bjarte Brandt
4

Você pode usar o plugin maximize.dll para veiw em tela cheia no Vim (se você estiver usando o Windows). Basta copiar o maxim.dll na vimdirectory/pluginpasta.

fatihturan
fonte
3

Para mim, :simalt ~xfiz o truque. (Windows 7, inglês.)

Por Christian Corneliussen
fonte
3

No GNU / Linux

No GNU / Linux, a maneira mais fácil é chamar gvimcom a -geometryopção Por exemplo:

gvim -geometry 1336x744

Isso não é útil se você deseja reutilizar o mesmo comando de inicialização em máquinas diferentes.

Aqui está o que estou usando agora em várias máquinas sem problemas. Basta adicioná-lo em algum lugar no seu .vimrc.

if has("gui_running")
  " GUI is running or is about to start.
  " Maximize gvim window (for an alternative on Windows, see simalt below).
  set lines=999 columns=999
else
  " This is console Vim.
  if exists("+lines")
    set lines=50
  endif
  if exists("+columns")
    set columns=100
  endif
endif

Fonte: http://vim.wikia.com/wiki/Maximize_or_set_initial_window_size

Serge Stroobandt
fonte
Para o Linux, essa é provavelmente a melhor opção. em .zshrc do alias v = "gvim -geometry 1366x768" e você está pronto para sempre.
Tanel Tammik
@TanelTammik Dê uma olhada novamente na minha resposta. Eu o editei substancialmente para mostrar a melhor solução que estou usando agora. Obrigado pela votação antecipada.
Serge Stroobandt
2

UPDATE: para usuários Linux, eu encontrei uma solução muito melhor que realmente maximiza a janela: https://stackoverflow.com/questions/12448179/how-to-maximize-vims-windows-on-startup-with-vimrc

A única dependência é wmctrl, mas vale a pena instalar.

Assim, para o Windows eu uso maximize.dll plug-in (como já mencionado por @fatihturan), e para linux que eu uso wmctrl. Ótimo!

(mas eu realmente não consigo entender por que, em 2014, o gvim não possui esse recurso pronto para uso)


Resposta antiga:


Para mim, o hack simples :set lines=999 columns=999funciona mal no meu Linux Mint MATE com dois monitores. Normalmente, o gvim é aberto no monitor secundário, não há barra de tarefas, portanto, o Vim deve ocupar a tela inteira. Mas, se o fizer :set lines=999 columns=999, o gvim reduz esses valores para o tamanho do monitor primário ; portanto, há uma pequena área abaixo da janela do gvim sem uso. É melhor se eu definir a contagem de linhas / colunas reais: basta maximizar sua janela "manualmente" e digitar :set lines?e :set columns?, para obter os valores necessários. Como eu uso dois monitores, também preciso especificar a posição da janela; portanto, digite :winpospara obter a posição atual da janela.

E, secundário, é melhor não apenas colocar essas configurações no .vimrc, mas executá-las quando a GUI estiver carregada.

Então, receita final:

1) maximizar o seu gvim com a mão e digitar três comandos para obter valores reais: :winpos, :set lines?e :set columns?.

2) adicione isso a .vimrc:

function Maximize()

   " put your actual values below
   winpos 0 0
   set lines=78
   set columns=237

endfunction

autocmd GUIEnter * call Maximize()
Dmitry Frank
fonte
Interessante. Talvez você possa obter dinamicamente os valores de linhas e colunas no vimscript, para que esta configuração funcione em todos os dispositivos.
Alguém ainda usa o MS-DOS
1

Ubuntu (16.04)

Melhor deixar que o gerenciador de janelas faça essa tarefa, pelo menos no Ubuntu , ele será exibido gvimem tela cheia em vez de maximizar a janela, oferecendo mais espaço. É claro que essa solução depende da plataforma e não da plataforma cruzada, mas é uma opção muito melhor para o Ubuntu . Você pode até configurar gvimpara abrir em uma viewport específica .

Gerenciador de configurações de configuração do Compiz -> Colocar janelas -> Posicionamento de janela fixo -> Janelas com modo de posicionamento fixo -> novo

 Windows class=Gvim
 Mode    Maximize

Se você não possui o Compiz Config Settings Manager:

sudo apt install compizconfig-settings-manager
Janghou
fonte
1

Se você deseja que o vim atinja a tela inteira no Windows completamente (como na figura), o plugin gvimfullscreen_win32é altamente recomendado.

O plug-in permite um acesso mais fácil a um modo de tela cheia e a um ambiente sem distrações. Você também pode adicionar :set go=para ganhar mais espaço. Aqui está uma captura de tela (Gvim7.4 no Windows 8.1):

insira a descrição da imagem aqui

rahuldottech
fonte
0

Acredito que você pode fazer isso $HOME/.vimrcpara conseguir o que deseja:

if has("gui_running")
     set fuoptions=maxvert,maxhorz
     au GUIEnter * set fullscreen
 endif

Você pode confirmar onde a tela cheia está sendo aplicada da seguinte maneira:

:verbose set nofullscreen?
 fullscreen
       Last set from ~/.vim_runtime/my_configs.vim
slm
fonte
Parece que isso só funciona para o MacVim.
Michael Yoo