Skip to content

Instantly share code, notes, and snippets.

@simbalinux
Last active December 13, 2018 05:12
Show Gist options
  • Save simbalinux/302ac66fc85c238d9d9f02e27685ff7e to your computer and use it in GitHub Desktop.
Save simbalinux/302ac66fc85c238d9d9f02e27685ff7e to your computer and use it in GitHub Desktop.
vim8_loaded
set nocompatible " be iMproved, required
filetype off " required
set exrc
set encoding=UTF-8
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" ==== plugin manager
Plugin 'VundleVim/Vundle.vim'
" ==== helpers
Plugin 'vim-scripts/L9'
" ==== File tree
Plugin 'scrooloose/nerdtree'
" ==== Completion
Plugin 'Valloric/YouCompleteMe'
" ==== Git
Plugin 'airblade/vim-gitgutter'
Plugin 'tpope/vim-fugitive'
" ==== syntax helpers
Plugin 'scrooloose/syntastic'
Plugin 'tpope/vim-surround'
Plugin 'cakebaker/scss-syntax.vim'
Plugin 'othree/yajs.vim'
Plugin 'mitsuhiko/vim-jinja'
Plugin 'octol/vim-cpp-enhanced-highlight'
Plugin 'ap/vim-css-color'
Plugin 'Vimjas/vim-python-pep8-indent'
Plugin 'python-rope/rope'
Plugin 'python-rope/ropemode'
Plugin 'python-rope/ropevim'
Plugin 'klen/pylama'
" ==== moving / searching
Plugin 'easymotion/vim-easymotion'
Plugin 'kien/ctrlp.vim'
Plugin 'ervandew/supertab'
Plugin 'terryma/vim-multiple-cursors'
" ==== snippets
Plugin 'SirVer/ultisnips'
" Status bar on bottom
Plugin 'bling/vim-airline'
" ==== PLUGIN THEMES
Plugin 'morhetz/gruvbox'
call vundle#end()
filetype plugin indent on
" ==== Colors and other basic settings
colorscheme gruvbox
set guifont=Monospace\ 10
set fillchars+=vert:\$
syntax enable
set background=dark
set ruler
set hidden
set number
set laststatus=2
set smartindent
set st=4 sw=4 et
set shiftwidth=4
set tabstop=4
let &colorcolumn="80"
:set guioptions-=m "remove menu bar
:set guioptions-=T "remove toolbar
:set guioptions-=r "remove right-hand scroll bar
:set guioptions-=L "remove left-hand scroll bar
:set lines=999 columns=999
" ==== NERDTREE
let NERDTreeIgnore = ['__pycache__', '\.pyc$', '\.o$', '\.so$', '\.a$', '\.swp', '*\.swp', '\.swo', '\.swn', '\.swh', '\.swm', '\.swl', '\.swk', '\.sw*$', '[a-zA-Z]*egg[a-zA-Z]*', '.DS_Store']
let NERDTreeShowHidden=1
let g:NERDTreeWinPos="left"
let g:NERDTreeDirArrows=0
map <C-t> :NERDTreeToggle<CR>
" ==== Syntastic
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_javascript_checkers = ['eslint']
let g:syntastic_javascript_mri_args = "--config=$HOME/.jshintrc"
let g:syntastic_python_checkers = [ 'pylint', 'flake8', 'pep8', 'python']
let g:syntastic_yaml_checkers = ['jsyaml']
let g:syntastic_html_tidy_exec = 'tidy5'
" === flake8
let g:flake8_show_in_file=1
" ==== snippets
" If you want :UltiSnipsEdit to split your window.
let g:UltiSnipsEditSplit="vertical"
" make YCM compatible with UltiSnips (using supertab)
let g:ycm_key_list_select_completion = ['<C-n>', '<Down>']
let g:ycm_key_list_previous_completion = ['<C-p>', '<Up>']
let g:SuperTabDefaultCompletionType = '<C-n>'
" better key bindings for UltiSnipsExpandTrigger
let g:UltiSnipsExpandTrigger = "<tab>"
let g:UltiSnipsJumpForwardTrigger = "<tab>"
let g:UltiSnipsJumpBackwardTrigger = "<s-tab>"
" ==== Easymotion
let g:EasyMotion_do_mapping = 0
let g:EasyMotion_smartcase = 1
nmap f <Plug>(easymotion-s)
" ==== moving around
nmap <silent> <A-Up> :wincmd k<CR>
nmap <silent> <A-Down> :wincmd j<CR>
nmap <silent> <A-Left> :wincmd h<CR>
nmap <silent> <A-Right> :wincmd l<CR>
" ==== disable mouse
set mouse=c
" ==== disable swap file warning
set shortmess+=A
" ==== custom commands
command JsonPretty execute ":%!python -m json.tool"
set secure
#!/usr/bin/env bash
# set version
git_version="v8.0.1522"
# install necessary pacakges
sudo -y yum install gcc-c++ ncurses-devel python-devel git cmake
# ubuntu systems
# sudo apt-get install g++ libncurses-dev python-dev cmake
# get source for vim8
git clone https://github.com/vim/vim.git
cd vim/src && git checkout "$git_version"
# configure
./configure \
--disable-nls \
--enable-cscope \
--enable-gui=no \
--enable-multibyte \
--enable-pythoninterp \
--enable-rubyinterp \
--prefix=/home/"$USER"/.local/vim \
--with-features=huge \
--with-python-config-dir=/usr/lib/python2.7/config \
--with-tlib=ncurses \
--without-x
make && make install
# upddate .bashrc w/ --prefix=/home/"$USER"/.local/vim
echo '
if [ -d "$HOME/.local/vim/bin/" ] ; then
PATH="$HOME/.local/vim/bin/:$PATH"
fi' >> ~/.bashrc
# source it!
source ~/.bashrc
# install vim plugin manager
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
# .vimrc file located in cwd ./sample_vimrc
cp -rf ./sample_vimrc /home/"$USER"/.vimrc
# requirements for youcompleteme plugin
cd /home/$USER/.vim/bundle/YouCompleteMe && bash -x install.sh
# run vim; inside vim run :PluginInstall to install YoucompleteMe then run script on final line
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment