Frage

Durch die Nutzung der remote-feature von vim, ist es möglich, die Wiederverwendung, die eine Instanz von vim zu laden mehrere Dateien als benötigt.

Es wäre schön zu haben, dass die Anlage innerhalb der gleichen terminal-Instanz.

Ich bin mehr daran interessiert, zu haben eine tab-basierte Schnittstelle, die verfügbar ist in vim 7+ Das Szenario sollte

  1. Öffnen Sie das terminal
  2. vim file1.cpp
  3. Bearbeiten - Speichern - Strg+Z, um zur Eingabeaufforderung
  4. öffnen einer anderen Datei
    • vim file2.cpp
  5. Jetzt haben wir file1.cpp und file2.cpp öffnen Sie im selben editor

Ist das möglich?!

War es hilfreich?

Lösung

Ich habe ein paar Vorschläge für Sie, aber weder ist genau das, was Sie reden.Die erste ist NERD Baum,, das gibt Ihnen eine schöne Baum-basierte Datei-browser für das öffnen anderer Dateien.Sehr praktisch.Ich habe auch set up a hot key (ctrl+o) zu öffnen NERD Baum für mich.Ich halte ein alias für was auch immer Projekt bin ich auf in ~/curr/trunk, so dass diese immer für mich funktioniert:

map <C-O> :NERDTreeToggle ~/curr/trunk/<CR>

Die andere Sache, die ich vorschlagen würde ist, zu tun, Weg mit Strg+z.Es ist etwas hakelig, und alle die ich kenne, verwendet diese Methode neigt dazu, sich zu verirren und am Ende mit 3 oder 4 vim im hintergrund ausgeführt wird.Werfen Sie einen Blick auf, wie eine shell öffnen für sich selbst.Ich benutze eine Karte für ;s führen Sie ein shell-Skript:

map ;s :!~/.vim/shell.sh<CR>

Führt:

#!/bin/sh
/usr/local/bin/bash -l;

Ich habe auch ein wenig Magie in meine .Profil für die es offensichtlich bin ich in VIM:

if [ "$VIMRUNTIME" != "" ] ; then
    export PS1="\u@\h \W \t$ vim> "
fi

</2 Cent>

Andere Tipps

Ich bin mir nicht sicher, ob dies die Art und Weise genau durchgeführt werden kann, die Sie spezifizieren, aber etwas sehr ähnliches kann wahrscheinlich einen vim-Server auf dem lokalen Rechner ausgeführt wird unter Verwendung ausgeführt wird.

Schauen Sie in die :help remote.txt in Vim.

Wenn Ihre Version von vim mit +clientserver kompiliert wurde können Sie vim verwenden, um einen vim-Server zu erstellen, und dann Ausführen von Befehlen auf sie, z.B. Öffnen einer anderen Datei.
Der --servername Schalter kann einen neuen Server erstellen, und der --remote Schalter kann zusätzliche Befehle oder Dateien senden Sie es.

z.

vim --servername test file1.txt
vim --servername test --remote file2.txt

Ich habe einen Blick gehabt, und der vim ich auf xubuntu auf einem meiner Rechner als Standard bin mit ist es nicht, aber es gibt einige Anweisungen hier , die helfen kann, wenn sie kompiliert wird. Wenn nicht, ist gvim und symbolische Links Installation ist offenbar eine Option (wie Gvim es standardmäßig enthalten ist) oder die Binärdateien aus dem Quellcode zu kompilieren.

Bearbeiten
Ich habe eher ein Spiel mit gvim habe und dies nicht das sieht möglich innerhalb des Terminals zu tun. Strg-Z setzt den Job auf der Prozessebene. Ich dachte, es könnte mit Bildschirm arbeiten, aber keine Kommunikation scheint zu, es sei denn Gvim hat in einem grafischen Fenster gestartet,

Dies ist einfach zu tun, wenn Sie VIM mit +clientserver zusammengestellt, wie Andy vorgeschlagen in einer früheren Antwort .

Ich habe folgende Möglichkeiten:

I in Betrieb genommen VIM als Server:

vim --servername abc

I suspendiert es mit CTRL+Z und tat:

vim --servername abc --remote ~/.cshrc
fg 

Nun hatte VIM ~/.cshrc offen.

Dann habe ich:

vim --servername abc --remote ~/.aliases
fg 

Nun hatte VIM einen Puffer mit ~/.cshrc und zum anderen mit ~/.aliases.

Dann habe ich:

vim --servername abc --remote-tab ~/foo_bar
fg 

Und jetzt ich VIM hatte eine Lasche mit den beiden vorherigen Puffer offen und ein anderes Register mit ~/foo_bar offen.

In Anruf Fällen VIM im Terminal ausgeführt wurde, nicht als GUI.

können Sie teilen den aktuellen Bildschirm und öffnen zwei (oder mehr) Dateien auf folgende Weise:

Für eine horizontale Spaltung, zu tun:

:sp 'filename'

und für eine vertikale Teilung, zu tun:

:vsp 'filename'

Um Tab zwischen den beiden, drücken Sie anschließend Strg + w, dann eine Pfeiltaste verwenden, um zu navigieren Unabhängig davon, welche Datei, die Sie bearbeiten möchten.

Auch, wenn Sie wollen einfach nur Dateien umschalten (und haben nur eine offen), können Sie dies tun:

:e 'filename'

G'day,

Oder wenn Sie mehrere Dateien haben, aber das ganze vim Fenster für eine Datei zu einem Zeitpunkt verwenden Sie einfach eingeben

:e 'filename'

Um die neue Datei zu öffnen. Sie können dies mehrere Male tun. Um zu sehen, was Sie gerade geöffnet haben, geben Sie

:ls

zwischen den Dateien springen Sie geöffnet haben können Sie mit cntl- ^ (Shift-cnt-6) und wechselt zwischen den Haupt- und Sekundärdateien (mit einem% und # in der Dateiliste angezeigt)

Sie können auch eingeben

:n b

, wobei n die Nummer am Anfang der Datei, die Sie in der Liste wollen durch das ‚ls'command gezeigt.

HTH

prost,

Sie können die hidden Funktion auf vim gesetzt, ermöglichen es, mehrere Dateien geöffnet haben:

:set hidden

Dann können Sie beliebig viele Dateien öffnen, wie Sie wollen, ohne sich um sie jedes Mal, wenn ein „Puffer“ wechseln wollen speichern:

:e 'filename'

Sie haben mehrere Befehle, um die Puffer zu navigieren:

:bnext
:bprev
:buffers

Natürlich, wie durch samoz erwähnt, können Sie Ihren Bildschirm aufgeteilt mehrere Puffer auf dem gleichen Fenster zu sehen.

Ich würde vorschlagen, diese für eine gute Einführung über vim, es werden Sie eine Menge Zeit sparen.

Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top