Come ricreare un file con VIM?


2

Ho myfile.txtcon del testo. Se scrivo vim myfile.txt, apre il file. Esiste un parametro per vim per eliminare il vecchio file e crearne uno nuovo vuoto? Per esempio

vim -recreate myfile.txt

O tale funzionalità non è supportata?


Tutto è supportato in Vim. Sai che potresti eliminare tutto il testo nel file con 5 sequenze di tasti una volta entrato in vim, giusto?
Aviator45003

3
Dopo aver avviato vim, basta digitare dG: questo elimina dalla posizione del cursore alla fine del file, svuotandolo effettivamente. Se il tuo vim è configurato per posizionare il cursore dove era l'ultima volta che hai modificato il file, invece della prima riga, anteponi 1Gper arrivare alla prima riga. 1GdGè ancora meno da digitare di -recreate.
Guntram Blohm,

@GuntramBlohm L'avrei pubblicato come risposta, ma vedo che mi hai battuto. Dovresti rispondere con il tuo commento. :)
user50849

È una soluzione alternativa, non una risposta, quindi l'ho fatto un commento. Inoltre, se il file è davvero enorme, caricarlo in Vim richiederà molto tempo. La risposta di @ JakeGould, che accetterei se fossi l'OP, risolve il problema molto più velocemente.
Guntram Blohm,

Risposte:


3

Non proprio. Potresti fare qualcosa del genere; un'istruzione composta da riga di comando:

> myfile.txt && vim myfile.txt

L' > myfile.txtavrebbe cancellato il contenuto del file, ma lasciare il file vero e proprio nel luogo-e &&poi legami che comandano a vim myfile.txt.


2

Per cancellare il file è possibile utilizzare:

$ vim +%d +w file

Ma questa non è una ricreazione (rimozione del file e creazione di uno nuovo), un file rimane lo stesso (stesso inode). Immagino che non ci sia differenza per te, vero?

Se sbaglio e hai bisogno di un nuovo file, temo, devi usare la shell e rm:

$ rm file && vim +w file
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.