dotfiles/.vimrc

93 lines
2.5 KiB
VimL
Raw Normal View History

2022-04-05 12:45:55 -05:00
" basic vim settings (tab width, line numbers, etc)
set tabstop=4
set shiftwidth=4
set softtabstop=4
set showtabline=2
set number
set expandtab
2022-04-05 15:19:46 -05:00
set encoding=UTF-8
2022-06-24 12:36:43 -05:00
set hlsearch
set incsearch
2022-06-29 01:48:08 -05:00
set cursorline
2023-03-27 19:55:13 -05:00
set relativenumber
2022-04-05 12:45:55 -05:00
" install vim-plug if it's not installed already
let data_dir = has('nvim') ? stdpath('data') . '/site' : '~/.vim'
if empty(glob(data_dir . '/autoload/plug.vim'))
silent execute '!curl -fLo '.data_dir.'/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
endif
" install plugins
call plug#begin()
2022-01-21 11:22:06 -06:00
Plug 'ycm-core/YouCompleteMe'
2022-04-05 12:45:55 -05:00
Plug 'preservim/nerdtree'
2022-04-05 15:19:46 -05:00
Plug 'ryanoasis/vim-devicons'
2022-04-09 14:46:39 -05:00
Plug 'alx741/vim-rustfmt'
2022-04-19 08:51:14 -05:00
Plug 'arcticicestudio/nord-vim'
2022-04-26 11:51:39 -05:00
Plug 'spf13/vim-autoclose'
2022-05-16 15:20:59 -05:00
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'tpope/vim-fugitive'
2022-05-20 10:54:45 -05:00
Plug 'valloric/MatchTagAlways'
2022-06-19 05:37:39 -05:00
Plug 'preservim/nerdcommenter'
2022-06-24 10:19:55 -05:00
Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' } " requires nodejs and yarn installed
2022-07-27 21:31:28 -05:00
Plug 'alvan/vim-closetag'
2023-04-16 11:52:02 -05:00
Plug 'normen/vim-pio'
2022-01-21 11:22:06 -06:00
call plug#end()
2022-04-05 12:45:55 -05:00
2022-04-19 08:51:14 -05:00
colorscheme nord
2022-05-16 15:20:59 -05:00
" airline should detect the theme automatically but just in case
let g:airline_theme='nord'
2022-04-05 12:45:55 -05:00
" Keybindings for tab management
map <C-z> :tabp<CR>
map <C-x> :tabn<CR>
map <C-c> :tabnew<CR>
2022-06-24 12:36:43 -05:00
" keybinding for removing search highlights
nnoremap \\ :noh<CR>
2022-04-05 12:45:55 -05:00
" NERDTree settings
nnoremap <C-t> :NERDTreeToggle<CR>
let g:NERDTreeAutoDeleteBuffer = 1
let g:NERDTreeMinimalUI = 1
let g:NERDTreeQuitOnOpen = 1
let g:NERDTreeDirArrowExpandable = '>'
let g:NERDTreeDirArrowCollapsible = '<'
2022-05-17 15:08:29 -05:00
" airline settings
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
2022-04-05 12:45:55 -05:00
" save/quit
nnoremap <C-s> :w<CR>
nnoremap <C-q> :q<CR>
2022-04-09 14:46:50 -05:00
" YCM settings
let g:ycm_autoclose_preview_window_after_completion = 1
let g:ycm_rust_toolchain_root = "/home/yashkarandikar/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/"
2022-08-28 00:41:16 -05:00
let g:ycm_clear_inlay_hints_in_insert_mode = 1
nnoremap <C-h> <Plug>(YCMToggleInlayHints)
2022-04-26 11:51:39 -05:00
" Don't autoclose quotes in vim files
let g:autoclose_vim_commentmode = 1
2022-05-23 11:21:08 -05:00
" smart search
set ignorecase
set smartcase
2022-06-19 05:37:39 -05:00
" nerdcommenter settings
filetype plugin on
let g:NERDCreateDefaultMappings = 0
let g:NERDSpaceDelims = 1
nnoremap <C-_> :call nerdcommenter#Comment('n', 'invert')<CR>
nnoremap <C-B> :call nerdcommenter#Comment('x', 'invert')<CR>
nnoremap <C-S-a> :call nerdcommenter#Comment('n', 'append')<CR>
2022-06-24 10:19:55 -05:00
" markdown preview settings
nnoremap <C-p> :MarkdownPreviewToggle<CR>
2022-07-09 11:15:08 -05:00
nnoremap ` ~