Files
dotfiles/nvim/init.vim
2025-03-17 20:55:10 +01:00

213 lines
4.8 KiB
VimL

call plug#begin()
Plug 'airblade/vim-gitgutter'
Plug 'dense-analysis/ale'
Plug 'deoplete-plugins/deoplete-jedi'
Plug 'deoplete-plugins/deoplete-go'
Plug 'joshdick/onedark.vim'
Plug 'junegunn/fzf'
Plug 'luochen1990/rainbow'
Plug 'preservim/nerdtree'
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
Plug 'tpope/vim-fugitive'
Plug 'tpope/vim-surround'
Plug 'vim-airline/vim-airline'
Plug 'xuyuanp/nerdtree-git-plugin'
call plug#end()
" selection - "old", "inclusive" or "exclusive"; how selecting text behaves
set selection=exclusive
" enable syntax highlighting by default
syntax enable
" background - "dark" or "light"; the background color brightness
set background=dark
" scrolloff - number of screen lines to show around the cursor
"set so=0
set scrolloff=10
" wrap - long lines wrap
set wrap " nowrap
" linebreak - wrap long lines at a character in 'breakat' (local to window)
set linebreak " nolbr
" breakat - which characters might cause a line break
set breakat=\ \ !@*-+;:,./?
" number - show the line number for each line (local to window)
set number " nonu
" undolevels - maximum number of changes that can be undone
set undolevels=1000
" backspace - specifies what <BS>, CTRL-W, etc. can do in Insert mode
set backspace=2
" showmatch - When inserting a bracket, briefly jump to its match
set showmatch " nosm
" matchtime - tenth of a second to show a match for 'showmatch'
set matchtime=5
" matchpairs - list of pairs that match for the "%" command (local to buffer)
set matchpairs=(:),{:},[:],<:>
" tabstop - number of spaces a <Tab> in the text stands for (local to buffer)
set tabstop=2
" shiftwidth - number of spaces used for each step of (auto)indent (local to buffer)
set shiftwidth=2
" smarttab - a <Tab> in an indent inserts 'shiftwidth' spaces
set smarttab " nosta
" softtabstop - if non-zero, number of spaces to insert for a <Tab> (local to buffer)
set softtabstop=2
" shiftround - round to 'shiftwidth' for "<<" and ">>"
set shiftround " nosr
" expandtab - expand <Tab> to spaces in Insert mode (local to buffer)
set expandtab " noet
" autoindent - automatically set the indent of a new line (local to buffer)
set autoindent " noai
" smartindent - do clever autoindenting (local to buffer)
set smartindent " nosi
" splitbelow - a new window is put below the current one
set splitbelow " nosb
" splitright - a new window is put right of the current one
set splitright " nospr
" showcmd - show (partial) command keys in the status line
set showcmd " nosc
" showmode - display the current mode in the status line
set noshowmode " nosmd
" ruler - show cursor position below each window
set ruler " noru
" history - how many command lines are remembered
set history=100
" listchars - which characters to list
set listchars=eol:$,tab:>-,trail:~,extends:>,precedes:<,space:.
" list - show characters defined in listchars
set list " nolist
" cursorline - show a marker on the current line
set cursorline
" colortheme settings
let $NVIM_TUI_ENABLE_TRUE_COLOR = 1
let g:onedark_termcolors = 256
let g:onedark_terminal_italics = 0
" colorscheme - set default color theme
colorscheme onedark
hi Normal guibg=NONE ctermbg=NONE
" airline settings
let g:airline_theme = 'onedark'
let g:airline_powerline_fonts = 1
set encoding=utf-8
"
" Configuration gitgutter
"
let g:gitgutter_enabled = 1
let g:gitgutter_highlight_lines = 0
hi SignColumn cterm=none ctermbg=none
set updatetime=100
" Use deoplete.
let g:deoplete#enable_at_startup = 1
inoremap <expr><tab> pumvisible() ? "\<c-n>" : "\<tab>"
" deoplete-go settings
let g:deoplete#sources#go#gocode_binary = $GOPATH.'/bin/gocode'
let g:deoplete#sources#go#sort_class = ['package', 'func', 'type', 'var', 'const']
"
" deoplete-jedi settings
"
let g:deoplete#sources#jedi#ignore_errors = ['E501']
" Use goimports for Fmt
"
let g:go_fmt_command = "goimports"
"
" filetype (common for plugins)
"
filetype plugin on
"
" vim-go configuration
"
let g:go_gocode_autobuild = 1
let g:go_metalinter_deadline = "20s"
let g:go_autodetect_gopath = 0
"
" vim-python configuration
"
let g:pymode_lint_ignore = ["E501", "W",]
let g:python_highlight_all = 1
"
" ale configuration
"
let g:ale_fixers = {
\ '*': ['remove_trailing_lines', 'trim_whitespace'],
\}
let g:ale_fix_on_save = 1
let g:airline#extensions#ale#enabled = 1
let g:ale_lint_on_text_changed = 'never'
"
" vim-rainbow settings
"
let g:rainbow_active = 1
"
" gopass configuration
"
au BufNewFile,BufRead /dev/shm/gopass.* setlocal noswapfile nobackup noundofile
"
" NERDtree settings
"
" autocmd vimenter * NERDTree
map - :NERDTreeToggle<CR>
let g:NERDGitStatusTreeIndicatorMapCustom = {
\ "Modified" : "✹",
\ "Staged" : "✚",
\ "Untracked" : "✭",
\ "Renamed" : "➜",
\ "Unmerged" : "═",
\ "Deleted" : "✖",
\ "Dirty" : "✗",
\ "Clean" : "✔︎",
\ 'Ignored' : '☒',
\ "Unknown" : "?"
\ }