1
0
Fork 0
mirror of https://github.com/luzifer/vim.git synced 2024-11-14 02:02:45 +00:00
vim/init.vim
Knut Ahlers fa733ebdf2
Configure go imports through gopls
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2021-02-03 22:14:10 +01:00

1012 lines
26 KiB
VimL
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

set nocompatible " be iMproved, required
filetype off " required
call plug#begin('~/.config/nvim/plugged')
" Other plugins
Plug 'airblade/vim-gitgutter'
Plug 'Chiel92/vim-autoformat'
Plug 'godlygeek/tabular'
Plug 'junegunn/vim-easy-align'
Plug 'nathanaelkane/vim-indent-guides'
Plug 'reedes/vim-pencil'
Plug 'scrooloose/nerdtree'
Plug 'tpope/vim-fugitive'
Plug 'vim-airline/vim-airline'
Plug 'autozimu/LanguageClient-neovim', { 'branch': 'next', 'do': 'bash install.sh' }
Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
" Languages
Plug 'b4b4r07/vim-hcl'
Plug 'cespare/vim-toml'
Plug 'ekalinin/Dockerfile.vim'
Plug 'fatih/vim-go' " Needs tools installation: https://gist.github.com/Luzifer/799bd9e5a06c3b8509d6da3a8f530b5c
Plug 'fatih/vim-hclfmt'
Plug 'groenewege/vim-less'
Plug 'jakar/vim-json'
Plug 'kchmck/vim-coffee-script'
Plug 'leafgarland/typescript-vim'
Plug 'Matt-Deacalion/vim-systemd-syntax'
Plug 'mutewinter/nginx.vim'
Plug 'posva/vim-vue'
call plug#end()
" important settings
"
" compatible - behave very Vi compatible (not advisable)
set nocp " cp
" cpoptions - list of flags to specify Vi compatibility
set cpo=aABceFs
" insertmode - NOT use Insert mode as the default mode
set noim " im
" paste - paste mode, insert typed text literally
set nopaste " - nopaste
" pastetoggle - key sequence to toggle paste mode
set pt=
"
" using the mouse
"
" mouse - list of flags for using the mouse
set mouse=n
" mousemodel - "extend", "popup" or "popup_setpos"; what the right mouse button is used for
set mousem=extend
" mousetime - maximum time in msec to recognize a double-click
set mouset=500
" mouseshape - what the mouse pointer looks like in different modes
set mouses=i-r:beam,s:updown,sd:udsizing,vs:leftright,vd:lrsizing,m:no,ml:up-arrow,v:rightup-arrow
" virtualedit - when to use virtual editing: "block", "insert" and/or "all"
set ve=block
"
" selecting text
"
" selection - "old", "inclusive" or "exclusive"; how selecting text behaves
set sel=old
" selectmode - "mouse", "key" and/or "cmd"; when to start Select mode instead of Visual mode
set slm=mouse,key
" clipboard - "unnamed" to use the * register like unnamed register
"autoselect" to always put selected text on the clipboard
set cb=unnamed,unnamedplus ",exclude:cons\\\|linux
" keymodel - "startsel" and/or "stopsel"; what special keys can do
set km=
"
" terminal
"
" term - name of the used terminal
"set term=builtin_gui
" ttytype - alias for 'term'
"set tty=builtin_gui
" ttyfast - terminal connection is fast
set tf " notf
" scrolljump - minimal number of lines to scroll at a time
set sj=1
" title - show info in the window title
set title " notitle
" titlelen - percentage of 'columns' used for the window title
set titlelen=85
" titlestring - when not empty, string to be used for the window title
set titlestring=
" icon - set the text of the icon for this window
set icon " noicon
" iconstring - when not empty, text for the icon of this window
set iconstring=
"
" moving around, searching and patterns
"
" whichwrap - list of flags specifying which commands wrap to another line (local to window)
set ww=b,s
" startofline - many jump commands move the cursor to the first non-blank character of a line
set sol " nosol
" paragraphs - nroff macro names that separate paragraphs
"set para=IPLPPPQPP\ LIpplpipbp
" sections - nroff macro names that separate sections
"set sect=SHNHH\ HUnhsh
" path - list of directory names used for file searching (global or local to buffer)
set pa=.,,
" cdpath - list of directory names used for :cd
set cd=.,,
" autochdir - change to directory of file in buffer
"set acd " noacd
" wrapscan - search commands wrap around the end of the buffer
set ws " nows
" incsearch - show match for partly typed search command
"set nois " is
set is " nois
" magic - change the way backslashes are used in search patterns
set magic " nomagic
" ignorecase - ignore case when using a search pattern
set ic " noic
" smartcase - override 'ignorecase' when pattern has upper case characters
set scs " noscs
" casemap - What method to use for changing case of letters
set cmp=internal,keepascii
" define - pattern for a macro definition line (global or local to buffer)
set def=^\\s*#\\s*define
" include - pattern for an include-file line (local to buffer)
set inc=^\\s*#\\s*include
" includeexpr - expression used to transform an include line to a file name (local to buffer)
set inex=
"
" syntax and highlighting
"
" enable syntax highlighting by default
syntax enable
" colorscheme - set default color theme
colorscheme groovym
" background - "dark" or "light"; the background color brightness
set bg=dark
" hlsearch - highlight all matches for the last used search pattern
set hls " nohls
"
" displaying text
"
" scroll - number of lines to scroll for CTRL-U and CTRL-D (local to window)
set scr=6
" scrolloff - number of screen lines to show around the cursor
"set so=0
set so=10
" wrap - long lines wrap
set wrap " nowrap
" linebreak - wrap long lines at a character in 'breakat' (local to window)
set lbr " nolbr
" breakat - which characters might cause a line break
set brk=\ \ !@*-+;:,./?
" showbreak - string to put before wrapped screen lines
set sbr=
" sidescroll - minimal number of columns to scroll horizontally
set ss=0
" sidescrolloff - minimal number of columns to keep left and right of the cursor
set siso=10
" display - include "lastline" to show the last line even if it doesn't fit
" include "uhex" to show unprintable characters as a hex number
set dy=
" fillchars - characters to use for the status line, folds and filler lines
set fcs=vert:\|,fold:-
" cmdheight - number of lines used for the command-line
set ch=1
" columns - width of the display
"set co=78
" lines - number of lines in the display
"set lines=32
" lazyredraw - don't redraw while executing macros
set nolz " lz
" writedelay - delay in msec for each char written to the display (for debugging)
set wd=0
" list - show <Tab> as ^I and end-of-line as $ (local to window)
set nolist " list
" listchars " list of strings used for list mode
set lcs=eol:$
" number - show the line number for each line (local to window)
set nu " nonu
"
" editing text
"
" undolevels - maximum number of changes that can be undone
set ul=1000
" modified - changes have been made and not written to a file (local to buffer)
set nomod " mod
" readonly - buffer is not to be written (local to buffer)
set noro " ro
" modifiable - changes to the text are not possible (local to buffer)
set ma " noma
" textwidth - line length above which to break a line (local to buffer)
set tw=0
" wrapmargin - margin from the right in which to break a line (local to buffer)
set wm=0
" backspace - specifies what <BS>, CTRL-W, etc. can do in Insert mode
set bs=2
" comments - definition of what comment lines look like (local to buffer)
set com=s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-
" formatoptions - list of flags that tell how automatic formatting works (local to buffer)
set fo=vt
" complete - specifies how Insert mode completion works (local to buffer)
set cpt=.,w,b,u,t,i
" dictionary - list of dictionary files for keyword completion (global or local to buffer)
set dict=
" thesaurus - list of thesaurus files for keyword completion (global or local to buffer)
set tsr=
" infercase - adjust case of a keyword completion match (local to buffer)
set noinf " inf
" digraph - enable entering digraps with c1 <BS> c2
set nodg " dg
" tildeop - the "~" command behaves like an operator
set notop " top
" showmatch - When inserting a bracket, briefly jump to its match
set sm " nosm
" matchtime - tenth of a second to show a match for 'showmatch'
set mat=5
" matchpairs - list of pairs that match for the "%" command (local to buffer)
set mps=(:),{:},[:],<:>
" joinspaces - use two spaces after '.' when joining a line
set nojs " js
" nrformats - "alpha", "octal" and/or "hex"; number formats recognized for CTRL-A and CTRL-X commands (local to buffer)
set nf=octal,hex
"
" tabs and indenting
"
" tabstop - number of spaces a <Tab> in the text stands for (local to buffer)
set ts=2
" shiftwidth - number of spaces used for each step of (auto)indent (local to buffer)
set sw=2
" smarttab - a <Tab> in an indent inserts 'shiftwidth' spaces
set sta " nosta
" softtabstop - if non-zero, number of spaces to insert for a <Tab> (local to buffer)
set sts=2
" shiftround - round to 'shiftwidth' for "<<" and ">>"
set sr " nosr
" expandtab - expand <Tab> to spaces in Insert mode (local to buffer)
set et " noet
" autoindent - automatically set the indent of a new line (local to buffer)
set ai " noai
" smartindent - do clever autoindenting (local to buffer)
set si " nosi
" cindent - enable specific indenting for C code (local to buffer)
set cin " nocin
" cinoptions - options for C-indenting (local to buffer)
set cino=
" cinkeys - keys that trigger C-indenting in Insert mode (local to buffer)
set cink=0{,0},0),:,0#,!^F,o,O,e
" cinwords - list of words that cause more C-indent (local to buffer)
set cinw=if,else,while,do,for,switch,case
" indentexpr - expression used to obtain the indent of a line (local to buffer)
set inde=
" indentkeys - keys that trigger indenting with 'indentexpr' in Insert mode (local to buffer)
set indk=0{,0},:,0#,!^F,o,O,e
" copyindent - Copy whitespace for indenting from previous line (local to buffer)
set noci " ci
" preserveindent - Preserve kind of whitespace when changing indent (local to buffer)
set nopi " pi
" lisp - enable lisp mode (local to buffer)
set lisp " nolisp
" lispwords - words that change how lisp indenting works
set lw=defun,define,defmacro,set!,lambda,if,case,let,flet,let*,letrec,do,do*,define-syntax,let-syntax,letrec-syntax,destructuring-bind,defpackage,defparameter,defstruct,deftype,defvar,do-all-symbols,do-external-symbols,do-symbols,dolist,dotimes,ecase,etypecase,eval-when,labels,macrolet,multiple-value-bind,multiple-value-call,multiple-value-prog1,multiple-value-setq,prog1,progv,typecase,unless,unwind-protect,when,with-input-from-string,with-open-file,with-open-stream,with-output-to-string,with-package-iterator,define-condition,handler-bind,handler-case,restart-bind,restart-case,with-simple-restart,store-value,use-value,muffle-warning,abort,continue,with-slots,with-slots*,with-accessors,with-accessors*,defclass,defmethod,print-unreadable-object
"
" folding
"
" foldenable - set to display all folds open (local to window)
set fen " nofen
" foldlevel - folds with a level higher than this number will be closed (local to window)
set fdl=0
" foldlevelstart - value for 'foldlevel' when starting to edit a file
set fdls=-1
" foldcolumn - width of the column used to indicate folds (local to window)
set fdc=0
" foldtext - expression used to display the text of a closed fold (local to window)
set fdt=foldtext()
" foldclose - set to "all" to close a fold when the cursor leaves it
set fcl=
" foldopen - specifies for which commands a fold will be opened
set fdo=block,hor,mark,percent,quickfix,search,tag,undo
" foldminlines - minimum number of screen lines for a fold to be closed (local to window)
set fml=1
" commentstring - template for comments; used to put the marker in
set cms=/*%s*/
" foldmethod - folding type: "manual", "indent", "expr", "marker" or "syntax" (local to window)
set fdm=manual
" foldexpr - expression used when 'foldmethod' is "expr" (local to window)
set fde=0
" foldignore - used to ignore lines when 'foldmethod' is "indent" (local to window)
"set fdi=#
set fdi=
" foldmarker - markers used when 'foldmethod' is "marker" (local to window)
set fmr={{{,}}}
" foldnestmax - maximum fold depth for when 'foldmethod is "indent" or "syntax" (local to window)
set fdn=20
"
" multiple windows
"
" laststatus - 0, 1 or 2; when to use a status line for the last window
set ls=0
" statusline - alternate format to be used for a status line
set stl=
" equalalways - make all windows the same size when adding/removing windows
set ea " noea
" eadirection - in which direction 'equalalways' works: "ver", "hor" or "both"
set ead=both
" winheight - minimal number of lines used for the current window
set wh=1
" winminheight - minimal number of lines used for any window
set wmh=1
" winfixheight - keep the height of the window (local to window)
set nowfh " wfh
" winwidth - minimal number of columns used for the current window
set wiw=20
" winminwidth - minimal number of columns used for any window
set wmw=1
" helpheight - initial height of the help window
set hh=20
" previewheight - default height for the preview window
set pvh=12
" previewwindow - identifies the preview window (local to window)
set nopvw " pvw
" hidden - don't unload a buffer when no longer shown in a window
set nohid " hid
" switchbuf - "useopen" and/or "split"; which window to use when jumping to a buffer
set swb=
" splitbelow - a new window is put below the current one
set sb " nosb
" splitright - a new window is put right of the current one
set nospr " spr
" scrollbind - this window scrolls together with other bound windows (local to window)
set noscb " scb
" scrollopt - "ver", "hor" and/or "jump"; list of options for 'scrollbind'
set sbo=ver,jump
"
" messages and info
"
" terse - add 's' flag in 'shortmess' (don't show search message)
set noterse " terse
" shortmess - list of flags to make messages shorter
set shm=filnxtToO
" showcmd - show (partial) command keys in the status line
set sc " nosc
" showmode - display the current mode in the status line
set smd " nosmd
" ruler - show cursor position below each window
set ru " noru
" rulerformat - alternate format to be used for the ruler
set ruf=
" report - threshold for reporting number of changed lines
set report=2
" verbose - the higher the more messages are given
set vbs=0
" more - pause listings when the screen is full
set more " nomore
" confirm - start a dialog when a command fails
set nocf " cf
" errorbells - ring the bell for error messages
set noeb " eb
" visualbell - use a visual bell instead of beeping
set novb " vb
" helplang - list of preferred languages for finding help
set hlg=
"
" diff mode
"
" diff - use diff mode for the current window (local to window)
set nodiff " diff
" diffopt - options for using diff mode
set dip=filler
" diffexpr - expression used to obtain a diff file
set dex=
" patchexpr - expression used to patch a file
set pex=
"
" mapping
"
" maxmapdepth - maximum depth of mapping
set mmd=1000
" remap - recognize mappings in mapped keys
set remap " noremap
" timeout - allow timing out halfway into a mapping
set to " noto
" ttimeout - allow timing out halfway into a key code
set nottimeout " ttimeout
" timeoutlen - time in msec for 'timeout'
set tm=1000
" ttimeoutlen - time in msec for 'ttimeout'
set ttm=-1
"
" reading and writing files
"
" modeline - enable using settings from modelines when reading a file (local to buffer)
set ml " noml
" modelines - number of lines to check for modelines
set mls=5
" binary - binary file editing (local to buffer)
set nobin " bin
" endofline - last line in the file has an end-of-line (local to buffer)
set eol " noeol
" bomb - Prepend a Byte Order Mark to the file (local to buffer)
set nobomb " bomb
" fileformat - end-of-line format: "dos", "unix" or "mac" (local to buffer)
set ff=unix
" fileformats - list of file formats to look for when editing a file
set ffs=unix,dos,mac
" write - writing files is allowed
set write " nowrite
" writebackup - write a backup file before overwriting a file
set nowb " nowb
" backup - keep a backup after overwriting a file
set nobk " bk
" backupskip - patterns that specify for which files a backup is not made
set bsk=/tmp/*
" backupcopy - whether to make the backup as a copy or rename the existing file
set bkc=auto
" backupdir - list of directories to put backup files in
"set bdir=.,/home/groover/tmp,/home/groover/
" backupext - file name extension for the backup file
set bex=~
" autowrite - automatically write a file when leaving a modified buffer
set noaw " aw
" autowriteall - as 'autowrite', but works with more commands
set noawa " awa
" writeany - always write without asking for confirmation
set nowa " wa
" autoread - automatically read a file when it was modified outside of Vim (global or local to buffer)
set ar " noar
" patchmode - keep oldest version of a file; specifies file name extension
set pm=
"
" the swap file
"
" directory - list of directories for the swap file
"set dir=.,/home/groover/tmp,/home/groover,/var/tmp,/tmp
" swapfile - use a swap file for this buffer (local to buffer)
set swf " noswf
" updatecount - number of characters typed to cause a swap file update
set uc=200
" updatetime - time in msec after which the swap file will be updated
set ut=4000
"
" command line editing
"
" history - how many command lines are remembered
set hi=100
" wildchar - key that triggers command-line expansion
set wc=9
" wildcharm - like 'wildchar' but can also be used in a mapping
set wcm=0
" wildmode - specifies how command line completion works
set wim=list:longest
" suffixes - list of file name extensions that have a lower priority
set su=.bak,~,.o,.h,.info,.swp,.obj
" suffixesadd - list of file name extensions added when searching for a file (local to buffer)
set sua=
" wildignore - list of patterns to ignore files for file name completion
set wig=.swp
" wildmenu - command-line completion shows a list of matches
set wmnu " nowmnu
" cedit - key used to open the command-line window
set cedit=
" cmdwinheight - height of the command-line window
set cwh=7
"
" executing external commands
"
" shell - name of the shell program used for external commands
set sh=/bin/bash
" shellquote - character(s) to enclose a shell command in
set shq=
" shellxquote - like 'shellquote' but include the redirection
set sxq=
" shellcmdflag - argument for 'shell' to execute a command
set shcf=-c
" shellredir - used to redirect command output to a file
set srr=>%s\ 2>&1
" equalprg - program used for "=" command (global or local to buffer)
set ep=
" formatprg - program used to format lines with "gq" command
set fp=
" keywordprg - program used for the "K" command
set kp=man\ -s
" warn - warn when using a shell command and a buffer has changes
set nowarn " warn
"
" tags
"
" tagbsearch - use binary searching in tags files
set tbs " notbs
" taglength - number of significant characters in a tag name or zero
set tl=0
" tags - list of file names to search for tags (global or local to buffer)
set tag=./tags,./TAGS,tags,TAGS
" tagrelative - file names in a tags file are relative to the tags file
set tr " notr
" tagstack - a :tag command will use the tagstack
set tgst " notgst
" showfulltag - when completing tags in Insert mode show more info
set nosft " sft
" cscopeprg - command for executing cscope
set csprg=cscope
" cscopetag - use cscope for tag commands
set nocst " cst
" cscopetagorder - 0 or 1; the order in which ":cstag" performs a search
set csto=0
" cscopeverbose - give messages when adding a cscope database
set nocsverb " csverb
" cscopepathcomp - how many components of the path to show
set cspc=0
" cscopequickfix - When to open a quickfix window for cscope
set csqf=
"
" running make and jumping to errors
"
" errorfile - name of the file that contains error messages
set ef=errors.err
" errorformat - list of formats for error messages (global or local to buffer)
set efm=%*[^\"]\"%f\"%*\\D%l:\ %m,\"%f\"%*\\D%l:\ %m,%-G%f:%l:\ (Each\ undeclared\ identifier\ is\ reported\ only\ once,%-G%f:%l:\ for\ each\ function\ it\ appears\ in.),%f:%l:%m,\"%f\"\\,\ line\ %l%*\\D%c%*[^\ ]\ %m,%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',%DMaking\ %*\\a\ in\ %f
" makeprg - program used for the ":make" command (global or local to buffer)
set mp=make
" shellpipe - string used to put the output of ":make" in the error file
set sp=2>&1\|\ tee
" makeef - name of the errorfile for the 'makeprg' command
set mef=
" grepprg - program used for the ":grep" command (global or local to buffer)
set gp=grep\ -n\ $*\ /dev/null
" grepformat - list of formats for output of 'grepprg'
set gfm=%f:%l:%m,%f:%l%m,%f\ \ %l%m
"
" language specific
"
" isfname - specifies the characters in a file name
set isf=@,48-57,/,.,-,_,+,,,#,$,%,~,=
" isident - specifies the characters in an identifier
set isi=@,48-57,_,192-255
" iskeyword - specifies the characters in a keyword (local to buffer)
set isk=@,48-57,_,192-255
" isprint - specifies printable characters
set isp=@,161-255
" rightleft - display the buffer right-to-left (local to window)
set norl " rl
" rightleftcmd - When to edit the command-line right-to-left (local to window)
set rlc=search
" revins - Insert characters backwards
set nori " ri
" allowrevins - Allow CTRL-_ in Insert and Command-line mode to toggle 'revins'
set noari " ari
" aleph - the ASCII code for the first letter of the Hebrew alphabet
set al=224
" hkmap - use Hebrew keyboard mapping
set nohk " hk
" hkmapp - use phonetic Hebrew keyboard mapping
set nohkp " hkp
" arabic - Prepare for editing Arabic text (local to window)
set noarab " arab
" arabicshape - Perform shaping of Arabic characters
set arshape " noarshape
" termbidi - Terminal will perform bidi handling
set notbidi " tbidi
" keymap - name of a keyboard mappping
set kmp=
" langmap - translate characters for Normal mode
set lmap=
" imdisable - when set never use IM; overrules following IM options
set noimd " imd
" iminsert - in Insert mode: 1: use :lmap; 2: use IM; 0: neither (local to window)
set imi=0
" imsearch - entering a search pattern: 1: use :lmap; 2: use IM; 0: neither (local to window)
set ims=0
" imcmdline - when set always use IM when starting to edit a command line
set noimc " imc
"
" multi-byte characters
"
" encoding - character encoding used in Vim: "latin1", "utf-8", "euc-jp", "big5", etc.
set enc=utf-8
" fileencoding - character encoding for the current file (local to buffer)
set fenc=
" fileencodings - automatically detected character encodings
set fencs=ucs-bom
" termencoding - character encoding used by the terminal
set tenc=utf-8
" charconvert - expression used for character encoding conversion
set ccv=
" delcombine - Delete combining (composing) characters on their own
set nodeco " deco
" ambiwidth - Width of ambiguous width characters
set ambw=single
"
" various
"
" cursorline - show a marker on the current line
set cursorline
" eventignore - list of autocommand events which are to be ignored
set ei=
" loadplugins - load plugin scripts when starting up
set lpl " nolpl
" exrc - enable reading .vimrc/.exrc/.gvimrc in the current directory
set noex " ex
" secure - safer working with script files in the current directory
set nosecure " secure
" gdefault - use the 'g' flag for ":substitute"
set nogd " gd
" edcompatible - 'g' and 'c' flags of ":substitute" toggle
set noed " ed
" maxfuncdepth - maximum depth of function calls
set mfd=100
" sessionoptions - list of words that specifies what to put in a session file
set ssop=blank,buffers,curdir,folds,help,options,winsize
" viewoptions - list of words that specifies what to save for :mkview
set vop=folds,options,cursor
" viewdir - directory where to store files with :mkview
"set vdir=/home/groover/.vim/view
" viminfo - list that specifies what to write in the viminfo file
set vi=
" bufhidden - what happens with a buffer when it's no longer in a window (local to buffer)
set bh=
" buftype - "", "nofile", "nowrite" or "quickfix": type of buffer (local to buffer)
set bt=
" buflisted - whether the buffer shows up in the buffer list (local to buffer)
set bl " nobl
" debug - set to "msg" to see all error messages
set debug=
"
" Configuration gitgutter
"
let g:gitgutter_enabled = 1
let g:gitgutter_highlight_lines = 0
hi SignColumn cterm=none ctermbg=none
"
" Use goimports for Fmt
"
let g:go_fmt_command = expand("~/.config/nvim/bin/gofmtimport")
"
" filetype (common for plugins)
"
filetype plugin on
"
" I want to use Shift+Arrow in VIM
" http://superuser.com/questions/401926/how-to-get-shiftarrows-and-ctrlarrows-working-in-vim-in-tmux
"
if &term =~ '^screen'
" tmux will send xterm-style keys when its xterm-keys option is on
execute "set <xUp>=\e[1;*A"
execute "set <xDown>=\e[1;*B"
execute "set <xRight>=\e[1;*C"
execute "set <xLeft>=\e[1;*D"
endif
"
" NERDTree configuration
"
" Autostart NERDTree on start
"autocmd vimenter * NERDTree
" On Ctrl-N toggle NERDTree
map <C-n> :NERDTreeToggle<CR>
" Autoclose vim when NERDTree is last window
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTreeType") && b:NERDTreeType == "primary") | q | endif
"
" deoplete configuration
"
let g:deoplete#enable_at_startup = 1
" Enable omni completion.
autocmd FileType css setlocal omnifunc=csscomplete#CompleteCSS
autocmd FileType html,markdown setlocal omnifunc=htmlcomplete#CompleteTags
autocmd FileType javascript setlocal omnifunc=javascriptcomplete#CompleteJS
autocmd FileType python setlocal omnifunc=pythoncomplete#Complete
autocmd FileType xml setlocal omnifunc=xmlcomplete#CompleteTags
"
" vim-go configuration
"
let g:go_autodetect_gopath = 0
let g:go_def_mode = "gopls"
let g:go_fmt_command = "gopls"
let g:go_gopls_gofumpt = 1
let g:go_imports_autosave = 1
let g:go_imports_mode = "gopls"
let g:go_metalinter_deadline = "20s"
"
" LanguageServer configuration
"
let g:LanguageClient_rootMarkers = {
\ 'go': ['go.mod'],
\ }
let g:LanguageClient_serverCommands = {
\ 'go': ['gopls'],
\ 'python': ['pyls'],
\ }
"
" Autoformat configuration
"
let g:formatters_vue = ['eslint_local']
au FileType python,javascript,vue au BufWritePre <buffer> :Autoformat
au FileType sh,zsh au BufWritePre <buffer> :call SHFmt()
"
" typescript-vim configuration
"
let g:typescript_indent_disable = 1
"
" vim-airline configuration
"
let g:airline#extensions#tabline#enabled = 1
let g:airline_powerline_fonts = 1
"
" Custom commands
"
command -range=% JF :<line1>,<line2>!jq .