Ищете центрированный полноэкранный терминал


8

Существует несколько различных «редакторов без отвлекающих факторов» для написания: они обеспечивают полноэкранную минимальную среду с целью заставить себя сосредоточиться на поставленной задаче.

Я хочу сделать что-то подобное с vim. Хотя я могу просто запустить его в терминале, а затем нажать F11, чтобы перевести его в полноэкранный режим, я также хочу ограничить ширину до 75 символов и центрировать область, которую я использую.

Подумайте о том, как текстовые процессоры предоставляют виртуальную страницу в середине программы - вот чего я хочу. Вроде.

Есть ли способ сделать это, либо с помощью специальной программы терминала или с некоторыми настройками в vim? Если одна из программ vim с графическим интерфейсом имеет такую ​​возможность, или если есть какой-то другой способ сделать это, о котором я не думал, это также было бы полезным ответом.

Ответы:


12

Если вы начинаете screenв развернутом xterm( Alt-Enterв xterm) как:

screen -c this-file

Где this-fileсодержится:

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

Вы получите центральную область ширины 75.


Это так близко к идеалу, спасибо. Это устанавливает белые границы вокруг активной области и вдоль нижней части терминала; Вы знаете, есть ли способ избавиться от них?
evilsoup

Это не сработало для меня.
Slm

1
RE: мой предыдущий комментарий, ответ на избавление от границ можно найти в этом вопросе SU . Я поместил строки в мой .screenrc, так что мой стандарт screenбудет использовать все команды здесь. У меня отлично работает на Ubuntu 13.04, gnome-terminalверсии 3.6.1 (и на xterm и guake) и screenверсии 4.00.03jw4. Спасибо!
evilsoup

Я на Fedora 14 и gnome-терминал версии 2.32.0. Версия экрана 4.00.03. xterm -v6.8.99.903. Там не работает.
Slm

Пробовал на Ubuntu 13.04 там работать. Теперь я вижу, что он делает. Это 3 панели, разделенные поровну, и фокус находится на средней.
SLM

1

Альтернатива состоит в том, чтобы использовать программу, например, devilspieдля этого. Если вы никогда не слышали о devilspie:

выдержка

Утилита сопоставления окон, вдохновленная опцией Sawfish «Соответствующие окна» и отсутствием функциональности в Metacity. В Metacity отсутствие соответствия окон не является плохой вещью - Metacity - простой оконный менеджер, и сопоставление окон не обязательно должно быть задачей диспетчера окон.

Пирог Дьявола может быть настроен на обнаружение окон по мере их создания и сопоставление окна с набором правил. Если окно соответствует правилам, оно может выполнить ряд действий над этим окном. Например, я могу сделать так, чтобы все окна, созданные X-Chat, появлялись во всех рабочих пространствах, а главное окно Gkrellm1 не появлялось в списке пейджеров или задач.

Это должно быть в репозиториях большинства дистрибутивов.

пример

Чтобы центрировать xtermокно, бегущее vimвнутри него, вы должны сделать следующее.

  1. Создайте свой дьявольский пирог. реж.

    $ mkdir ~/.devilspie
    
  2. Создайте .dsфайл, указав, что вы - правило Пирога Дьявола

    $ cat ~/.devilspie/something.ds 
    (if
        (matches (application_name) "vim")
        (begin
            (geometry "600x400")
            (center)
        )
    )
    
  3. Беги devilspie. Мне нравится запускать режим отладки ( -d) для запуска.

    $ 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. Беги xtermс нами vim.

    $ xterm -e vim
    

    ss of xterm vim

Как называется мое окно?

Вы можете использовать команду, xlsclient -lчтобы получить список открытых окон. Я считаю, что это самый простой способ определить имя окна для включения в devilspie. Вы также можете использовать это xwininfoтоже.

пример

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

Вы можете управлять именем окна следующим образом:

$ xterm -title WeirdWindow -e vim

Ссылки


Это определенно изящно, но это не то, чего я пытаюсь достичь. Он просто размещает окно в указанном месте и с указанными размерами окна, верно? Я хочу, чтобы в центре экрана была активная «страница», а остальная часть экрана пуста, чтобы на заднем плане не было отвлекающих факторов.
evilsoup

@evilsoup - да, он центрирует xterm @ указанных размеров. Вы можете очистить фон, я обновлю свой ответ, чтобы у нас был альтернативный метод. В вашем вопросе не говорилось, что вы хотели, чтобы он был пропущен на заднем плане, может быть, я что-то пропустил. Также я думаю, что вам не хватает силы devilspie. Вы можете добавить правило в файл .ds, чтобы минимизировать все остальное, например.
slm

@evilsoup - хватит ли гашения фона? Я знаю, что у вас есть другое решение, но я просто хотел предложить альтернативный метод.
SLM

1

Есть плагин для Vim, который называется VimRoom, который обеспечивает это через сопоставление (по умолчанию V).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.