Come posso fare in modo che Vim usi un nome file predefinito quando non viene assegnato alcun nome file?


17

Raramente, se mai, apro vimsenza nomi di file. Abbastanza spesso, voglio testare qualcosa, di solito un veloce script usa e getta, e di solito li chiamo test.sh(o qualche sua variante, come test.py). Posso far vimassumere un test.shnome file se ho eseguito vimsenza nomi di file? Di solito userei gli alias (come vimsper vim test.she vimpper vim test.py, o andiamo per intero :w test.sh), ma mi chiedo se c'è un modo dall'interno vim. Sarebbe anche meglio se posso limitare questo a determinate directory, come /tmp, o ~/dev.

Risposte:


10

Prova a metterlo alla fine del tuo .vimrc (modifica come appropriato)

if @% == "" && getcwd() == "/tmp"
    :silent edit test.sh
endif

Questo controlla se il nome file corrente è vuoto (fa @%riferimento al nome file corrente) e controlla se la directory corrente di vim lo è /tmp. Puoi aggiungere anche altre directory in questo modo

(getcwd() == "/tmp" || getcwd() == "~/dev")

Quindi modifica silenziosamente test.sh. Se quel file esiste già, lo caricherà. Altrimenti, inizierai un nuovo buffer con quel nome e il file verrà creato se lo scrivi.

Ho fatto silenzio per sopprimere il seguente messaggio durante l'avvio:

"test.sh" [New File]
Press ENTER or type command to continue

5

Una modifica della risposta di John può essere utile:

if @% == "" && getcwd() == "/tmp"
    :silent edit `=glob("test\.*", 1, 1)[0]`
endif

Questo apre il primo file che inizia con test..

Invece del solo primo file, se si desidera aprire anche altri file corrispondenti, fare:

if @% == "" && getcwd() == "/tmp"
    for i in glob("test\.*", 1, 1)
        :silent edit `=i`
    endfor
endif
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.