Start a list of alternative nvim plugin managers
[khome.git] / home / .config / nvim / init.vim
CommitLineData
e66a0080
SK
1"==============================================================================
2" Plugins
3"==============================================================================
4
e2c73814
SK
5" Alternative plugin managers to try:
6" - https://github.com/Shougo/dein.vim
7
e66a0080
SK
8" BEGIN Vim-Plug (https://github.com/junegunn/vim-plug)
9" Run :PlugInstall after adding a new plugin
10call plug#begin()
11
12Plug 'dense-analysis/ale' " Syntastic's spiritual succesor
13Plug 'preservim/nerdtree'
14"Plug 'nvim-tree/nvim-web-devicons' " Needs patched fonts: https://www.nerdfonts.com/
15Plug 'phha/zenburn.nvim'
16Plug 'itchyny/lightline.vim'
17Plug 'numToStr/Comment.nvim'
18Plug 'rust-lang/rust.vim'
19Plug 'neoclide/coc.nvim', {'branch': 'release'}
20" Plug 'neovim/nvim-lspconfig'
21
22" Plug 'hrsh7th/cmp-nvim-lsp', {'branch': 'main'}
23" Plug 'hrsh7th/cmp-buffer', {'branch': 'main'}
24" Plug 'hrsh7th/cmp-path', {'branch': 'main'}
25" Plug 'hrsh7th/nvim-cmp', {'branch': 'main'}
26"
27" " Only because nvim-cmp _requires_ snippets
28" Plug 'hrsh7th/cmp-vsnip', {'branch': 'main'}
29" Plug 'hrsh7th/vim-vsnip'
30
31" Plug 'simrat39/rust-tools.nvim'
32
33call plug#end()
34" END Vim-Plug
35
36lua require('Comment').setup()
37" luafile ~/.config/nvim/setup-rust-tools.lua
38"luafile ~/.config/nvim/setup-lsp-rust-jonhoo.lua
39source ~/.config/nvim/setup-coc.vim
40
41" NERDTree
42let NERDTreeShowLineNumbers=1
43
dfa253a2
SK
44" rust.vim
45let g:rustfmt_autosave = 1
46
e66a0080
SK
47"==============================================================================
48" Defaults
49"==============================================================================
50
51"------------------------------------------------------------------------------
52" General
53"------------------------------------------------------------------------------
54set nocompatible " Because plain vi is a bit annoying
55set nu " Line numbers in gutter
56"set rnu " Relative number. relativenumber rnu norelativenumber nornu
57set ruler " Line and column numbers in status
58set splitright splitbelow " Split window order
59set bs=2 " Enable backspace key
60set history=1000 " Bump history from default of 20
61set modeline
62set modelines=3
63set ttimeoutlen=100 " Reduce delay when addinng libe above ("O")
64"set fileformats=unix
65filetype on
66filetype plugin on
67set mouse=a " To scroll Coc tooltips. https://github.com/neoclide/coc.nvim/issues/1405
68set spellfile=~/.vim/spell/en.utf-8.add
69set spelllang=en,ru
70
71" lightline
72set laststatus=2
73set noshowmode
74let g:lightline = {'colorscheme': 'seoul256'}
75
76"------------------------------------------------------------------------------
77" Color
78"------------------------------------------------------------------------------
3dab95b2
SK
79set t_Co=256
80syntax enable
81set background=dark
82colorscheme zenburn
e66a0080
SK
83
84au TextYankPost * lua vim.highlight.on_yank {higroup="IncSearch", timeout=250, on_visual=true, on_macro=true}
85
86"hi Normal guibg=NONE " Transparency
87"hi Normal ctermbg=NONE " Transparency
88
89"------------------------------------------------------------------------------
90" Search
91"------------------------------------------------------------------------------
92set hlsearch
93set incsearch
94set noignorecase
95set smartcase
96
97"------------------------------------------------------------------------------
98" Text format / indentation
99"------------------------------------------------------------------------------
100filetype indent on
101set autoindent
102set smartindent
103set expandtab
104set tabstop=8
105set softtabstop=4
106set shiftwidth=4
107set textwidth=0 " What is the point of this again? Prevent auto-wrapping?
108
109"------------------------------------------------------------------------------
110" Code folding
111"------------------------------------------------------------------------------
112set foldmethod=indent
113set nofoldenable
114
115"------------------------------------------------------------------------------
116" Style enforcement
117"------------------------------------------------------------------------------
118" Lines too-long
3dab95b2 119let &colorcolumn=join(range(80,80),",")
e66a0080
SK
120"match ErrorMsg '\%>79v.\+'
121
3dab95b2 122match ErrorMsg '\s\+$' " Trailing whitespace
e66a0080
SK
123"2match ErrorMsg '\t' " Tabs
124
125" TODO: How to match more than 2 things? 3match is reserved for brackets.
126
127"==============================================================================
128" Per FileType overrides
129"==============================================================================
130
131" C
132autocmd FileType c set noexpandtab | set shiftwidth=8 | set tabstop=8 | set softtabstop=8
133
134" TypeScript
135autocmd FileType typescript set noexpandtab | set shiftwidth=8 | set tabstop=8 | set softtabstop=8
136
137" R
138autocmd FileType r set tabstop=2 | set softtabstop=2 | set shiftwidth=2
139
140" Python
141autocmd FileType python set omnifunc=pythoncomplete#Complete
142
143" Git commit
144autocmd FileType gitcommit set spell
145
146" Markdown
147"autocmd FileType markdown set spell
148autocmd FileType markdown set expandtab | set tabstop=2 | set softtabstop=2 | set shiftwidth=2
149
150" HTML
151autocmd FileType html set spell
152
153" MediaWiki
154autocmd FileType mediawiki set spell
155autocmd FileType mediawiki set tabstop=2 | set softtabstop=2 | set shiftwidth=2
156
157" Tiger
158autocmd BufNewFile,BufRead *.tig set filetype=tiger
159
160" SML
161autocmd BufNewFile,BufRead *.sig set filetype=sml
162
163" Mathematica
164autocmd BufNewFile,BufRead *.m set filetype=mma
165autocmd BufNewFile,BufRead *.mt set filetype=mma
166autocmd FileType mma set tabstop=2 | set softtabstop=2 | set shiftwidth=2
167
168" F#
169autocmd FileType fsharp set tabstop=4 | set softtabstop=4 | set shiftwidth=4
170
171" twtxt.txt
172autocmd BufNewFile,BufRead twtxt.txt set filetype=conf | set noexpandtab
173
174" Scheme
175autocmd FileType scheme set tabstop=2 | set softtabstop=2 | set shiftwidth=2
176
177" Racket
178autocmd FileType racket setlocal equalprg=scmindent.rkt
179"autocmd FileType racket setlocal equalprg=raco\ fmt
180
181" Erlang
182"autocmd FileType erlang setlocal equalprg=erlfmt
183autocmd FileType erlang set tabstop=4 | set softtabstop=4 | set shiftwidth=4
184
185" -----------------------------------------------------------------------------
186" TypeScript
187" -----------------------------------------------------------------------------
188"let g:tsuquyomi_completion_detail = 1
189"let g:tsuquyomi_use_local_typescript = 0
190"let g:syntastic_typescript_checkers = ['tsuquyomi']
191
192" -----------------------------------------------------------------------------
193" Racket
194" -----------------------------------------------------------------------------
195let g:syntastic_enable_racket_racket_checker = 0
196
197" -----------------------------------------------------------------------------
198" OCaml
199" -----------------------------------------------------------------------------
200autocmd FileType ocaml set tabstop=2 | set softtabstop=2 | set shiftwidth=2
This page took 0.073369 seconds and 4 git commands to generate.