216 lines
7.2 KiB
Plaintext
216 lines
7.2 KiB
Plaintext
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.
|
||
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'
|
||
" basic vim/terraform integration
|
||
Plugin 'hashivim/vim-terraform'
|
||
" A solid language pack for Vim. support for kotlin, terraform, groovy, ...
|
||
Plugin 'sheerun/vim-polyglot'
|
||
" A code-completion engine for Vim
|
||
Plugin 'Valloric/YouCompleteMe'
|
||
" 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'
|
||
" A tree explorer plugin for vim.
|
||
Plugin 'scrooloose/nerdtree'
|
||
" A plugin of NERDTree showing git status
|
||
Plugin 'Xuyuanp/nerdtree-git-plugin'
|
||
" 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'
|
||
|
||
" 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'
|
||
" Prettier to auto format some files
|
||
Plugin 'mitermayer/vim-prettier'
|
||
|
||
" All of your Plugins must be added before the following line
|
||
call vundle#end()
|
||
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
|
||
|
||
" nerdtree options
|
||
let NERDTreeMinimalUI = 1
|
||
let NERDTreeDirArrows = 1
|
||
|
||
" vim-airline options
|
||
let g:airline_powerline_fonts = 1
|
||
|
||
" vim-gitgutter options
|
||
set updatetime=100
|
||
|
||
" 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
|
||
|
||
" vim-terraform options
|
||
let g:terraform_fmt_on_save=1
|
||
|
||
" dense-analysis/ale options
|
||
let g:ale_history_log_output = 1
|
||
let g:ale_use_global_executables = 1
|
||
let g:ale_fix_on_save = 1
|
||
let g:ale_completion_enabled = 1
|
||
let g:ale_open_list = 1
|
||
"\ 'yaml': ['prettier'],
|
||
|
||
let g:ale_fixers = {
|
||
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
|
||
\ 'python': ['black'],
|
||
\ 'rust': ['rustfmt'],
|
||
\ 'Jenkinsfile': ['checkci'],
|
||
\ 'sh' : ['shfmt'],
|
||
\ 'zsh' : ['shfmt'],
|
||
\}
|
||
|
||
let g:ale_linters = {'zsh': ['shellcheck'], 'text': ['writegood', 'proselint', 'alex']}
|
||
|
||
" 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
|
||
|
||
" Enable syntax highlighting
|
||
syntax on
|
||
" Enable line numbers
|
||
set number
|
||
" Enable desert theme
|
||
colorscheme desert
|
||
" Always show status line
|
||
set laststatus=2
|
||
|
||
" 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
|
||
highlight ExtraWhitespace ctermbg=red guibg=red
|
||
match ExtraWhitespace /\s\+$/
|
||
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
|
||
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
|
||
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
|
||
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
|
||
" Enable auto indent
|
||
set autoindent
|
||
" 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
|
||
|
||
" Default colors for highlighting search result
|
||
hi Search ctermfg=White
|
||
hi Search ctermbg=DarkMagenta
|
||
|
||
" test cheat.sh integration with VIM
|
||
" In any source file, type a query "e.g : how to append ... in python" then
|
||
" exit insert mode, and press <SPACE> then <KK>
|
||
let mapleader=" "
|
||
|
||
" map a specific key or shortcut to open NERDTree
|
||
map <C-n> :NERDTreeToggle<CR>
|
||
|
||
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
|
||
|
||
let g:syntastic_javascript_checkers = [ 'jshint' ]
|
||
let g:syntastic_ocaml_checkers = ['merlin']
|
||
let g:syntastic_python_checkers = ['pylint']
|
||
let g:syntastic_shell_checkers = ['shellcheck']
|
||
let g:syntastic_yaml_checkers = ['yamllint']
|
||
let g:syntastic_vim_checkers = ['vint']
|
||
let g:syntastic_zsh_checkers = ['shellcheck']
|
||
|
||
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
|
||
au BufNewFile,BufRead Jenkinsfile setf groovy
|
||
au BufRead,BufNewFile *.sh setfiletype sh
|