2014-10-14 2 views
1

я часто делаю что-то вродеМногократно читать ввод из внешней программы Vim

!r git diff .

И я упростил освежать этот вход вниз:

:call feedkeys('ggdG:r! git diff .')

но по-прежнему требует как минимум: : <UP> <UP> <CR> <CR> <CR> gg повторить и перейти к первой строке для осмотра.

Как обновить содержимое с помощью меньшего количества шагов? Бонусные баллы за то, что они помнили о первой линии, были освещены.

Я знаю, что для специальных команд git есть fugitive, но я хочу обобщить его для запуска любой команды оболочки.

+0

вы хотите прочитать ** ** выход из внешней программы, а не вход, пожалуйста исправить название. – Kent

+0

@Kent Я думал о выходе из другого приложения в качестве вклада в Vim. Это действительно менее корректно с текущим названием? – Letharion

+0

@Kent Чтобы по-другому, какое-то другое приложение записывает вывод, но vim читает ввод. Это звучит, по крайней мере, в моей голове. – Letharion

ответ

3

как об этом отображении:

nnoremap <F10> :%d<bar>r! YOURCMD<cr>gg 

, то вы можете нажать <F10>, чтобы очистить текущий буфер и прочитать вывод YOURCMD, наконец, переместить курсор к первой строке.

E.g. загрузить информацию о процессах в Vim:

nnoremap <F10> :%d<bar>r! ps -ef<cr>gg 
3

Стив Лош-х Clam является общим и простым способом сделать то, что вы делаете:

  • показать вывод внешней команды в новом вертикальном окне

    :Clam git diff . 
    
  • обновления

    \r 
    
  • перейти к первой линии

    gg 
    
Смежные вопросы