Как подавить сообщение «2 файла для редактирования» в vimdiff?

11

«vimdiff ab» всегда печатает «2 файла для редактирования». Я не хочу это видеть. Как я могу избежать этого?

Вот пример:

⚡ vimdiff  a b                                                                                                                               
2 files to edit

Я хочу использовать vimdiff из скрипта bash и не хочу видеть этот вывод

Эрик Джонсон
источник
1
Конечно, вы можете просто запустить его 2>/dev/null. Зачем вам это? Кажется, что это небольшое раздражение. О, на совершенно нерелевантной ноте, не могли бы вы поделиться своим $ PS1? Какой символ вы используете в качестве подсказки?
Тердон
1
vimdiff ab 2> / dev / null у меня не работает.
Эрик Джонсон
Я просто вставляю туда символ юникода. Мой $ PS1 определяется здесь: github.com/kablamo/dotfiles/blob/master/links/.bash/prompt.sh
Эрик Джонсон,
Хорошо, спасибо :). И вы правы, перенаправление STDERR, похоже, не работает. Я думал, что это так, но я просто не видел линии.
Тердон
Ответ, кажется, здесь . Обязательно прочитайте комментарии.
Тердон

Ответы:

3

Просматривая исходный код vim, кажется, что это сообщение может быть подавлено только при запуске исполняемого файла с exиспользованием его -sопции или при отсутствии консоли.

Ни один из подходов не будет работать на разницу.

Однако сообщение выводится только в том случае, если в командной строке указано более одного файла.

Итак, давайте обманем это:

vim a -c "vert diffsplit b"

Какие в основном говорит «Редактировать файл с Vim, и один раз загружается, открыть вертикальный раскол с файлом б и дифф их».

codelahoma
источник
Эй, это работает! Круто, спасибо! Теперь я помню, где это было, что я хотел этого. Хорошая новость - я думаю, что это все еще полезная информация для меня
Эрик Джонсон
Если у вашего второго файла есть пробел в пути или имени файла, это решение не работает. Я обошел его, вместо этого вызвав vim с флагом -d и отправив вывод в / dev / null, например так (Кавычки будут правильно передавать аргументы с пробелами.): Vim -d "$ a" "$ b"> / dev / null
DevDaddyNick
@DevDaddyNick Разве это не скрывает vim для вас? Это делает для меня, используя в zshкачестве моей оболочки, на oh-my-zshоснове конфигурации.
Коделахома
Да, я узнал позже, что мое решение работает только тогда, когда вы не используете Vim в терминале. Я использовал Macvim, но в следующий раз, когда я попробовал это решение, когда SSH перешел на другую машину, оно полностью подавило Vim.
DevDaddyNick
Для всех, кто хочет покопаться в коде, соответствующая строка в коде на сегодняшнюю дату находится здесь в main.c
xdhmoore
-1

Установите в вашем .vimrc

set shortmess=at

Еще советы и подсказки .

Андрей Тихонов
источник
3
Это не работает для меня. Я подозреваю, что это влияет только на сообщения внутри vim, а не в командной строке.
Эрик Джонсон
-1

Согласно этому посту на SO, установка этого в вашем vimrc должна помочь:

set shortmess=filnxtToO
terdon
источник
3
Извините, это не работает для меня, даже когда я использую --noplugin. Я все еще получаю сообщение. Я не говорю о сообщении в редакторе. После закрытия редактора появляется сообщение, и от этого я и хочу избавиться. Спасибо, хотя
Эрик Джонсон