Как подавить сообщение «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, и один раз загружается, открыть вертикальный раскол с файлом б и дифф их».


Эй, это работает! Круто, спасибо! Теперь я помню, где это было, что я хотел этого. Хорошая новость - я думаю, что это все еще полезная информация для меня
Эрик Джонсон

Если у вашего второго файла есть пробел в пути или имени файла, это решение не работает. Я обошел его, вместо этого вызвав 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

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

set shortmess=filnxtToO

3
Извините, это не работает для меня, даже когда я использую --noplugin. Я все еще получаю сообщение. Я не говорю о сообщении в редакторе. После закрытия редактора появляется сообщение, и от этого я и хочу избавиться. Спасибо, хотя
Эрик Джонсон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.