Full Code of JAremko/alpine-vim for AI

master 827b4c8e2192 cached
7 files
21.9 KB
6.9k tokens
1 requests
Download .txt
Repository: JAremko/alpine-vim
Branch: master
Commit: 827b4c8e2192
Files: 7
Total size: 21.9 KB

Directory structure:
gitextract_bhpc2s4x/

├── .bashrc
├── .vimrc
├── Dockerfile
├── README.md
├── alpine-vim-base/
│   ├── Dockerfile
│   └── README.md
└── run

================================================
FILE CONTENTS
================================================

================================================
FILE: .bashrc
================================================
stty -ixon

================================================
FILE: .vimrc
================================================
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Huge thanks to "Amir Salihefendic" : https://github.com/amix
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""

" It will be prepended with https://github.com/amix/vimrc/tree/master/vimrcs (basic.vim extended.vim)


""""""""""""""""""""""""""""""
" => bufExplorer plugin
""""""""""""""""""""""""""""""
let g:bufExplorerDefaultHelp=0
let g:bufExplorerShowRelativePath=1
let g:bufExplorerFindActive=1
let g:bufExplorerSortBy='name'
map <leader>o :BufExplorer<cr>


""""""""""""""""""""""""""""""
" => MRU plugin
""""""""""""""""""""""""""""""
let MRU_Max_Entries = 400
map <leader>f :MRU<CR>


""""""""""""""""""""""""""""""
" => YankRing
""""""""""""""""""""""""""""""
let g:yankring_history_dir = '/home/developer/.vim_runtime/temp_dirs'


""""""""""""""""""""""""""""""
" => CTRL-P
""""""""""""""""""""""""""""""
let g:ctrlp_working_path_mode = 0

let g:ctrlp_map = '<c-f>'
map <leader>j :CtrlP<cr>
map <c-b> :CtrlPBuffer<cr>

let g:ctrlp_max_height = 20
let g:ctrlp_custom_ignore = 'node_modules\|^\.DS_Store\|^\.git\|^\.coffee'


""""""""""""""""""""""""""""""
" => Vim grep
""""""""""""""""""""""""""""""
let Grep_Skip_Dirs = 'RCS CVS SCCS .svn generated'
set grepprg=/bin/grep\ -nH


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Nerd Tree
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:NERDTreeWinPos = "right"
let g:NERDTreeWinSize=50
map <leader>nn :NERDTreeToggle<cr>
map <leader>nb :NERDTreeFromBookmark 
map <leader>nf :NERDTreeFind<cr>
let NERDTreeShowHidden=1


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Nerd Tree Tabs
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => TagBar
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nmap <F8> :TagbarToggle<CR>


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => vim-go
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
au FileType go nmap <leader>r <Plug>(go-run)
au FileType go nmap <leader>b <Plug>(go-build)
au FileType go nmap <leader>t <Plug>(go-test)
au FileType go nmap <leader>c <Plug>(go-coverage)
au FileType go nmap <Leader>ds <Plug>(go-def-split)
au FileType go nmap <Leader>dv <Plug>(go-def-vertical)
au FileType go nmap <Leader>dt <Plug>(go-def-tab)
au FileType go nmap <Leader>gd <Plug>(go-doc)
au FileType go nmap <Leader>gv <Plug>(go-doc-vertical)
au FileType go nmap <Leader>s <Plug>(go-implements)
au FileType go nmap <Leader>i <Plug>(go-info)
au FileType go nmap <Leader>e <Plug>(go-rename)

let g:go_highlight_functions = 1
let g:go_highlight_methods = 1
let g:go_highlight_structs = 1
let g:go_highlight_operators = 1
let g:go_highlight_build_constraints = 1


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => vim-multiple-cursors
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:multi_cursor_use_default_mapping=0

