Como suprimir a mensagem "2 arquivos para editar" no vimdiff?

11

'vimdiff ab' sempre imprime "2 arquivos para editar". Eu não quero ver isso. Como posso evitá-lo?

Aqui está um exemplo:

⚡ vimdiff  a b                                                                                                                               
2 files to edit

Eu quero usar vimdiff a partir de um script bash e não quero ver essa saída

Eric Johnson
fonte
1
É claro que você pode simplesmente iniciá-lo com 2>/dev/null. Por que você precisa disso? Parece um aborrecimento menor. Em uma nota completamente irrelevante, você poderia compartilhar seu $ PS1? Qual é o personagem que você está usando como prompt?
terdon
1
O vimdiff ab 2> / dev / null não funciona para mim.
Eric Johnson
Estou apenas colocando o caractere unicode lá. Meu $ PS1 é definido aqui: github.com/kablamo/dotfiles/blob/master/links/.bash/prompt.sh
Eric Johnson
Bom, obrigado :). E você está certo, redirecionar o STDERR parece não funcionar. Eu pensei que sim, mas simplesmente não vi a linha.
terdon
A resposta parece estar aqui . Certifique-se de ler os comentários.
terdon

Respostas:

3

Observando a origem do vim, parece que essa mensagem só pode ser suprimida ao iniciar o executável como exe usando sua -sopção, ou por não ter um console.

Nenhuma das abordagens funcionará para diferir.

No entanto, a mensagem será emitida apenas se houver mais de um arquivo especificado na linha de comandos.

Então, vamos enganá-lo:

vim a -c "vert diffsplit b"

O que basicamente diz "Edite o arquivo a com o vim e, depois que a a for carregada, abra uma divisão vertical com o arquivo be diferencie-os".

codelaoma
fonte
Ei, isso funciona! Incrível, obrigado! Agora eu lembro onde era que eu queria isso. A boa notícia é que acho que ainda é uma informação útil para mim.
Eric Johnson
Se o seu segundo arquivo tiver um espaço no caminho ou no nome do arquivo, esta solução não funcionará. Eu trabalhei com isso chamando o vim com o sinalizador -d e enviando a saída para / dev / null, assim (as aspas passarão corretamente os argumentos com espaços.): Vim -d "$ a" "$ b"> / dev / null
DevDaddyNick
@DevDaddyNick Isso não esconde completamente o vim para você? Faz para mim, usando zshcomo meu shell, com oh-my-zshconfiguração baseada.
Codelahoma
Sim, descobri mais tarde que minha solução só funciona quando você não está usando o Vim no terminal. Eu estava usando o Macvim, mas na próxima vez que tentei essa solução quando o SSH entrou em outra máquina, ela suprimiu completamente o Vim.
DevDaddyNick
Para qualquer outra pessoa querendo cavar em volta no código, a linha relevante no código a partir da data de hoje é aqui em main.c
xdhmoore
-1

Defina no seu .vimrc

set shortmess=at

Mais dicas e truques .

Andriy Tykhonov
fonte
3
Isso não funciona para mim. Eu suspeito que isso afeta apenas as mensagens dentro do vim, não na linha de comando.
Eric Johnson
-1

De acordo com este post no SO, definir isso no seu vimrc deve fazer o truque:

set shortmess=filnxtToO
Terdon
fonte
3
Desculpe, isso também não funciona para mim, mesmo quando eu uso --noplugin. Ainda recebo uma mensagem. Eu não estou falando sobre a mensagem no editor. Depois de fechar o editor, há uma mensagem e é disso que eu quero me livrar. Obrigado embora
Eric Johnson