Автоматическое выполнение vim PluginInstall во время сборки докера - PullRequest
0 голосов
/ 31 января 2019

Я создаю образ докера, и я хотел бы, чтобы он вытащил мои файлы точек, сохраненные на моем github, а также установил плагины vim, которые я указал.

RUN cd ~ && git clone https://github.com/bdhammel/dotfiles.git && \
    ./dotfiles/makesymlinks.sh && vim +silent! +PluginInstall +qall

Однако, делаяпоэтому выдает эту ошибку и убивает сборку:

Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal

Есть ли способ это исправить?

Ответы [ 2 ]

0 голосов
/ 07 апреля 2019

Вот полностью рабочий пример, который я использую:

RUN [ "/bin/bash", "-c", "vim -T dumb -n -i NONE -es -S <(echo -e 'silent! PluginInstall')" ]
0 голосов
/ 01 февраля 2019

Silent Batch Mode

Для очень простой обработки текста (т. Е. Использование Vim как расширенного «sed» или «awk», без какой-либо интерактивности <= это то, что предотвращает ввод / вывод <em>оттерминал ошибка), используйте Ex-mode .

vim -T dumb -n -i NONE -es -S "commands.ex"

Внимание: Vim будет зависать в ожидании ввода, если файл "commands.ex" не существует;Лучше проверь заранее на наличие!Кроме того, Vim может читать команды из стандартного ввода.Вы также можете заполнить новый буфер текстом, читаемым из stdin, и читать команды из stderr, если вы используете аргумент -.

Чтобы избежать использования отдельного скрипта с командами, вы можете использовать Bash's процесс подстановки :

... -S <(echo -e "silent! PluginInstall\nqall")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...