4

Я играл с Dockerfiles, и при настройке среды разработки есть один ручной шаг, с которым я еще не смог обойтись. Чтобы установить пакеты в моем vimrc, я должен открыть vim, а затем он загрузит их все и скажет нажать Enter, чтобы продолжить. Я хотел бы сделать этот шаг в качестве команды RUN в Dockerfile. Я попытался использовать vim -c 'q' , который запускает команду :q при открытии vim, но сценарий автоматической установки пакета все еще требует нажатия клавиши ввода, и он все равно не работает, так как vim жалуется, что ввод и вывод не до терминала.

Я хотел бы сделать это с Dockerfiles, а не изображениями

Вот раздел моего .vimrc, который кажется актуальным

    " Setting up Vundle - the vim plugin bundler
        let iCanHazVundle=1
        let vundle_readme=expand('~/.vim/bundle/vundle/README.md')
        if !filereadable(vundle_readme)
            echo "Installing Vundle.."
            echo ""
            silent !mkdir -p ~/.vim/bundle
            silent !git clone https://github.com/gmarik/vundle ~/.vim/bundle/vundle
            let iCanHazVundle=0
        endif
        set rtp+=~/.vim/bundle/vundle/
        call vundle#rc()
        call GetBundles()
        if iCanHazVundle == 0
            echo "Installing Bundles, please ignore key map error messages"
            echo ""
            silent :BundleInstall
        endif
    " Setting up Vundle - the vim plugin bundler end

1 ответ1

3

Я обнаружил, что эту проблему легче решить, разместив мои плагины в отдельном файле vundle.vim . Это позволяет избежать плагинов и настроек .vimrc , которые плохо работают в режиме Ex .

set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()

" Add plugins
Plugin 'bling/vim-airline'
" ...

Затем вы можете запустить установку в режиме ex, как показано ниже.

vim -E -u NONE -S ~/.vim/vundle.vim +PluginInstall +qall > /dev/null

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .