перенаправление и vim - PullRequest
24 голосов
/ 23 октября 2008

Мне было интересно, есть ли способ увидеть вывод какой-либо команды, прямо внутри vim, вместо того, чтобы сначала перенаправить его в файл и затем открыть этот файл.

E.x. Мне нужно что-то вроде $ gvim <<code>diff -r dir1/ dir2/

Это дает неоднозначное сообщение об ошибке перенаправления

Я просто хочу видеть различия между dir1 и dir2 прямо внутри Gvim.

Может ли кто-нибудь дать хороший взлом?

Ответы [ 10 ]

41 голосов
/ 23 октября 2008
diff file1 file2 | vim -R -

-R делает его доступным только для чтения, чтобы вы случайно не изменили вход (что может или не может быть вашим желаемым поведением). Одиночная черта говорит vim о том, что она читает свой ввод поверх стандартного ввода. Работает и для других команд.

10 голосов
/ 23 октября 2008

Также, когда уже в Vim:

:r! diff file1 file2
6 голосов
/ 23 октября 2008

Хотя я бы также предложил vimdiff или vim -d для случая просмотра diff, я просто должен поделиться этим (более общим) подходом для использования vim в каналах: vipe (из пакета moreutils в Ubuntu).

Например:

find -name '* .png' | випе | xargs rm

позволит вам сначала отредактировать (в vim) список найденных файлов .png, прежде чем передать его xargs rm.

6 голосов
/ 23 октября 2008

vim -d file1 file2

4 голосов
/ 24 октября 2008

Кстати, есть плагин DirDiff .

4 голосов
/ 23 октября 2008

jst вместо этого используйте gvimdiff
или vimdiff
чтобы вставить вывод команды прямо в vim, например, ls, попробуйте
:% Г Ls

!
2 голосов
/ 03 июня 2009

Вы можете сделать это с

diff -r dir1/ dir2/ | gvim -

опция '-' для vim (или gvim) говорит vim открыть STDIN

1 голос
/ 20 августа 2011

Я часто пользуюсь vimdiff -g <file1> <file2>

0 голосов
/ 03 сентября 2014

То, что вы ищете, называется замена процесса :

vim <(diff -r dir1/ dir2/)

Но плагин DirDiff, упомянутый Люком, гораздо полезнее для сравнения каталогов.

0 голосов
/ 20 декабря 2012

Один из самых простых и удобных способов сделать это так:

vimdiff -R <file1> <file2>

Опять же флаг '-R' открывает его для режима только для чтения, чтобы избежать случайных изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...