├── .bumpversion.cfg ├── Dockerfile ├── Dockerfile.save ├── Makefile ├── README.md ├── hooks └── build ├── images ├── python_ide.png └── python_ide_full.png └── personalize.sh /.bumpversion.cfg: -------------------------------------------------------------------------------- 1 | [bumpversion] 2 | current_version = 0.1.2 3 | tag = True 4 | tag_name = v{new_version} 5 | 6 | [bumpversion:file:README.md] 7 | 8 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM minimumbuilds/minimum_py_ide_base 2 | 3 | RUN addgroup mbuilds -g 1002 4 | RUN adduser mbuilds -u 1001 -D -G mbuilds 5 | RUN cp ~/.vimrc /home/mbuilds/ 6 | RUN cp -r ~/.vim /home/mbuilds 7 | -------------------------------------------------------------------------------- /Dockerfile.save: -------------------------------------------------------------------------------- 1 | FROM minimumbuilds/minimum_py_ide_base 2 | 3 | RUN addgroup mbuilds -g 4 | RUN adduser mbuilds -u -D -G mbuilds 5 | RUN cp ~/.vimrc /home/mbuilds/ 6 | RUN cp -r ~/.vim /home/mbuilds 7 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: build run push 2 | # version 0.0.0 3 | # 4 | mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) 5 | mkfile_dir := $(dir $(mkfile_path)) 6 | mkfile_dir_name := $(notdir $(patsubst %/,%,$(dir $(mkfile_path)))) 7 | export mkfile_dir 8 | 9 | ppatch: 10 | bumpversion --commit patch 11 | git push --tags origin master 12 | 13 | pminor: 14 | bumpversion --commit minor 15 | git push --tags origin master 16 | 17 | pmajor: 18 | bumpversion --commit major 19 | git push --tags origin master 20 | 21 | personal: 22 | cp Dockerfile.save Dockerfile 23 | ./personalize.sh 24 | docker build -t vim_ide . 25 | 26 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # minimum_python_ide 2 | 3 | Version: v0.1.2 4 | 5 | ![Vim Python IDE][logo] 6 | 7 | [logo]: /images/python_ide_full.png 8 | 9 | ## Requirements 10 | 11 | - Docker 12 | 13 | ## Clone the repo 14 | 15 | git clone https://github.com/minimumbuilds/minimum_python_ide.git 16 | 17 | ## Make it Personal 18 | 19 | make personal 20 | 21 | This will create a user (mbuilds) in the container with matching UID/GID of the current user. 22 | 23 | ## Install nerd-fonts on the HOST 24 | 25 | If you want the fancy icons to work properly, you'll need to install them. 26 | 27 | For full instructions go to https://github.com/ryanoasis/nerd-fonts 28 | 29 | On Ubuntu, you can also: 30 | 31 | git clone --depth 1 https://github.com/ryanoasis/nerd-fonts.git 32 | 33 | Then simply click on the fonts you'd like to install in the ``patched-fonts`` directory. 34 | 35 | ## Run 36 | docker run -it --rm -p 1337:1337 --user mbuilds -v $PWD:/repos vim_ide vim /repos 37 | 38 | 39 | This will launch the IDE in the /repos dir in the current working directory. 40 | 41 | ## Usage 42 | 43 | - ```` Buffer prev 44 | - ```` Buffer next 45 | - ```` toggles Livedown preview. Open a markdown file, hit F7 and you'll get a Live preview of your Markown file. You will need to open a browser to ``localhost:1337``. The preview will update immediately on write. 46 | - ```` (with a python file open) lint the current file & display output in a new window. Saving a file will have the same effect. 47 | - ```` toggles the righthand tag bar. This will display a structured view of a program. It does this by creating a sidebar that displays the ctags-generated tags of the current file, ordered by their scope. This means that for example methods in C++ are displayed under the class they are defined in. 48 | - ```` Fuzzy file search finder: https://github.com/ctrlpvim/ctrlp.vim 49 | 50 | ## Contents 51 | 52 | ### Base:Base 53 | - Official 3.6 alpine linux docker 54 | 55 | ### Adds: 56 | - Python2/3 57 | - Vim 8.0 with python2/3 support (built from source) 58 | - Vundle for Vim plugin management 59 | - Livedown for live previewing of Markdown files (github style) 60 | 61 | Additional Plugins: 62 | 63 | - Plugin 'VundleVim/Vundle.vim' 64 | - Plugin 'python-mode/python-mode' 65 | - Plugin 'scrooloose/nerdtree' 66 | - Plugin 'ryanoasis/vim-webdevicons' 67 | - Plugin 'vim-syntastic/syntastic' 68 | - Plugin 'nvie/vim-flake8' 69 | - Plugin 'jnurmine/Zenburn' 70 | - Plugin 'altercation/vim-colors-solarized' 71 | - Plugin 'jistr/vim-nerdtree-tabs' 72 | - Plugin 'Lokaltog/powerline' 73 | - Plugin 'tpope/vim-fugitive' 74 | - Plugin 'Shougo/deoplete.nvim' 75 | - Plugin 'roxma/nvim-yarp' 76 | - Plugin 'roxma/vim-hug-neovim-rpc' 77 | - Plugin 'ctrlpvim/ctrlp.vim' 78 | - Plugin 'bling/vim-airline' 79 | - Plugin 'vim-airline/vim-airline-themes' 80 | - Plugin 'majutsushi/tagbar' 81 | - Plugin 'haya14busa/incsearch.vim' 82 | - Plugin 'jaxbot/browserlink.vim' 83 | - Plugin 'shime/vim-livedown' 84 | 85 | ## Built With 86 | 87 | * [Alpine Linux](https://hub.docker.com/_/alpine/) - Alpine Linux Official Docker 88 | 89 | ## Authors 90 | 91 | * **Minimum Builds** - *Initial work* - [minimumbuilds](https://github.com/minimumbuilds) 92 | -------------------------------------------------------------------------------- /hooks/build: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # $IMAGE_NAME var is injected into the build so the tag is correct. 3 | docker build --build-arg VCS_REF=`git rev-parse --short HEAD` \ 4 | --build-arg BUILD_DATE=`date -u +”%Y-%m-%dT%H:%M:%SZ”` \ 5 | -t $IMAGE_NAME . 6 | -------------------------------------------------------------------------------- /images/python_ide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minimumbuilds/minimum_python_ide/530516209cc70003b2da4da8112178ebff306684/images/python_ide.png -------------------------------------------------------------------------------- /images/python_ide_full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minimumbuilds/minimum_python_ide/530516209cc70003b2da4da8112178ebff306684/images/python_ide_full.png -------------------------------------------------------------------------------- /personalize.sh: -------------------------------------------------------------------------------- 1 | export my_uid=$(id -u) 2 | export my_gid=$(id -g) 3 | sed -i -e "s//$my_uid/g" Dockerfile 4 | sed -i -e "s//$my_gid/g" Dockerfile 5 | --------------------------------------------------------------------------------