Seite 1 von 1

Split-Views in Konsole

Verfasst: So Jul 29, 2018 6:26 pm
von Architekt
Hallo zusammen!
Mein Kollege benutzt für einfach alles Neo-Vim und hat dort die Möglichkeit, Split-Views in der Konsole zu verwenden. Ich frage mich, wie man in der Konsole mehrere Terminals (bzw. Emulatoren) ermöglicht. Ich weiß, dass es dazu mehrere Multiplexer gibt, wie tmux oder screen, aber mich interessiert speziell der Fall in Vim, da ich so einen Terminal-Split-View aus Jux gerne mal für Windows für einen der Terminal-Emulatoren programmieren würde. Bislang verwende ich ConEmu bzw. cmder aber das sind ja - soweit ich weiß - Guis die in den Widgets Terminals einbetten.
Soweit ich weiß, sind es in Vim verschiedene Text-Buffer in denen geschrieben werden kann, aber wie werden die nebeneinander in der Konsole platziert?
Außerdem hat Vim ja auch die Möglichkeit, diese Terminal-Views als Shell zu benutzen und damit auch ganz normale Terminal-Kommandos auszuführen: wie werden die an das Terminal weiter delegiert?
Ich hoffe jmd. kann mir weiterhelfen.

Re: Split-Views in Konsole

Verfasst: So Jul 29, 2018 11:03 pm
von Xin
Moin,

Ich weiß nicht, wie vim das macht, aber das sollte alles mit NCurses gehen.
Allerdings weiß ich nicht, ob NCurses auf Windows funktionsfähig ist, aber prinzipiell müsste das gehen, schließlich läuft es mit CygWin ja auch.

Re: Split-Views in Konsole

Verfasst: Mo Jul 30, 2018 7:00 am
von Architekt
Danke, das wäre schonmal ein guter Startpunkt. Ich hatte aber gehofft, das Prinzip dahinter besser zu verstehen. :) Im Grunde will ich das nur für Windows, daher sollte es doch wesentlicher simpler sein als Plattformunabhängig. Aber ich weiß nicht, welche Funktionen mir die Terminal-Manipulation erlauben, schon gar nicht im Punkt Split-View. :/

Re: Split-Views in Konsole

Verfasst: Mo Jul 30, 2018 9:00 am
von Xin
In NCurses schreibst Du nicht mehr auf die Konsole, sondern in Speicherbereiche. Dein print-Befehl schreibt also in ein NCurses-Fenster. Diese Fenster kannst Du in der Konsole anordnen. Übereinander, aufeinander, nebeneinander. Ordnest Du zwei Fenster nebeneinander an, hast Du ein Splitview.

Re: Split-Views in Konsole

Verfasst: Mo Jul 30, 2018 2:02 pm
von Architekt
Wäre sowas auch nativ möglich, ohne Bibliothek wenn es nur für ein OS ist?

Re: Split-Views in Konsole

Verfasst: Mo Jul 30, 2018 4:28 pm
von Xin
Möglich ist das schon, aber dann schreibst Du Deinen eigene Library.
Also nicht nur, dass Du sie schreibst, Du musst ja auch erstmal selbst rausfinden, wie das im Detail alles funktioniert.
Das ist bis zu einer gewissen Problematik ja auch vertretbar, aber willst Du das?

Re: Split-Views in Konsole

Verfasst: Mo Jul 30, 2018 5:03 pm
von Architekt
Ich würde zumindest gerne das Konzept dahinter verstehen. Vim hat ja meines Wissens auch nun eine eigene Implementierung und verwendet NCurses nicht mehr. Davon abgesehen werde ich mal rausfinden, ob man ncurses auch auf Windows verwenden kann.

Re: Split-Views in Konsole

Verfasst: Mo Jul 30, 2018 5:14 pm
von Xin
Was möchtest Du denn verstehen? Du musst den Cursor positionieren können und dort ein Zeichen drucken können. Das kombinierst Du dann entsprechend, dass Du Fensterblöcke schreiben kannst, ohne andere Bereiche zu verändern.

Re: Split-Views in Konsole

Verfasst: Mo Jul 30, 2018 9:52 pm
von Architekt
Eine Anleitung, Tutorials oder Beispiele wie das geht wäre cool. Leider findet man recht wenig dazu. Wie teilt man z.B. das Terminal in einzelne Views auf?

Re: Split-Views in Konsole

Verfasst: Di Jul 31, 2018 6:34 am
von Xin
Architekt hat geschrieben:
Mo Jul 30, 2018 9:52 pm
Eine Anleitung, Tutorials oder Beispiele wie das geht wäre cool. Leider findet man recht wenig dazu. Wie teilt man z.B. das Terminal in einzelne Views auf?
Wer in der Konsole mehrere Fenster braucht ist in der Regel kein Anfänger mehr, die Dokumentation lässt dann häufig zu wünschen übrig.

Ich habe mal sowas angefangen, aber das liegt schon länger brach.