Auf der Suche nach einem zentrierten Vollbild-Terminal

8

Es gibt verschiedene „ablenkungsfreie Editoren“ zum Schreiben: Diese bieten eine minimale Vollbildumgebung mit dem Ziel, sich auf die jeweilige Aufgabe zu konzentrieren.

Ich möchte etwas Ähnliches machen vim. Während ich es einfach oben in einem Terminal und drücken Sie dann auf F11 abfeuern kann es zu Vollbild zu setzen, ich auch wollen , um die Breite zu begrenzen um 75 Zeichen und den Bereich Zentrum Ich verwende.

Überlegen Sie, wie Textverarbeitungsprogramme mitten im Programm eine virtuelle Seite bereitstellen - genau das möchte ich. Art von.

Gibt es eine Möglichkeit, dies entweder mit einem speziellen Terminalprogramm oder mit einer Einstellung in vim zu tun? Wenn eines der GUI vim-Programme über diese Funktion verfügt oder wenn es eine andere Möglichkeit gibt, an die ich nicht gedacht habe, wäre dies ebenfalls eine nützliche Antwort.

Übelsuppe
quelle

Antworten:

12

Wenn Sie screenin einem maximierten xterm( Alt-Enterin xterm) beginnen als:

screen -c this-file

Wo this-fileenthält:

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

Sie erhalten einen mittleren Bereich der Breite 75.

Stéphane Chazelas
quelle
Das ist fast perfekt, danke. Dadurch werden weiße Ränder um den aktiven Bereich und am unteren Rand des Terminals angebracht. Weißt du, ob es einen Weg gibt, diese loszuwerden?
Evilsoup
Das hat bei mir nicht funktioniert.
slm
1
RE: Mein vorheriger Kommentar, die Antwort auf die Beseitigung der Grenzen finden Sie in dieser SU-Frage . Ich habe die Zeilen in meine eingefügt .screenrc, sodass meine Standardeinstellung screenalle Befehle hier verwendet. Funktioniert perfekt für mich unter Ubuntu 13.04, gnome-terminalVersion 3.6.1 (und unter xterm und guake) und screenVersion 4.00.03jw4. Vielen Dank!
Evilsoup
Ich bin auf Fedora 14 und Gnome-Terminal Version 2.32.0. Bildschirmversion 4.00.03. xterm -v6.8.99.903. Funktioniert dort nicht.
slm
Versuchte es auf Ubuntu 13.04 funktionierte dort. Ich sehe jetzt, was es tut. Es sind 3 Scheiben, die gleichmäßig aufgeteilt sind und der Fokus liegt in der Mitte.
slm
1

Eine Alternative besteht darin, ein Programm devilspiezu verwenden, um dies zu erreichen. Falls Sie noch nie gehört haben von devilspie:

Auszug

Ein Dienstprogramm zur Fensteranpassung, das von Sawfishs Option „Matched Windows“ und dem Mangel an Funktionen in Metacity inspiriert wurde. Metacity ohne Fenstermatching ist keine schlechte Sache - Metacity ist ein schlanker Fenstermanager, und Fenstermatching muss keine Fenstermanageraufgabe sein.

Devil's Pie kann so konfiguriert werden, dass Fenster beim Erstellen erkannt und das Fenster einem Regelsatz zugeordnet werden. Wenn das Fenster den Regeln entspricht, kann es eine Reihe von Aktionen für dieses Fenster ausführen. Zum Beispiel kann ich alle von X-Chat erstellten Fenster in allen Arbeitsbereichen anzeigen lassen, und das Hauptfenster von Gkrellm1 wird nicht im Pager oder in der Aufgabenliste angezeigt.

Es sollte in den Repos der meisten Distributionen sein.

Beispiel

Um ein darin zentrierendes xtermFenster zu vimzentrieren, gehen Sie wie folgt vor.

  1. Machen Sie Ihre Devil's Pie-Konfiguration. dir.

    $ mkdir ~/.devilspie
    
  2. Erstellen Sie eine .dsDatei, in der Sie die Devil's Pie-Regel angeben

    $ cat ~/.devilspie/something.ds 
    (if
        (matches (application_name) "vim")
        (begin
            (geometry "600x400")
            (center)
        )
    )
    
  3. Ausführen devilspie. Ich mag es Debug-Modus ( -d) auszuführen, um zu starten.

    $ 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. Führen Sie unsere xtermmit vim.

    $ xterm -e vim
    

    ss von xterm vim

Wie heißt mein Fenster?

Mit dem Befehl können xlsclient -lSie eine Liste der geöffneten Fenster abrufen. Ich finde es der einfachste Weg, den Namen eines Fensters für die Einbindung in zu bestimmen devilspie. Vielleicht möchten Sie auch davon Gebrauch machen xwininfo.

Beispiel

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

Sie können einen Windows-Namen wie folgt steuern:

$ xterm -title WeirdWindow -e vim

Verweise

slm
quelle
Das ist definitiv ordentlich, aber ich versuche nicht, es zu erreichen. Es positioniert das Fenster nur an einer bestimmten Stelle und mit bestimmten Fensterabmessungen, oder? Ich möchte eine aktive "Seite" in der Mitte des Bildschirms haben, während der Rest des Bildschirms leer ist - damit keine Ablenkungen im Hintergrund auftreten.
Evilsoup
@evilsoup - ja, es zentriert xterm @ angegebene Dimensionen. Sie können den Hintergrund ausblenden. Ich werde meine Antwort aktualisieren, damit wir eine alternative Methode haben. Ihre Frage hat nicht gesagt, dass Sie wollten, dass sie im Hintergrund ausgeblendet wird. Vielleicht habe ich etwas verpasst. Ich denke auch, dass dir die Kraft von fehlt devilspie. Sie können der .ds-Datei beispielsweise eine Regel hinzufügen, um beispielsweise alles andere zu minimieren.
slm
@evilsoup - würde es ausreichen, den Hintergrund auszublenden? Ich weiß, dass Sie die andere Lösung haben, aber ich wollte nur eine alternative Methode anbieten.
slm
1

Es gibt ein Plugin für Vim namens VimRoom , das dies über ein Mapping bereitstellt (Standard ist V).

Wieland
quelle