Как запустить gvim с развернутым окном из bash-скрипта в gnome - PullRequest
4 голосов
/ 05 мая 2011

Я хочу написать bash-скрипт, который запускает gvim-сессию прямо в развернутом окне.

Это мой bash-скрипт:

#!/bin/bash - 
set -o nounset

cd /home/alexthebird/vim-stuff; # directory of the gvim-session file
gvim -S bootmap;                # start gvim from the sessionfile 'bootmap'

У вас есть идеи, как этого добиться с помощью bashscript? Gvim должен быть максимально развернут, только если он запущен поверх этого скрипта. Конечно, приветствуются любые другие идеи, как этого добиться.

Я использую Ubuntu 11.04 с gnome.

Спасибо, что нашли время, чтобы прочитать мое сообщение.

AlexTheBird

Этот скрипт работает:

#!/bin/bash - 
set -o nounset
# directory of the gvim-session file
cd /home/alexthebird/vim-stuff;
# -f because of a ubuntu global-menu bug
# -S starts from session-file named 'bootmap'
# -geom solved the problem. see post of Lstor
gvim -geom '200x50+0+0' -f -S bootmap; # start gvim from the sessionfile 'bootmap';

Спасибо всем за ваше время.

РЕДАКТИРОВАТЬ: Я только что обнаружил, что вышеупомянутое решение работает только для рабочего стола Unity-2D (без 3D-ускорения) . Что хорошо для меня. Он не работает со стандартным рабочим столом Ubuntu, который использует ускоренную 3D-версию Unity.

Ответы [ 3 ]

5 голосов
/ 06 мая 2011

На Ubuntu 8.04, Gnome у меня работает следующее (основываясь на комментариях к этому форуму ):

#!/bin/bash
gvim

sleep 1  # give gvim time to launch

wmctrl -r :ACTIVE: -b toggle,maximized_vert,maximized_horz

Возможно, вам потребуется установить wmctrl:

sudo apt-get install wmctrl
2 голосов
/ 05 мая 2011

Вы можете использовать опцию -geom (etry), чтобы сопоставить размер с размером вашего монитора (ов).

gvim -geom 200x50+0+0

Где 200 - количество символов, которое вы можете разместить по горизонтали,50 - это то же самое по вертикали, а +0+0 указывает нулевое горизонтальное и вертикальное смещение от верхнего левого угла экрана.

Обратите внимание, что окно не будет развернуто как таковое, оно будет только (примерно) того же размера, что и ваш дисплей.

0 голосов
/ 07 января 2014

как @Curt Nelson, я использую wmctrl, с autocmd и guienter. Он работает как на моем Windows 7 и Ubuntu 13.10.

  1. Установить wmctrl: sudo apt-get install wmctrl
  2. добавьте следующий скрипт в вашу конфигурацию.

Сценарий:

if has("gui_running")
    if MySys() == 'linux'
        autocmd GUIEnter * silent !wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
    else
        winpos 0 0
        set lines=99999 columns=99999
        autocmd guienter * let &columns = 999 | let &columns = &columns/2 
        autocmd guienter * set lines=9999 columns=9999
    endif
endif
...