set tabstop=4
set shiftwidth=4
set number relativenumber
set encoding=UTF-8
" NERDTree Shortcut
nnoremap <C-n> :NERDTreeToggle<C-m>
" IDE Mode
nnoremap <C-i> :NERDTreeToggle<C-m>:TagbarToggle<C-m>
" Vim Plug Plugins
call plug#begin('~/.vim/plugged')
" Aesthetics
Plug 'bling/vim-airline'
Plug 'flazz/vim-colorschemes'
" Autocomplete
Plug 'neoclide/coc.nvim', {'branch': 'release'}
" Notes:
" For golang to work, gopls must be installed
"
" node and npm must be installed in general
"
" For python to work, install jedi with pip
"
" For clang to work, install clangd
"
" For tsserver to work, install tsserver by globally installing typescript
" with npm
" Editor
Plug 'ctrlpvim/ctrlp.vim'
Plug 'scrooloose/nerdtree'
Plug 'w0rp/ale'
Plug 'jiangmiao/auto-pairs'
Plug 'mattn/emmet-vim'
Plug 'godlygeek/tabular'
Plug 'majutsushi/tagbar'
Plug 'tpope/vim-commentary'
Plug 'xuyuanp/nerdtree-git-plugin'
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'
Plug 'ntpeters/vim-better-whitespace'
Plug 'mhinz/vim-startify'
" Syntax
Plug 'liuchengxu/graphviz.vim'
Plug 'lervag/vimtex'
Plug 'jceb/vim-orgmode'
Plug 'elzr/vim-json'
Plug 'habamax/vim-asciidoctor'
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
Plug 'rust-lang/rust.vim'
Plug 'rhysd/vim-crystal'
call plug#end()
set background=dark
colorscheme gruvbox
" Extra Setup
let g:go_fmt_command = "goimports"
let g:ctrlp_map = '<c-p>'
let g:ctrlp_cmd = 'CtrlP'
{
"languageserver": {
"golang": {
"command": "gopls",
"rootPatterns": ["go.mod"],
"filetypes": ["go"]
},
"clangd": {
"command": "clangd",
"args": ["--background-index"],
"rootPatterns": ["compile_flags.txt", "compile_commands.json", ".vim/", ".git/", ".hg/"],
"filetypes": ["c", "cpp", "objc", "objcpp"]
}
}
}