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.