È possibile in Vim creare una vista divisa per l'uso da riga di comando?


12

Conosco l'opzione :!ls, ma vorrei utilizzare una delle interfacce suddivise (dopo che viene utilizzata :sp) come finestra della riga di comando. È possibile? Se lo è, come lo faccio?


3
Ci sono plugin e / o patch per farlo. Ma prima o poi sperimenterai alcune stranezze. Il mio suggerimento è di utilizzare invece un terminale leggero con funzionalità complete, o screen / tmux.
Marco,

vim8 ha la modalità terminale integrata .. vedi qui: superuser.com/a/1312655/658319
alpha_989

Risposte:


9

A differenza di Emacs, Vim cerca di essere un po 'più minimale quando si tratta di lavorare con la shell. Non ha un'opzione per includere la shell interattiva all'interno di una delle sue schede o buffer.

Sebbene ci siano soluzioni alternative per questo. Proprio come te, mi piace molto avere una bashfinestra nella stessa sessione terminale di Vim in esecuzione. È super utile durante la modifica dei file di origine. Nel mio caso mi piace molto avere l'ambiente REPL di Ruby in esecuzione in modo da poter testare le istruzioni prima di inserirle nei file di origine.

Uso Tmux per realizzare la finestra divisa. In Tmux creo una finestra divisa (la chiave di default è ctrl + b, "). Questo aprirà 2 sessioni di shell interattive proprio come una finestra divisa in Vim. Quindi eseguo Vim in una delle sessioni e sono pronto.

Dalla foto sotto puoi vedere che ho diviso la finestra in orizzontale con bashin alto e Vim in basso.

inserisci qui la descrizione dell'immagine

Uso anche Tmux per supportare la programmazione di coppia con altri. Puoi leggere di più sulla mia configurazione sul mio blog all'indirizzo http://jjasonclark.com/Remote-Pairing-with-SSH-and-Tmux-on-a-Mac .


7

Non sono sicuro che stavi cercando una soluzione per lo schermo GNU o una soluzione che utilizza le suddivisioni integrate di Vim, ma se stai cercando quest'ultima, ha funzionato per me:

vim -O file_a.js file_b.js

Che a apre entrambi i file con una divisione verticale. Per una normale (divisione orizzontale), basta usare una minuscola -o.

PS Ctrl+ w, wper passare tra i due (lo trovo un buon modo per differenziare le suddivisioni dello schermo e le divisioni vim).


5
Anche se questo non risponde alla domanda originale, questa risposta ha risposto alla mia query di ricerca di Google che mi ha portato qui. :)
Mihai Alexandru Bîrsan il

Idem - grazie!
CaseyR

7

Vim 8 ha la modalità terminale integrata.

È possibile digitare :terper ottenere l'accesso al terminale.

Per navigare attraverso i comandi nella shell predefinita usare j,k.

Puoi ottenere maggiori informazioni digitando :h terVIM8.

Nota : il tuo VIM8 deve avere +terminalaffinché questo funzioni.




1

Puoi usare NeoVim, ha una modalità terminale integrata simile a emacs (anche se molto nuova) - questo ti permette di averlo in una finestra come qualsiasi altro buffer vim

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.