" Default mapping
let g:multi_cursor_start_word_key      = '<C-s>'
let g:multi_cursor_select_all_word_key = '<A-s>'
let g:multi_cursor_start_key           = 'g<C-s>'
let g:multi_cursor_select_all_key      = 'g<A-s>'
let g:multi_cursor_next_key            = '<C-s>'
let g:multi_cursor_prev_key            = '<C-p>'
let g:multi_cursor_skip_key            = '<C-x>'
let g:multi_cursor_quit_key            = '<Esc>'


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => surround.vim config
" Annotate strings with gettext http://amix.dk/blog/post/19678
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
vmap Si S(i_<esc>f)
au FileType mako vmap Si S"i${ _(<esc>2f"a) }<esc>


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Vim-Airline
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Always show statusline
set laststatus=2


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => buffer switch
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nnoremap <Leader>. :bn<CR>
nnoremap <Leader>, :bp<CR>


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => color and theme
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set background=dark
colorscheme solarized
set relativenumber
set number


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Snippets
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:UltiSnipsExpandTrigger="<c-e>"
let g:UltiSnipsJumpForwardTrigger="<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
let g:UltiSnipsEditSplit="vertical"


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => undotree
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
nnoremap <F5> :UndotreeToggle<cr>


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Set Vim working directory to the current location
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set autochdir


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Set Tabular
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let mapleader=','
if exists(":Tabularize")
  nmap <Leader>a= :Tabularize /=<CR>
  vmap <Leader>a= :Tabularize /=<CR>
  nmap <Leader>a: :Tabularize /:\zs<CR>
  vmap <Leader>a: :Tabularize /:\zs<CR>
endif


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Indent Guides
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:indent_guides_enable_on_vim_startup = 1
let g:indent_guides_guide_size = 1
nmap <F6> :IndentGuidesToggle<CR>
set ts=2 sw=2 et


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => UTF-8
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
set encoding=utf-8 


"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => tagbar TypeScript
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
let g:tagbar_type_typescript = {
  \ 'ctagstype': 'typescript',
  \ 'kinds': [
    \ 'c:classes',
    \ 'n:modules',
    \ 'f:functions',
    \ 'v:variables',
    \ 'v:varlambdas',
    \ 'm:members',
    \ 'i:interfaces',
    \ 'e:enums',
  \ ]
\ }


================================================
FILE: Dockerfile
================================================
FROM jare/alpine-vim:latest

# User config
ENV UID="1000" \
    UNAME="developer" \
    GID="1000" \
    GNAME="developer" \
    SHELL="/bin/bash" \
    UHOME=/home/developer

# Used to configure YouCompleteMe
ENV GOROOT="/usr/lib/go"
ENV GOBIN="$GOROOT/bin"
ENV GOPATH="$UHOME/workspace"
ENV PATH="$PATH:$GOBIN:$GOPATH/bin"

# User
RUN apk --no-cache add sudo \
# Create HOME dir
    && mkdir -p "${UHOME}" \
    && chown "${UID}":"${GID}" "${UHOME}" \
# Create user
    && echo "${UNAME}:x:${UID}:${GID}:${UNAME},,,:${UHOME}:${SHELL}" \
    >> /etc/passwd \
    && echo "${UNAME}::17032:0:99999:7:::" \
    >> /etc/shadow \
# No password sudo
    && echo "${UNAME} ALL=(ALL) NOPASSWD: ALL" \
    > "/etc/sudoers.d/${UNAME}" \
    && chmod 0440 "/etc/sudoers.d/${UNAME}" \
# Create group
    && echo "${GNAME}:x:${GID}:${UNAME}" \
    >> /etc/group

# Install Pathogen
RUN apk --no-cache add curl \
    && mkdir -p \
    $UHOME/bundle \
    $UHOME/.vim/autoload \
    $UHOME/.vim_runtime/temp_dirs \
    && curl -LSso \
    $UHOME/.vim/autoload/pathogen.vim \
    https://tpo.pe/pathogen.vim \
    && echo "execute pathogen#infect('$UHOME/bundle/{}')" \
    > $UHOME/.vimrc \
    && echo "syntax on " \
    >> $UHOME/.vimrc \
    && echo "filetype plugin indent on " \
    >> $UHOME/.vimrc \
