Domanda

Utilizzando la funzione remota in vim, è possibile riutilizzare un'istanza di vim per caricare più file in base alle esigenze.

Sarà bello avere quella struttura all'interno della stessa istanza terminale.

Sono più desideroso di avere un'interfaccia basata su tab, che è disponibile in vim 7+ Lo scenario dovrebbe essere

  1. Apri terminale
  2. vim file1.cpp
  3. Modifica - Salva - Ctrl + Z per visualizzare il prompt
  4. apre un altro file
    • vim file2.cpp
  5. Ora abbiamo file1.cpp e file2.cpp aperti nello stesso editor

È possibile ?!

Altri suggerimenti

Non sono sicuro che questo possa essere fatto esattamente come stai specificando, ma probabilmente qualcosa di molto simile può essere fatto usando un server vim in esecuzione sul tuo computer locale.

Guarda :help remote.txt in Vim.

Se la tua versione di vim è stata compilata con +clientserver puoi usare vim per creare un server vim e quindi eseguire comandi su di esso, ad es. aprendo un altro file.
L'opzione --servername può creare un nuovo server e l'opzione --remote può inviare comandi o file aggiuntivi ad esso.

per es.

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

Ho dato un'occhiata e la vim che sto usando come standard su xubuntu su uno dei miei computer non ce l'ha, ma ci sono alcune istruzioni qui può essere utile se il tuo è stato compilato. In caso contrario, l'installazione di gvim e il collegamento simbolico sono apparentemente un'opzione (poiché gvim lo ha incluso per impostazione predefinita) o la compilazione dei file binari dal sorgente.

Modifica
Ho avuto più di un gioco con gvim e questo non sembra possibile farlo all'interno del terminale. Control-Z sospende il lavoro a livello di processo. Ho pensato che potesse funzionare con lo schermo, ma nessuna comunicazione sembra aver luogo a meno che gvim non sia stato avviato in una finestra grafica,

Questo è facile da fare se hai compilato VIM con +clientserver, come Andy ha suggerito in una risposta precedente .

Ho fatto quanto segue:

Ho avviato VIM come server:

vim --servername abc

L'ho sospeso con CTRL+Z e l'ho fatto:

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

Ora VIM aveva ~/.cshrc aperto.

Poi ho fatto:

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

Ora VIM aveva un buffer con ~/.aliases e un altro con ~/foo_bar.

Poi ho fatto:

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

E ora VIM aveva una scheda con i due buffer precedenti aperti e un'altra scheda con <=> aperta.

Nei casi di chiamata VIM era in esecuzione nel terminale, non come una GUI.

Puoi dividere la schermata corrente e aprire due (o più) file nel modo seguente:

Per una divisione orizzontale, eseguire:

:sp 'filename'

e per una divisione verticale, fai:

:vsp 'filename'

Per passare da una scheda all'altra, premi ctrl + w, quindi usa un tasto freccia per spostarti sul file che desideri modificare.

Inoltre, se vuoi semplicemente cambiare file (e ne hai solo uno aperto), puoi farlo:

:e 'filename'

Buongiorno,

O se vuoi avere più file ma usa l'intera finestra di vim per un file alla volta, puoi semplicemente inserire

:e 'filename'

per aprire il nuovo file. Puoi farlo più volte. Per vedere cosa hai aperto, inserisci

:ls

Per rimbalzare tra i file che hai aperto puoi usare cntl- ^ (shift-cnt-6) e questo si alternerà tra i file principali e secondari (mostrati con un% e # nell'elenco dei file)

Oppure puoi inserire

:n b

dove n è il numero all'inizio del file desiderato nell'elenco mostrato dal comando 'ls'.

HTH

applausi,

È possibile impostare la funzione hidden su vim, per consentire l'apertura di più file:

:set hidden

Quindi puoi aprire tutti i file che vuoi, senza preoccuparti di salvarli ogni volta che vuoi cambiare un " buffer " ;:

:e 'filename'

Hai diversi comandi per navigare nei buffer:

:bnext
:bprev
:buffers

Naturalmente, come menzionato da Samoz, puoi dividere lo schermo per vedere più buffer nella stessa finestra.

Suggerirei di leggere questo per una buona introduzione su vim, ti farà risparmiare un sacco di tempo.

Buona fortuna!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top