Texteditor mit geteilter Bildschirmoption

26

Gibt es einen Editor, der die Option hat, den Bildschirm in zwei oder mehr Teile zu "teilen", auf mehr als eine Datei zuzugreifen (möglicherweise mit einem Dateibaum), ohne mehr Editorfenster gleichzeitig zu öffnen, und wie würde man das tun (was sind die)? Befehle).

Ich weiß nicht, ob ich mich klar ausgedrückt habe, aber "geteilter Bildschirm" ist der einzige Weg, um zu beschreiben, was ich erreichen möchte. Ich möchte es zum Programmieren verwenden, wobei mehr als eine Datei zum Bearbeiten geöffnet ist. Beachten Sie, dass ich sowohl für vi als auch für Emacs ziemlich neu bin, wenn diese dazu in der Lage sind. Wenn dies über einen Terminal-Editor erfolgen muss, kann dies unabhängig von der Bildschirmgröße im selben Terminal erfolgen?

Vorabend
quelle
1
Ich weiß, dass Sie speziell nach Redakteuren und nicht nach Terminals gefragt haben, aber ich denke, es lohnt sich, dies für zukünftige Besucher zu beachten: Der Terminal-Emulator terminatorverfügt auch über die Funktion "Geteilter Bildschirm": ctrl + shift + ewird vertikal und ctrl + shift + ohorizontal geteilt (und ctrl + shift + töffnet auch einen neuen Tab).
Carlos Campderrós
@ CarlosCampderrós Ich werde das im Hinterkopf behalten, danke!
Eve
1
@ CarlosCampderrós: ​​Sie können auch einen Multiplexer wie screen oder tmux verwenden, um dies in anderen Terminalemulatoren zu erreichen. Der Nachteil ist natürlich, dass Sie daran denken müssen, sie zuerst auszuführen, aber die Flexibilität ist es wahrscheinlich wert.
Phoshi

Antworten:

38

vim das kann man leicht machen:

ctrl+ ws- Fenster teilen

ctrl+ ww- zwischen Fenstern wechseln

ctrl+ wq- Ein Fenster verlassen

ctrl+ wv- Fenster vertikal teilen

:sp filename

öffnet sich filenamein neuem Zwischenspeicher und teilt ein Fenster.

Sie können auch tun

vim -o file1 file2

Zum Öffnen der Dateien in einem geteilten Bildschirmlayout. Ersetzen Sie -odurch -Ofür vertikale Teilung anstelle von horizontal.

eilen
quelle
4
Oder geben Sie ein :help CTRL-W, um alle geteilten Fensteroperationen anzuzeigen.
Bernhard
1
Wow großartig! Ich bin auch auf ": split" gestoßen, aber es wird nur horizontal geteilt. Kannst du bitte genau angeben, welche Version von vim das ist? Vielen Dank!
Eve
@Eve Ich benutze VIM (Vi IMproved) 7.3.
Rush
1
@Eve - Sie können auch verwenden :vsplit, um eine vertikale Teilung zu erstellen, und wie :splites einen Dateinamen oder einen Befehl akzeptiert
Nutzlos
1
Und wie <C-w>h/ j / k / l sich zwischen Fenstern in bestimmte Richtungen bewegt, bewegt <C-w>H/ J / K / L (groß geschrieben) das Fenster in diese Richtung.
Izkata
13

Dies kann mit Emacs erfolgen. Es funktioniert in GUI und im Terminalmodus. Sie können sogar mehrere Male teilen. Hier sind einige grundlegende Tastenkombinationen:

Cx 2 Teilt das ausgewählte Fenster in zwei Fenster übereinander (Fenster teilen-unten).
Cx 3 Teilen Sie das ausgewählte Fenster in zwei Fenster, die nebeneinander positioniert sind (Fenster rechts teilen).
C-Maus-2 Teilen Sie dieses Fenster in der Moduszeile eines Fensters.

Quelle: http://www.gnu.org/software/emacs/manual/html_node/emacs/Split-Window.html