# Cleanup
    && apk del curl

# Vim wrapper
COPY run /usr/local/bin/
#custom .vimrc stub
RUN mkdir -p /ext  && echo " " > /ext/.vimrc

COPY .vimrc $UHOME/my.vimrc

COPY .bashrc $UHOME/.bashrc

# Vim plugins deps
RUN apk --update add \
    bash \
    ctags \
    curl \
    git \
    ncurses-terminfo \
    python \
# YouCompleteMe
    && apk add --virtual build-deps \
    build-base \
    cmake \
    go \
    llvm \
    perl \
    python-dev \
    && git clone --depth 1  https://github.com/Valloric/YouCompleteMe \
    $UHOME/bundle/YouCompleteMe/ \
    && cd $UHOME/bundle/YouCompleteMe \
    && git submodule update --init --recursive \
    && $UHOME/bundle/YouCompleteMe/install.py --gocode-completer \
# Install and compile procvim.vim                        
    && git clone --depth 1 https://github.com/Shougo/vimproc.vim \
    $UHOME/bundle/vimproc.vim \
    && cd $UHOME/bundle/vimproc.vim \
    && make \
    && chown $UID:$GID -R $UHOME \
# Cleanup
    && apk del build-deps \
    && apk add \
    libxt \
    libx11 \
    libstdc++ \
    && rm -rf \
    $UHOME/bundle/YouCompleteMe/third_party/ycmd/clang_includes \
    $UHOME/bundle/YouCompleteMe/third_party/ycmd/cpp \
    /usr/lib/go \
    /var/cache/* \
    /var/log/* \
    /var/tmp/* \
    && mkdir /var/cache/apk

USER $UNAME

# Plugins
RUN cd $UHOME/bundle/ \
    && git clone --depth 1 https://github.com/pangloss/vim-javascript \
    && git clone --depth 1 https://github.com/scrooloose/nerdcommenter \
    && git clone --depth 1 https://github.com/godlygeek/tabular \
    && git clone --depth 1 https://github.com/Raimondi/delimitMate \
    && git clone --depth 1 https://github.com/nathanaelkane/vim-indent-guides \
    && git clone --depth 1 https://github.com/groenewege/vim-less \
    && git clone --depth 1 https://github.com/othree/html5.vim \
    && git clone --depth 1 https://github.com/elzr/vim-json \
    && git clone --depth 1 https://github.com/bling/vim-airline \
    && git clone --depth 1 https://github.com/easymotion/vim-easymotion \
    && git clone --depth 1 https://github.com/mbbill/undotree \
    && git clone --depth 1 https://github.com/majutsushi/tagbar \
    && git clone --depth 1 https://github.com/vim-scripts/EasyGrep \
    && git clone --depth 1 https://github.com/jlanzarotta/bufexplorer \
    && git clone --depth 1 https://github.com/kien/ctrlp.vim \
    && git clone --depth 1 https://github.com/scrooloose/nerdtree \
    && git clone --depth 1 https://github.com/jistr/vim-nerdtree-tabs \
    && git clone --depth 1 https://github.com/scrooloose/syntastic \
    && git clone --depth 1 https://github.com/tomtom/tlib_vim \
    && git clone --depth 1 https://github.com/marcweber/vim-addon-mw-utils \
    && git clone --depth 1 https://github.com/vim-scripts/taglist.vim \
    && git clone --depth 1 https://github.com/terryma/vim-expand-region \
    && git clone --depth 1 https://github.com/tpope/vim-fugitive \
    && git clone --depth 1 https://github.com/airblade/vim-gitgutter \
    && git clone --depth 1 https://github.com/fatih/vim-go \
    && git clone --depth 1 https://github.com/plasticboy/vim-markdown \
    && git clone --depth 1 https://github.com/michaeljsmith/vim-indent-object \
    && git clone --depth 1 https://github.com/terryma/vim-multiple-cursors \
    && git clone --depth 1 https://github.com/tpope/vim-repeat \
    && git clone --depth 1 https://github.com/tpope/vim-surround \
    && git clone --depth 1 https://github.com/vim-scripts/mru.vim \
    && git clone --depth 1 https://github.com/vim-scripts/YankRing.vim \
    && git clone --depth 1 https://github.com/tpope/vim-haml \
    && git clone --depth 1 https://github.com/SirVer/ultisnips \
    && git clone --depth 1 https://github.com/honza/vim-snippets \
    && git clone --depth 1 https://github.com/derekwyatt/vim-scala \
    && git clone --depth 1 https://github.com/christoomey/vim-tmux-navigator \
    && git clone --depth 1 https://github.com/ekalinin/Dockerfile.vim \
# Theme
    && git clone --depth 1 \
    https://github.com/altercation/vim-colors-solarized
    
# Build default .vimrc
RUN  mv -f $UHOME/.vimrc $UHOME/.vimrc~ \
     && curl -s \
     https://raw.githubusercontent.com/amix/vimrc/master/vimrcs/basic.vim \
     >> $UHOME/.vimrc~ \
     && curl -s \
     https://raw.githubusercontent.com/amix/vimrc/master/vimrcs/extended.vim \
     >> $UHOME/.vimrc~ \
     && cat  $UHOME/my.vimrc \
     >> $UHOME/.vimrc~ \
     && rm $UHOME/my.vimrc \
     && sed -i '/colorscheme peaksea/d' $UHOME/.vimrc~

# Pathogen help tags generation
RUN vim -E -c 'execute pathogen#helptags()' -c q ; return 0

ENV TERM=xterm-256color

# List of Vim plugins to disable
ENV DISABLE=""

ENTRYPOINT ["sh", "/usr/local/bin/run"]


================================================
FILE: README.md
================================================
#### `jare/vim-bundle:latest`   

[![](http://i.imgur.com/G6KybVM.png)](http://i.imgur.com/G6KybVM.png) 

#### [For the more *"IDE like experience"* try `jare/drop-in`](https://hub.docker.com/r/jare/drop-in/)  
[![](http://i.imgur.com/RVTlBBO.png)](http://i.imgur.com/RVTlBBO.png) 

#### [Or Vim/Emacs hybrid `jare/spacemacs`](https://hub.docker.com/r/jare/spacemacs/)   
[![](https://raw.githubusercontent.com/syl20bnr/spacemacs/master/doc/img/spacemacs-python.png)](https://raw.githubusercontent.com/syl20bnr/spacemacs/master/doc/img/spacemacs-python.png) 

####  Based on ["The Ultimate vimrc"](https://github.com/amix/vimrc)  
*Make sure to use "Solarized Dark" compatible theme or color palette may look weird.*  
*You can configure terminal color mode by setting TERM variable `docker run ... -e TERM=<VALUE> jare/vim-bundle `
By default the `<VALUE>` is `xterm-256color` but for the "less colorful" terminals set it to `xterm`.*
###### **The best way to use:**  
**Make an alias:**
`alias edit='docker run -ti --rm -v $(pwd):/home/developer/workspace jare/vim-bundle'`
**Have fun!**  `edit some.file`
*Also You can use  this one for getting updates:*  `alias edit_update="docker pull jare/vim-bundle:latest"`
###### **How to disable some plugins:**  
`docker run ... -e DISABLE="'vim-airline', 'nerdtree'" ... jare/vim-bundle`
###### **How to add your plugins and .vimrc:**
  1. Create a folder with your `.vimrc` file and, if you want to add plugins, subfolder called `bundle` with them.
  2. mount it: `docker run ... -v <***>/my-stuff:/ext/ ... jare/vim-bundle` 
  *But the best way will be extending this container.*

###### **Plugins:**  
1. [Airline](https://github.com/bling/vim-airline)  *Lean & mean status/tabline for vim that's light as air*
2. [Tagbar](https://github.com/majutsushi/tagbar) *Plugin that displays tags in a window, ordered by scope*
3. [EasyGrep](https://github.com/vim-scripts/EasyGrep) *Fast and Easy Find and Replace Across Multiple Files*
4. [Bufexplorer](https://github.com/jlanzarotta/bufexplorer) *BufExplorer Plugin for Vim*
5. [CtrlP](https://github.com/kien/ctrlp.vim) *Fuzzy file, buffer, mru, tag, ... finder with regexp support*
6. [The NERD Tree](https://github.com/scrooloose/nerdtree) *A tree explorer plugin for vim*
7. [NERDTree tabs](https://github.com/jistr/vim-nerdtree-tabs) *NERDTree and tabs together in Vim, painlessly*
8. [Syntastic](https://github.com/scrooloose/syntastic) *Syntax checking hacks for vim*
9. [Vim-Scala](https://github.com/derekwyatt/vim-scala) *Integration of Scala into Vim - not a ton here, but useful*
10. [Solarized Colorscheme for Vim](https://github.com/altercation/vim-colors-solarized) *Solarized Colorscheme*
11. [Taglist](https://github.com/vim-scripts/taglist.vim) *Source code browser (supports C/C++, java, perl, python, tcl, sql, php, etc)*
12. [Vim-expand-region](https://github.com/terryma/vim-expand-region) *Visual selection of increasingly larger regions using the same key combination*
13. [Fugitive](https://github.com/tpope/vim-fugitive) *fugitive.vim: a Git wrapper so awesome, it should be illegal*
14. [Gitgutter](https://github.com/airblade/vim-gitgutter) *Plugin which shows a git diff in the gutter (sign column) and stages/reverts hunks*
15. [Vim-go](https://github.com/fatih/vim-go) *Go development plugin for Vim*
16. [Vim-markdown](https://github.com/plasticboy/vim-markdown) *Vim Markdown runtime files*
17. [Vim-indent-object](https://github.com/michaeljsmith/vim-indent-object) *Defines a new text object representing lines of code at the same indent level*
18. [Vim-multiple-cursor](https://github.com/terryma/vim-multiple-cursors) *True Sublime Text style multiple selections for Vim*
29. [Vim-repeat](https://github.com/tpope/vim-repeat) *Enable to repeat last change by non built-in commands*
20. [Vim-surround](https://github.com/tpope/vim-surround) *surround.vim: quoting/parenthesizing made simple*
21. [The Most Recently Used (MRU)](https://github.com/vim-scripts/mru.vim) *Plugin to manage Most Recently Used (MRU) files*
22. [YankRing](https://github.com/vim-scripts/YankRing.vim) *Maintains a history of previous yanks, changes and deletes*
23. [Vim-HAML](https://github.com/tpope/vim-haml) *Vim runtime files for Haml, Sass, and SCSS*
24. [snipMate & UltiSnip Snippets](https://github.com/honza/vim-snippets) *vim-snipmate default snippets (Previously snipmate-snippets)*
25. [Easymotion](https://github.com/easymotion/vim-easymotion) *Vim motions on speed!*
26. [Undotree](https://github.com/mbbill/undotree) *The ultimate undo history visualizer for VIM*
27. [Vim-javascript](https://github.com/pangloss/vim-javascript) *Vastly improved Javascript indentation and syntax support in Vim.* 
28. [NerdCommenter](https://github.com/scrooloose/nerdcommenter) *Plugin for intensely orgasmic commenting* 
39. [Tabular](https://github.com/godlygeek/tabular) *Script for text filtering and alignment* 
30. [DelimitMate](https://github.com/Raimondi/delimitMate) *Plugin, provides insert mode auto-completion for quotes, parens, brackets, etc.* 
31. [Vim-indent-guides](https://github.com/nathanaelkane/vim-indent-guides) *A Vim plugin for visually displaying indent levels in code* 
32. [Vim-less](https://github.com/groenewege/vim-less) *vim syntax for LESS (dynamic CSS)* 
33. [HTML5.vim](https://github.com/othree/html5.vim) *HTML5 omnicomplete and syntax* 
34. [Vim-json](https://github.com/elzr/vim-json) *Syntax highlighting for JSON in Vim* 
35. [Vim-addon-mw-utils](https://github.com/marcweber/vim-addon-mw-utils) *vim: interpret a file by function and cache file automatically*
36. [Tlib](https://github.com/tomtom/tlib_vim) *Some utility functions for VIM*
37. [Vim-tmux-navigator](https://github.com/christoomey/vim-tmux-navigator) *to navigate seamlessly between vim and tmux splits using a consistent set of hotkeys*
38. [UltiSnips](https://github.com/SirVer/ultisnips) The ultimate snippet solution for Vim! 
39. [YouCompleteMe](https://github.com/Valloric/YouCompleteMe) Fast, as-you-type, fuzzy-search code completion
40. [Vimproc.vim](https://github.com/Shougo/vimproc.vim) Interactive command execution in Vim
42. [Dockerfile.vim](https://github.com/ekalinin/Dockerfile.vim) syntax file for Docker's Dockerfile and snippets for snipMate

*[.vimrc](https://github.com/JAremko/alpine-vim/blob/master/.vimrc)*

###### **Working with Golang:**
  - For the full Golang support you need to mount `/usr/lib/go`. For example, run [`jare/go-tools`](https://hub.docker.com/r/jare/go-tools/) in the detached mode `docker create -v /usr/lib/go --name vim-go-tools jare/go-tools /bin/true` and mount its volumes like this `docker run ...  --volumes-from vim-go-tools ... jare/vim-bundle` or add it to the alias `alias edit="docker run -ti --rm --volumes-from go-tools -v $(pwd):/home/developer/workspace jare/vim-bundle"`
  - If you want to use a [go-tool](https://hub.docker.com/r/jare/go-tools/) , but [vim-go](https://github.com/fatih/vim-go) doesn't provide a shorthand - you can simply type, for example, `:!gofmt %` and it will output formatted source of the current buffers(`%:p ` absolute file path, `%:h` head of the file name and `%:p:h` is the current directory). If you want to overwrite - use `:% ! gofmt %` The `gofmt` tool used as an example, actually, it covered in vim-go.
 
###### Alternatively, you can put something like this into .bashrc to automatically bootstrap all containers:  

 ``` bash
#docker vim-bundle
function ed() {
  local dtc_id=$(docker ps -a -q --filter 'name=vim-go-tools')
  if [[ -z "${dtc_id}" ]]; then
   echo 'vim-go-tools container not found. Creating...'
   docker create -v '/usr/lib/go' --name 'vim-go-tools' \
     'jare/go-tools' '/bin/true'
   echo 'Done!'
  fi
  echo 'Starting Vim'
  docker run -ti --rm -p 8080:8080 --volumes-from 'vim-go-tools' \
    -v $('pwd'):/home/developer/workspace 'jare/vim-bundle' "${@}"
}
export -f ed
 ```
###### **Keep in mind:**
  - With something like GNOME terminal You should be able to:
    - drag and drop text into the Vim.
    - use mouse right button menu by holding `Shift`.
  - `<Leader>` mapped to `,`. I use the basic mappings from the great [amix .vimrc](https://github.com/amix/vimrc/tree/master/vimrcs)
  - You can set the user with the ENV variables [in the Dockerfile](https://github.com/JAremko/alpine-vim/blob/master/Dockerfile#L3)
  - If Vim or Powerline doesn't look right in the tmux try `tmux -2`
  - If the Golang auto-complete doesn't work  try  `go install` package
  - **Leave a comment if you found a bug or if you have a suggestion**
  - **Any contribution are greatly appreciated as well as new runtime containers!**


================================================
FILE: alpine-vim-base/Dockerfile
================================================
# Multistage builds to reduce image size to ~37MB
# by tuanhtrng
FROM alpine:latest as builder

MAINTAINER JAremko <w3techplaygound@gmail.com>

WORKDIR /tmp

# Install dependencies
RUN apk add --no-cache \
    build-base \
    ctags \
    git \
    libx11-dev \
    libxpm-dev \
    libxt-dev \
    make \
    ncurses-dev \
    python \
    python-dev

# Build vim from git source
RUN git clone https://github.com/vim/vim \
 && cd vim \
 && ./configure \
    --disable-gui \
    --disable-netbeans \
    --enable-multibyte \
    --enable-pythoninterp \
    --with-features=big \
    --with-python-config-dir=/usr/lib/python2.7/config \
 && make install
 
 FROM alpine:latest
 
 COPY --from=builder /usr/local/bin/ /usr/local/bin
 COPY --from=builder /usr/local/share/vim/ /usr/local/share/vim/
 # NOTE: man page is ignored
 
 RUN apk add --no-cache \
    diffutils \
    libice \
    libsm \
    libx11 \
    libxt \
    ncurses

ENTRYPOINT ["vim"]


================================================
FILE: alpine-vim-base/README.md
================================================
#### Base for `jare/vim-bundle:latest`

[![](http://i.imgur.com/G6KybVM.png)](http://i.imgur.com/G6KybVM.png)


================================================
FILE: run
================================================
#!/bin/bash
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$GOBIN
cd /home/developer
echo "let g:pathogen_disabled = [$DISABLE]" > .vimrc
echo "execute pathogen#infect('/ext/bundle/{}')" >> .vimrc
mkdir -p /home/developer/.vim_runtime/temp_dirs
cat .vimrc~ >> .vimrc
echo "source /ext/.vimrc" >> .vimrc
source /home/developer/.bashrc
cd /home/developer/workspace/
vim $@
Download .txt
gitextract_bhpc2s4x/

├── .bashrc
├── .vimrc
├── Dockerfile
├── README.md
├── alpine-vim-base/
│   ├── Dockerfile
│   └── README.md
└── run
Condensed preview — 7 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (26K chars).
[
  {
    "path": ".bashrc",
    "chars": 10,
    "preview": "stty -ixon"
  },
  {
    "path": ".vimrc",
    "chars": 6264,
    "preview": "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\n\" Huge thanks to \"Amir Salihe"
  },
  {
    "path": "Dockerfile",
    "chars": 6020,
    "preview": "FROM jare/alpine-vim:latest\n\n# User config\nENV UID=\"1000\" \\\n    UNAME=\"developer\" \\\n    GID=\"1000\" \\\n    GNAME=\"develope"
  },
  {
    "path": "README.md",
    "chars": 8657,
    "preview": "#### `jare/vim-bundle:latest`   \n\n[![](http://i.imgur.com/G6KybVM.png)](http://i.imgur.com/G6KybVM.png) \n\n#### [For the "
  },
  {
    "path": "alpine-vim-base/Dockerfile",
    "chars": 949,
    "preview": "# Multistage builds to reduce image size to ~37MB\n# by tuanhtrng\nFROM alpine:latest as builder\n\nMAINTAINER JAremko <w3te"
  },
  {
    "path": "alpine-vim-base/README.md",
    "chars": 110,
    "preview": "#### Base for `jare/vim-bundle:latest`\n\n[![](http://i.imgur.com/G6KybVM.png)](http://i.imgur.com/G6KybVM.png)\n"
  },
  {
    "path": "run",
    "chars": 366,
    "preview": "#!/bin/bash\nexport PATH=$PATH:$GOROOT/bin:$GOPATH/bin:$GOBIN\ncd /home/developer\necho \"let g:pathogen_disabled = [$DISABL"
  }
]

About this extraction

This page contains the full source code of the JAremko/alpine-vim GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 7 files (21.9 KB), approximately 6.9k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!