Esiste un plugin vim che implementa la funzione hot exit dal testo sublime


11

L'uscita a caldo è una delle caratteristiche killer dell'editor di testo Sublime. Permette di chiudere l'editor in qualsiasi momento senza preoccuparsi delle modifiche ai file aperti: si chiude semplicemente senza alcuna domanda. Al riavvio di ST, tutti i file aperti e modificati saranno allo stesso stato in cui erano prima della chiusura

Mi chiedo c'è un modo per fare lo stesso in vim?


: xa esci tutto (salva tutte le modifiche e chiudi Vim)
Sim

Questo scrive i file, ma non salva nient'altro. Penso che l'OP voglia qualcosa che salvi i file senza scriverli e salvi lo stato di eventuali schede o buffer aperti
EvergreenTree,

Sì, l'ho capito più tardi dai suoi commenti.
Sim

Risposte:


6

Vim può farlo, anche se può essere un po 'goffo e richiedere un po' di installazione.

romainl ti porta a metà stradasession . I bit mancanti sono file di scambio :preservee il &flag per cpoptions.

I file di scambio sono destinati al recupero in caso di arresto anomalo di Vim o del sistema. Ti consentono di recuperare eventuali modifiche non salvate (con alcune limitazioni, vedi :he swap-file). Tuttavia, quando Vim esce normalmente, elimina tutti i file di scambio che stava usando, anche se il buffer aveva modifiche non salvate.

Ecco dove :preservee cpoptions' &arrivato. :preserveCostringe Vim a scrivere immediatamente tutti i buffer nei loro file di scambio (al contrario dello standard dopo 4 secondi o 200 caratteri, o qualunque sia la tua opzione). Fare :set cpoptions+=&dice a Vim di non cancellare i file di scambio salvati :preservequando si esce normalmente.

Sfortunatamente, Vim non ripulisce automaticamente i file di scambio durante il ripristino da essi, quindi puoi presto finire con una directory simile a questa:

.foo.txt.swn
.foo.txt.swo
.foo.txt.swp
foo.txt

Puoi eliminare quelli più vecchi manualmente, ma Vim offrirà automaticamente di recuperare solo se esiste un *.swpfile in cui inserire il suo nuovo file di scambio. Il :recovercomando costringerà Vim a cercare i file di scambio da cui recuperare.

Utilizzando i autocomandi, è possibile automatizzare la conservazione (probabilmente con l' QuitPreevento) e il ripristino (probabilmente con BufReado BufReadPost). Recover.vim è un plug-in che potrebbe funzionare come alternativa più amichevole per la gestione del recupero. Sembra anche gestire la pulizia dei file di scambio. Non sono sicuro di come gestirà una directory con un file .swoma nessun .swpfile. Potrebbe essere ancora necessario utilizzare :recoverper quel caso.

vim-obsession è un altro plugin che afferma di rendere molto più semplice la gestione delle sessioni.


1

Sì. Si chiama "sessione" e puoi leggere tutto al riguardo in:

:help session

1
Sono a conoscenza delle sessioni. Ma sembra che non sia lo stesso: salva tutti i buffer e le schede (e le impostazioni) aperti, ma se hai qualche modifica in uno dei buffer devi scriverli sul disco prima di uscire. Nel testo sublime non è necessario salvare il file aperto all'uscita: sublime salva tutte le modifiche in un posto separato e le ripristina alla riapertura. Quindi il file originale non viene toccato sul disco ma le modifiche non vanno perse
LazyS il

Sì, questa sarebbe la differenza principale. Non ho idea se può essere raggiunto in alcun modo senza ricorrere a tmux / screen / detach.
Romainl,
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.