Ich benutze einen Tiling Window Manager (genial) + einen Terminal Multiplexer (tmux) + Splits innerhalb von vim. Ich habe überhaupt keine Fensterdekorationen, also gibt es überhaupt keine visuelle Trennung zwischen ihnen, wenn der Inhalt des Programms es nicht preisgibt. Ich bin mit diesem Paradigma ziemlich vertraut, da ich ohnehin mehrere Monitore und Gruppenaufgaben pro Bildschirm verwende. Wenn zwei Fenster keinen Grund hätten, nebeneinander zu stehen, wären sie gar nicht erst da.
Dies führt jedoch zu einer visuellen Dissonanz, bei der die augenscheinlichste visuelle Trennung semantisch die geringste Bedeutung hat.
- Xorg window ‹|› window = gar nichts
- Tmux pane ‹|› pane = 1px Trennlinie
- Vim split ‹|› split = 1 zeichen breite farbige Spalte
Hier ist ein Beispiel, das nebeneinander Fenster, Fenster und Vim-Splits zeigt:
Die weiße Trennlinie, die Sie sehen, ist die am wenigsten signifikante Teilung auf dem Bildschirm, die Vim-Fenster. (Beachten Sie, dass die graue Spalte auf der rechten Seite der VIM-Sitzung eigentlich eine 80. Spalte ist und keine Unterteilung, obwohl ich oft mit dieser Größe arbeite.)
Mir ist bewusst, wie ich das im Split gezeichnete Zeichen ändern oder den Kontrast des Farbschemas verringern kann. Was ich tun möchte, ist, den gleichen geteilten Balken wie tmux zu verwenden, der keine Breite einnimmt, da er eher zwischen als in einer Spalte gezeichnet wird. Ist dies mit terminalbasiertem vim möglich? Gvim? Neovim? Kann die Trennsäule vollständig ausgeschaltet werden, wenn ein optisch unauffälliger Separator vorhanden ist?
PS Der Grund für die Verwendung eines visuell ähnlichen Trennzeichens ist, dass ich dieselben Tastenkombinationen verwende, um zwischen tmux-Fenstern und vim-Teilungen zu navigieren. Die gleichen Tasten navigieren nahtlos zwischen ihnen. Es wäre nur sinnvoll, wenn auch die visuellen Grenzen gleich wären.
hi VertSplit cterm=NONE
weil esreverse
standardmäßig ist.Selbst in meinem eigenen Screenshot verwendet tmux keine Magie, die Aufteilung ist immer noch eine einzelne zeichenbreite Spalte. Der weniger aufdringliche visuelle Effekt ist die Verwendung eines Unicode-Zeichnungszeichens, das weniger umständlich als die ASCII-Standardeinstellung von vim ist, und das Fehlen einer hervorgehobenen Hintergrundfarbe.
In vim ist fast der gleiche Effekt möglich, wenn der rc-Datei etwa die folgenden Zeilen hinzugefügt werden:
Die Verwendung von
autocmd
garantiert, dass die Hervorhebungsüberbrückung wirksam bleibt, wenn Sie die Farbschemata wechseln. Möglicherweise möchten Sie dieses Verhalten nicht, da einige Farbschemata sinnvolle Werte für diese Farbgruppe haben.Beachten Sie auch, dass
cterm=NONE
einige Farbschemata, für die dieser Wert festgelegt ist, außerreverse
Kraft gesetzt werden müssen, um mit den von Ihnen verwendeten fg / bg-Werten in Konflikt zu geraten.quelle
Nein, dies ist in Vim nicht möglich und in GVIM wahrscheinlich nur sehr schwer zu implementieren.
Vim hält sich an die im Terminal verwendete zellenbasierte Adressierung. Innerhalb eines Puffers ist dies entscheidend für eine konsistente vertikale Navigation mit
j
/k
. Diese Adressierung durch zellenbasierte x- und y-Koordinaten ist in der Implementierung von Vim so tief verwurzelt, dass es sehr schwer zu überwinden ist.Beachten Sie auch
:help design-not
:quelle