Come posso sopprimere il messaggio "2 file da modificare" in vimdiff?


11

'vimdiff ab' stampa sempre "2 file da modificare". Non voglio vederlo. Come posso evitarlo?

Ecco un esempio:

⚡ vimdiff  a b                                                                                                                               
2 files to edit

Voglio usare vimdiff da uno script bash e non voglio vedere questo output


1
Ovviamente potresti semplicemente lanciarlo con 2>/dev/null. Perché ne hai bisogno? Sembra un fastidio così lieve. Oh, su una nota del tutto irrilevante, potresti condividere i tuoi $ PS1? Qual è il personaggio che stai usando come prompt?
terdon,

1
vimdiff ab 2> / dev / null non funziona per me.
Eric Johnson,

Sto solo attaccando il personaggio unicode lì dentro. Il mio $ PS1 è definito qui: github.com/kablamo/dotfiles/blob/master/links/.bash/prompt.sh
Eric Johnson

Bene grazie :). E hai ragione, reindirizzare STDERR non sembra funzionare. Pensavo di sì, ma non ho visto la linea.
terdon,

La risposta sembra essere qui . Assicurati di leggere i commenti.
terdon

Risposte:


3

Guardando attraverso l'origine vim, sembra che quel messaggio possa essere soppresso solo quando si avvia l'eseguibile come exe usando la sua -sopzione o non avendo una console.

Nessuno dei due approcci funzionerà per diffing.

Tuttavia, il messaggio viene emesso solo se nella riga di comando è stato specificato più di un file.

Quindi inganniamo:

vim a -c "vert diffsplit b"

Il che in pratica dice "Modificare il file una con vim, e una volta che un viene caricato, aprire una spaccatura verticale con il file B e li diff".


Ehi, funziona! Fantastico, grazie! Ora ricordo dove volevo questo. La buona notizia è che penso che sia ancora utile per me.
Eric Johnson,

Se il tuo secondo file ha uno spazio nel percorso o nel nome file, questa soluzione non funziona. Ho risolto il problema chiamando invece vim con il flag -d e inviando l'output a / dev / null, in questo modo (le virgolette passeranno correttamente gli argomenti con gli spazi.): Vim -d "$ a" "$ b"> / dev / null
DevDaddyNick

@DevDaddyNick Questo non ti nasconde del tutto per te? Lo fa per me, usando zshcome la mia shell, con una oh-my-zshconfigurazione basata.
codelahoma,

Sì, ho scoperto in seguito che la mia soluzione funziona solo quando non si utilizza Vim nel terminale. Stavo usando Macvim, ma la prossima volta che ho provato questa soluzione quando SSH è entrato in un'altra macchina, ha soppresso Vim del tutto.
DevDaddyNick,

Per chiunque voglia scavare nel codice, la riga pertinente nel codice alla data odierna è qui in main.c
xdhmoore,


-1

Secondo questo post su SO, impostarlo nel tuo vimrc dovrebbe fare il trucco:

set shortmess=filnxtToO

3
Mi dispiace che non funzioni neanche per me anche quando uso --noplugin. Ricevo ancora un messaggio. Non sto parlando del messaggio nell'editor. Dopo aver chiuso l'editor, c'è un messaggio e questo è quello che voglio liberarmi. Grazie però
Eric Johnson,
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.