2019-08-17 20:26:53 +00:00
|
|
|
|
set nocompatible " be iMproved, required
|
|
|
|
|
filetype off " required
|
|
|
|
|
|
|
|
|
|
" set the runtime path to include Vundle and initialize
|
|
|
|
|
set rtp+=~/.vim/bundle/Vundle.vim
|
|
|
|
|
call vundle#begin()
|
|
|
|
|
" alternatively, pass a path where Vundle should install plugins
|
|
|
|
|
"call vundle#begin('~/some/path/here')
|
|
|
|
|
|
|
|
|
|
" let Vundle manage Vundle, required
|
|
|
|
|
Plugin 'VundleVim/Vundle.vim'
|
|
|
|
|
|
|
|
|
|
" The following are examples of different formats supported.
|
|
|
|
|
" Keep Plugin commands between vundle#begin/end.
|
|
|
|
|
" Git plugin not hosted on GitHub
|
|
|
|
|
Plugin 'git://git.wincent.com/command-t.git'
|
|
|
|
|
" git repos on your local machine (i.e. when working on your own plugin)
|
|
|
|
|
" Plugin "file:///$HOME/Code/"
|
|
|
|
|
" The sparkup vim script is in a subdirectory of this repo called vim.
|
|
|
|
|
" Pass the path to set the runtimepath properly.
|
|
|
|
|
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'}
|
|
|
|
|
" Install L9 and avoid a Naming conflict if you've already installed a
|
|
|
|
|
" different version somewhere else.
|
2019-11-09 11:31:50 +00:00
|
|
|
|
Plugin 'ascenator/L9', {'name': 'newL9'}
|
|
|
|
|
" Check syntax in Vim asynchronously and fix files, with Language Server Protocol (LSP) support
|
|
|
|
|
Plugin 'dense-analysis/ale'
|
|
|
|
|
" A Vim plugin for visually displaying indent levels in code
|
|
|
|
|
Plugin 'nathanaelkane/vim-indent-guides'
|
|
|
|
|
Plugin 'gmarik/vundle'
|
|
|
|
|
" Syntastic is a syntax checking plugin
|
|
|
|
|
Plugin 'scrooloose/syntastic'
|
|
|
|
|
" A vim plugin to access cheat.sh sheets
|
|
|
|
|
Plugin 'dbeniamine/cheat.sh-vim'
|
2019-11-09 12:34:55 +00:00
|
|
|
|
" basic vim/terraform integration
|
|
|
|
|
Plugin 'hashivim/vim-terraform'
|
2019-11-09 12:46:10 +00:00
|
|
|
|
" A solid language pack for Vim. support for kotlin, terraform, groovy, ...
|
|
|
|
|
Plugin 'sheerun/vim-polyglot'
|
2019-11-09 13:25:50 +00:00
|
|
|
|
" A code-completion engine for Vim
|
2019-11-09 13:12:28 +00:00
|
|
|
|
Plugin 'Valloric/YouCompleteMe'
|
2019-11-09 13:25:50 +00:00
|
|
|
|
" lean & mean status/tabline for vim that's light as air
|
|
|
|
|
Plugin 'vim-airline/vim-airline'
|
|
|
|
|
" fugitive.vim: A Git wrapper so awesome, it should be illegal
|
|
|
|
|
Plugin 'tpope/vim-fugitive'
|
2019-11-09 13:50:53 +00:00
|
|
|
|
" A tree explorer plugin for vim.
|
2019-11-09 13:25:50 +00:00
|
|
|
|
Plugin 'scrooloose/nerdtree'
|
2019-11-09 13:55:51 +00:00
|
|
|
|
" A plugin of NERDTree showing git status
|
|
|
|
|
Plugin 'Xuyuanp/nerdtree-git-plugin'
|
2020-07-13 14:11:10 +00:00
|
|
|
|
" Vim plugin for intensely nerdy commenting powers
|
|
|
|
|
" In order to use it for instance, for commenting a block of text... do as :
|
|
|
|
|
" - Select several lines (using <V>)
|
|
|
|
|
" - Press <SPACE> then <cs>
|
|
|
|
|
Plugin 'preservim/nerdcommenter'
|
|
|
|
|
|
2020-06-24 07:51:04 +00:00
|
|
|
|
" A Vim plugin which shows a git diff in the gutter (sign column) and stages/undoes hunks and partial hunks.
|
|
|
|
|
Plugin 'airblade/vim-gitgutter'
|
|
|
|
|
" Jenkinsfile DSL Vim Syntax
|
|
|
|
|
Plugin 'martinda/jenkinsfile-vim-syntax'
|
|
|
|
|
" integrate Grep search tools with Vim
|
|
|
|
|
Plugin 'yegappan/grep'
|
|
|
|
|
" The plug-in visualizes undo history and makes it easier to browse and switch between different undo
|
|
|
|
|
Plugin 'mbbill/undotree'
|
|
|
|
|
" Intelligently reopen files at your last edit position
|
|
|
|
|
Plugin 'farmergreg/vim-lastplace'
|
|
|
|
|
" Add icons to your plugins
|
|
|
|
|
Plugin 'ryanoasis/vim-devicons'
|
2020-07-11 10:25:30 +00:00
|
|
|
|
" Prettier to auto format some files
|
|
|
|
|
Plugin 'mitermayer/vim-prettier'
|
2020-07-20 10:59:38 +00:00
|
|
|
|
" Enable OpenAI based text completion
|
|
|
|
|
Plugin 'jessfraz/openai.vim'
|
|
|
|
|
" TabNine for code completion
|
|
|
|
|
Plugin 'zxqfl/tabnine-vim'
|
2020-07-23 05:29:08 +00:00
|
|
|
|
" read man pages from vim, e.g : SuperMan ls. inspired by https://catonmat.net/read-man-pages-with-vim
|
|
|
|
|
Plugin 'jez/vim-superman'
|
2019-11-09 13:12:28 +00:00
|
|
|
|
|
2019-08-17 20:26:53 +00:00
|
|
|
|
" All of your Plugins must be added before the following line
|
2019-11-09 11:31:50 +00:00
|
|
|
|
call vundle#end()
|
2019-08-17 20:26:53 +00:00
|
|
|
|
filetype plugin indent on " required
|
|
|
|
|
" To ignore plugin indent changes, instead use:
|
|
|
|
|
"filetype plugin on
|
|
|
|
|
"
|
|
|
|
|
" Brief help
|
|
|
|
|
" :PluginList - lists configured plugins
|
|
|
|
|
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
|
|
|
|
|
" :PluginSearch foo - searches for foo; append `!` to refresh local cache
|
|
|
|
|
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
|
|
|
|
|
"
|
|
|
|
|
" see :h vundle for more details or wiki for FAQ
|
|
|
|
|
" Put your non-Plugin stuff after this line
|
|
|
|
|
|
2019-11-09 14:31:38 +00:00
|
|
|
|
" nerdtree options
|
|
|
|
|
let NERDTreeMinimalUI = 1
|
|
|
|
|
let NERDTreeDirArrows = 1
|
|
|
|
|
|
2019-11-09 13:53:56 +00:00
|
|
|
|
" vim-airline options
|
|
|
|
|
let g:airline_powerline_fonts = 1
|
|
|
|
|
|
2019-11-09 13:50:53 +00:00
|
|
|
|
" vim-gitgutter options
|
|
|
|
|
set updatetime=100
|
|
|
|
|
|
2019-11-09 11:31:50 +00:00
|
|
|
|
" have indent guides enabled by default by vim-indent-guides plugin
|
|
|
|
|
let g:indent_guides_enable_on_vim_startup = 1
|
|
|
|
|
let g:indent_guides_start_level = 2
|
|
|
|
|
let g:indent_guides_guide_size = 1
|
|
|
|
|
|
2019-11-09 12:34:55 +00:00
|
|
|
|
" vim-terraform options
|
|
|
|
|
let g:terraform_fmt_on_save=1
|
|
|
|
|
|
2019-11-09 12:22:05 +00:00
|
|
|
|
" dense-analysis/ale options
|
|
|
|
|
let g:ale_history_log_output = 1
|
|
|
|
|
let g:ale_use_global_executables = 1
|
2019-12-01 11:01:19 +00:00
|
|
|
|
let g:ale_fix_on_save = 1
|
|
|
|
|
let g:ale_completion_enabled = 1
|
2020-06-24 07:51:04 +00:00
|
|
|
|
let g:ale_open_list = 1
|
2020-07-11 10:25:30 +00:00
|
|
|
|
"\ 'yaml': ['prettier'],
|
2020-07-12 14:19:25 +00:00
|
|
|
|
|
2019-11-09 12:22:05 +00:00
|
|
|
|
let g:ale_fixers = {
|
|
|
|
|
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
|
|
|
|
\ 'python': ['black'],
|
2019-12-01 11:01:19 +00:00
|
|
|
|
\ 'rust': ['rustfmt'],
|
2020-06-24 07:51:04 +00:00
|
|
|
|
\ 'Jenkinsfile': ['checkci'],
|
2020-07-12 14:19:25 +00:00
|
|
|
|
\ 'sh' : ['shfmt'],
|
|
|
|
|
\ 'zsh' : ['shfmt'],
|
2019-11-09 12:22:05 +00:00
|
|
|
|
\}
|
|
|
|
|
|
2020-07-18 16:19:25 +00:00
|
|
|
|
let g:ale_linters = {'zsh': ['shellcheck'], 'text': ['writegood', 'proselint', 'alex']}
|
2020-07-12 14:19:25 +00:00
|
|
|
|
|
2020-07-11 10:25:30 +00:00
|
|
|
|
" when running at every change you may want to disable quickfix
|
|
|
|
|
let g:prettier#quickfix_enabled = 1
|
|
|
|
|
let g:prettier#quickfix_auto_focus = 1
|
|
|
|
|
let g:prettier#config#print_width = '30'
|
|
|
|
|
let g:prettier#exec_cmd_path = "/usr/local/bin/prettier"
|
|
|
|
|
let g:prettier#autoformat = 0
|
|
|
|
|
let g:prettier#autoformat_require_pragma = 0
|
|
|
|
|
|
|
|
|
|
"autocmd TextChanged,InsertLeave *.js,*.jsx,*.mjs,*.ts,*.tsx,*.css,*.less,*.scss,*.json,*.graphql,*.md,*.vue,*.yaml,*.html PrettierAsync
|
|
|
|
|
|
2019-07-22 18:07:59 +00:00
|
|
|
|
" Enable syntax highlighting
|
2019-03-01 10:14:29 +00:00
|
|
|
|
syntax on
|
2019-07-22 18:07:59 +00:00
|
|
|
|
" Enable line numbers
|
2019-03-01 21:17:53 +00:00
|
|
|
|
set number
|
2019-07-22 18:07:59 +00:00
|
|
|
|
" Enable desert theme
|
2019-03-01 21:17:53 +00:00
|
|
|
|
colorscheme desert
|
2019-07-22 18:07:59 +00:00
|
|
|
|
" Always show status line
|
2019-03-01 21:17:53 +00:00
|
|
|
|
set laststatus=2
|
2019-07-22 18:07:59 +00:00
|
|
|
|
|
|
|
|
|
" Highlight unwanted spaces :
|
|
|
|
|
" 1. highlight trailing whitespace in red
|
|
|
|
|
" 2. have this highlighting not appear whilst you are typing in insert mode
|
|
|
|
|
" 3. have the highlighting of whitespace apply when you open new buffers
|
2019-06-23 09:00:54 +00:00
|
|
|
|
highlight ExtraWhitespace ctermbg=red guibg=red
|
|
|
|
|
match ExtraWhitespace /\s\+$/
|
|
|
|
|
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
|
|
|
|
|
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
|
|
|
|
|
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
|
2019-07-22 18:07:59 +00:00
|
|
|
|
autocmd BufWinLeave * call clearmatches()
|
|
|
|
|
|
|
|
|
|
" Don’t create backups when editing files in certain directories
|
|
|
|
|
set backupskip=/tmp/*,/private/tmp/*
|
|
|
|
|
" Ignore case of searches
|
|
|
|
|
set ignorecase
|
|
|
|
|
" Highlight current line
|
|
|
|
|
set cursorline
|
|
|
|
|
" Highlight dynamically as pattern is typed
|
|
|
|
|
set incsearch
|
|
|
|
|
" Highlight searches
|
|
|
|
|
set hlsearch
|
|
|
|
|
" Disable error bells
|
|
|
|
|
set noerrorbells
|
|
|
|
|
" Don’t show the intro message when starting Vim
|
|
|
|
|
set shortmess=atI
|
|
|
|
|
" Show the filename in the window titlebar
|
|
|
|
|
set title
|
|
|
|
|
" Start scrolling three lines before the horizontal window border
|
|
|
|
|
set scrolloff=3
|
2019-10-13 11:31:52 +00:00
|
|
|
|
" Enable auto indent
|
2019-10-13 11:26:46 +00:00
|
|
|
|
set autoindent
|
2019-09-23 07:54:20 +00:00
|
|
|
|
" show existing tab with 4 spaces width
|
|
|
|
|
set tabstop=4
|
|
|
|
|
" when indenting with '>', use 4 spaces width
|
|
|
|
|
set shiftwidth=4
|
|
|
|
|
" On pressing tab, insert 4 spaces
|
|
|
|
|
set expandtab
|
|
|
|
|
|
2019-07-22 18:07:59 +00:00
|
|
|
|
" Default colors for highlighting search result
|
|
|
|
|
hi Search ctermfg=White
|
|
|
|
|
hi Search ctermbg=DarkMagenta
|
2019-08-17 20:26:53 +00:00
|
|
|
|
|
|
|
|
|
" test cheat.sh integration with VIM
|
2020-07-13 14:11:10 +00:00
|
|
|
|
" In any source file, type a query "e.g : how to append ... in python" then
|
|
|
|
|
" exit insert mode, and press <SPACE> then <KK>
|
2019-08-17 20:26:53 +00:00
|
|
|
|
let mapleader=" "
|
|
|
|
|
|
2019-11-09 13:25:50 +00:00
|
|
|
|
" map a specific key or shortcut to open NERDTree
|
|
|
|
|
map <C-n> :NERDTreeToggle<CR>
|
|
|
|
|
|
2020-06-24 07:51:04 +00:00
|
|
|
|
let g:netrw_liststyle = 3
|
|
|
|
|
" remove the default banner
|
|
|
|
|
let g:netrw_banner = 0
|
|
|
|
|
" set the width of directory explorer
|
|
|
|
|
let g:netrw_winsize = 25
|
|
|
|
|
" open files in a new tab
|
|
|
|
|
let g:netrw_browse_split = 4
|
2019-08-17 20:26:53 +00:00
|
|
|
|
|
|
|
|
|
let g:syntastic_javascript_checkers = [ 'jshint' ]
|
|
|
|
|
let g:syntastic_ocaml_checkers = ['merlin']
|
|
|
|
|
let g:syntastic_python_checkers = ['pylint']
|
|
|
|
|
let g:syntastic_shell_checkers = ['shellcheck']
|
2020-07-11 10:25:30 +00:00
|
|
|
|
let g:syntastic_yaml_checkers = ['yamllint']
|
|
|
|
|
let g:syntastic_vim_checkers = ['vint']
|
2020-07-12 14:19:25 +00:00
|
|
|
|
let g:syntastic_zsh_checkers = ['shellcheck']
|
2019-08-17 20:26:53 +00:00
|
|
|
|
|
|
|
|
|
set statusline+=%#warningmsg#
|
|
|
|
|
set statusline+=%{SyntasticStatuslineFlag()}
|
|
|
|
|
set statusline+=%*
|
|
|
|
|
|
|
|
|
|
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
|
2019-09-18 10:44:09 +00:00
|
|
|
|
au BufNewFile,BufRead Jenkinsfile setf groovy
|
2020-07-12 14:19:25 +00:00
|
|
|
|
au BufRead,BufNewFile *.sh setfiletype sh
|