Jordanien
quelle
1
Für alle, die mit der Emacs- Terminologie nicht vertraut sind , ist zu beachten, dass ein Emacs- Fenster das ist, was viele andere Editoren als Bildschirm oder Bedienfeld bezeichnen . Ein Emacs Rahmen ist , was andere nennen ein Fenster (es wird ein sogenannter Frame , da die Fenster in ihm sind eingerahmt entweder vom Desktop - Dekoration (Titelleiste und Ränder) oder durch das Terminal ... Windows - enthalten Puffer (einen Text, in der Regel ein Datei)
Peter.O
1
@ Peter.O - Nicht nur für diejenigen, die mit Emacs nicht vertraut sind ... Ich benutze Emacs seit über 5 Jahren und hätte die Unterschiede nicht erklären können. Ich benutze es einfach.
Jordan
11

Mit vim können Sie splitoder verwenden vsplit.

Das erste wird horizontal geteilt und das zweite vertikal.

CTRLw dann durch geteilte Bildschirme navigieren.

Sie können auch die Registerkarte verwenden. tabnew filenameöffnet den Dateinamen in einem neuen Tab. Sie können mit tabnextund :tabpreviouszwischen den Tabs navigieren.

Ich ordne die linken und rechten Pfeile persönlich zu, um zwischen den Registerkarten zu navigieren:

map <right> :tabnext<CR>
map <left> :tabprevious<CR>
inoremap <right> <ESC>:tabnext<CR>a
inoremap <left> <ESC>:tabprevious<CR>a
Luc M
quelle
1
Darüber hinaus kann das NERD_tree-Plug-In zum Anzeigen des Verzeichnisbaums in einem separaten Split verwendet werden. ( vim.org/scripts/script.php?script_id=1658 )
Bernhard
7

Kate

KDE Advanced Text Editor ist sehr leistungsfähig.
Es hat alles, was Sie in der Frage beschrieben haben und vieles mehr .

Überzeugen Sie sich selbst:

Bildschirmfoto

Um die Ansicht zu teilen, gehen Sie zu AnsichtAnsicht teilen . Dann können Sie eine dieser Optionen auswählen:

  • Vertikal teilen ( Ctrl+ Shift+ L)
  • Split Horizotal ( Ctrl+ Shift+ T)
  • Aktuelle Ansicht schließen ( Ctrl+ Shift+ R)

Um das Layout wie in diesem Screenshot, Vertikal teilen, zu erhalten , klicken Sie auf die Ansicht von unten und dann auf Horizontal teilen .

Natürlich können Sie die Grenzen der Ansichten ändern, indem Sie die Grenzen (Splitter) zwischen ihnen ziehen. Verwenden Sie F8und Shift+, um zwischen den Ansichten zu wechseln F8.

Übrigens hat Kate einen sogenannten VI-Modus ( EinstellungenKate konfigurieren…Bearbeiten → VI-Eingabemodus). Dann werden die Verknüpfungen für die Ansichtsaufteilung dieselben wie in Vim (siehe diese Antwort ).

Oleh Prypin
quelle
7

joe( Joes eigener Editor ) kann dies auch:

ctrl+ ko- Fenster horizontal teilen

ctrl+ kp- Zum vorherigen Fenster wechseln

ctrl+ kn- zum nächsten Fenster wechseln

ctrl+ ke- Neue Datei im aktuellen Fenster öffnen

ctrl+ kg- Höhe des aktuellen Fensters vergrößern

ctrl+ kt- Höhe des aktuellen Fensters verkleinern

ctrl+ ki- Alle Fenster mit Ausnahme des aktuellen Fensters ausblenden, erneut drücken, um alle Fenster wieder anzuzeigen

ctrl+ coder ctrl+ kx- schließe ein Fenster

scai
quelle
5

Sublime Text 2 kann das (und vieles mehr).

Dan F.
quelle
4

Wenn Sie daran interessiert sind, etwas besser mit VIM umzugehen , besuchen Sie vimcasts.org. Dort finden Sie eine Reihe wirklich freundlicher Video-Tutorials. Dieser speziell für Split-Screen-Magie

Genießen!

lwm
quelle
Das ist schön, vielen Dank! Ich würde das mehr betonen, aber ich darf nur einen.
Eve
2

In Bezug auf Dateibäume verwende ich persönlich NERDtree mit Vim. Es erfordert Pathogen. Ich fand den Befehl zum Öffnen des Baums ( :NERDtree toggle, iirc) etwas lang, daher habe ich ihn neu zugeordnet <F2>. Wenn Sie an einem Projekt mit vielen Dateien in vielen Verzeichnissen arbeiten (denken Sie an Rails-Projekte), ist dies eine sehr schöne Sache.

BEARBEITEN:

NERDtree ist auf Github: https://github.com/scrooloose/nerdtree

Dies ist die Neuzuordnung, die ich in meiner .vimrc verwende: map <F2> :NERDTreeToggle<CR>

AlexWebr
quelle
Danke, ich habe vielleicht noch andere Fragen dazu. Die reserviere ich für ein anderes Mal. ;)
Eve
1

Ich benutze tmuxund vimfür Split-Screen - Bearbeitung in einem Terminal-basierte Umgebung, obwohl Sie eine Befehlszeile basierte Texteditor für diesen verwenden könnten (zB nano, emacsetc.).

tmuxist die Abkürzung für "Terminal Multiplexer" und ermöglicht Ihnen das Erstellen von Sitzungen mit mehreren Terminals, die in separaten "Fenstern" und auch "Fenstern" in diesen Fenstern ausgeführt werden. Mit diesen Fenstern können Sie den Bildschirm aufteilen. tmuxist in den Repositories vieler Linux- und BSD-Distributionen enthalten. Ich halte dies für die flexibelste Codierungsoption, da ich auch Splits und Fenster hinzufügen kann, die Terminals enthalten, in denen ich Code kompilieren und ein Versionskontrollsystem verwenden kann, z. B. gitneben der Codebearbeitung.

Hier ist ein Beispiel dafür , wie ich eine Split - Screen - Editiersitzung verwenden schaffen würde tmuxund vim.

Öffnen Sie zuerst ein Terminal. Im Folgenden werden Befehle, die nach geschrieben wurden $, über die Befehlszeile ausgegeben. Dabei werden die Standardschlüsselbindungen in verwendet tmux.

  1. Starten Sie eine neue tmux-Sitzung. Hier machen wir eine namens "Codierung":

    $ tmux new -s coding

    tmux hat gerade geöffnet

  2. Drücken Sie Ctrl+, bgefolgt von entweder %für eine vertikale Aufteilung oder "für eine horizontale Aufteilung.

    vertikale Teilung

    horizontale Teilung

  3. Sie können zwischen den Teilungen (oder im tmuxSprachgebrauch zwischen den "Fenstern") wechseln , indem Sie Ctrl+ und banschließend drücken o.

  4. Öffnen Sie nun einen Texteditor mit den Dateien, die Sie in jedem Bereich bearbeiten möchten. Hier habe ich gerade zwei Textdateien geöffnet mit vimzB

    $ vim file1.txt

    Fenster wechseln: Ctrl+ bgefolgt von o.

    $ vim file2.txt

    Bearbeiten von zwei Dateien gleichzeitig

tmuxist äußerst fortschrittlich und ermöglicht mehrere Fenster in einem Fenster, die auf verschiedene Weise angeordnet sind. Außerdem vimkönnen Sie mehrere Textdateien gleichzeitig in Registerkarten öffnen. Ich neige dazu , sowohl die Navigation mit der Tabulatortaste in verwenden , vimund die Scheiben in tmuxmich gleichzeitig zu bearbeiten, Versionskontrolle und Debug - Code zu ermöglichen. Wenn Sie Zeit haben, in das Erlernen der Tastaturkürzel und deren Funktionen zu investieren tmux, kann dies eine sehr leistungsfähige Entwicklungsumgebung sein.

Ein tmuxSpickzettel für den Einstieg: dayid's screen und tmux Spickzettel

Ein Tutorial zu Registerkarten in vim: Vim-Tipps: Verwenden von Registerkarten

James Womack
quelle
0

Ich persönlich würde Bildschirm oder tmux verwenden. In beiden Fällen können Sie mehrere Panels öffnen, obwohl ich denke, dass tmux eine Sitzung mit mehreren Panels besser wiederherstellen kann als einen Bildschirm. Sie erhalten außerdem den zusätzlichen Vorteil, dass Sie eine Verbindung zur Sitzung herstellen können, wenn Sie die Verbindung zu Ihrer lokalen Desktopsitzung und anschließend zu SSH trennen. Sie können die Sitzung auch für andere Benutzer zur Zusammenarbeit freigeben.

Leichenschauhaus
quelle
Hier ist eine Ablehnung, weil du keine Schicht verwendest
Peter sagt, dass Monica am
0

Neben vim, emacsund joeRedakteure, hier sind einige andere Terminal (tty) / x-Terminal - Emulator - Editoren, die mindestens zwei Dateien gleichzeitig anzeigen kann. Vielleicht nicht das süßeste Schweizer Taschenmesser, aber die Lernkurve scheint auf keinen Fall zu steil zu sein:

1) mcedit

Ist Teil von Midnight Commander (ein Dateimanager im Textmodus, mit dem es apt-get install mcin Debian-basierten Distributionen installiert wird).

mcedit

2) wpe \ xwpe

Erhältlich mit apt-get install xwpein Dedbian Distributionen. Allerdings scheint das ein gestoppter Schutz zu sein.

xwpe

3) nfte \ efte

eFTE ist auch über verfügbar apt-get install efte.

efte

Andererseits gibt es für das X-Fenster auch einige GUI-Diff-Tools, die für diesen Zweck nützlich sein könnten. In meiner Linux Mint habe ich mindestens zwei:

4) xxdiff

Eine Qt-basierte Anwendung ( apt-get install xxdiff)

xxdiff

Nicht getestet und nicht gezeigt, existiert aber auch Fldiffmit dem Fast Light Toolkit (FLTK), ist aber teilweise inspiriert xxdiff. Auch in den offiziellen Repositories ( apt-get install fldiffund Sie können es selbst testen). Gleiches gilt für mgdiff.

5) kdiff3

Eine ähnliche KDE-Anwendung ( apt-get install kdiff3).

kdiff3

Fran
quelle
0

Sie können den Atom-Texteditor von Github verwenden. Es kommt mit Split-Screen-Funktionalität.

Göktuğ Aşçı
quelle