summaryrefslogtreecommitdiffstats
path: root/.config/nvim/init.vim
blob: 23a5ecfce0b60241ca686327043f191743eea679 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
" nvim configuration

scriptencoding utf-8

colorscheme solarized-dark

set title
set titleold=st
set cursorline
set noshowmode

set scrolloff=3
set linebreak
set ignorecase
set smartcase

set tabstop=2
set shiftwidth=2
set softtabstop=2
set expandtab

set clipboard=unnamed

" Filter the command history without leaving the home row (PV34)
cnoremap <C-p> <Up>
cnoremap <C-n> <Down>

" Move by display lines (PV47)
nnoremap j gj
nnoremap gj j
nnoremap k gk
nnoremap gk k

" Persistent undo except for temporary files (MV24)
set undofile
augroup vimrc
  autocmd!
  autocmd BufWritePre /dev/shm/* setlocal noundofile
augroup END

set spelllang=en_gb

set wildcharm=<C-Z>
let mapleader = ' '

autocmd TextYankPost * silent! lua vim.highlight.on_yank {higroup="IncSearch", timeout=250}

let g:loaded_2html_plugin = 1
let g:loaded_gzip = 1
let g:loaded_man = 1
let g:loaded_matchit = 1
let g:loaded_matchparen = 1
let g:loaded_netrw = 1
let g:loaded_netrwPlugin = 1
let g:loaded_remote_plugins = 1
let g:loaded_tarPlugin = 1
let g:loaded_tutor_mode_plugin = 1
let g:loaded_zipPlugin = 1

let g:loaded_python3_provider = 0
let g:loaded_ruby_provider = 0
let g:loaded_node_provider = 0
let g:loaded_perl_provider = 0

" ----- ALE -----
let g:ale_enabled = 0
let g:ale_completion_enabled = 1
nmap <leader>a <Plug>(ale_toggle)
nmap <leader>f <Plug>(ale_fix)
nmap <leader>i <Plug>(ale_info)
nmap <silent> <C-k> <Plug>(ale_previous_wrap)
nmap <silent> <C-j> <Plug>(ale_next_wrap)
let g:ale_linters = {
      \ 'PKGBUILD'  : ['shellcheck'],
      \ 'lua'       : ['luacheck', 'lua_language_server'],
      \ 'sh'        : ['shellcheck'],
      \ 'text'      : ['cspell', 'languagetool'],
      \ 'yaml'      : ['yamllint'],
      \}
let g:ale_fixers = {
      \ '*'          : ['remove_trailing_lines', 'trim_whitespace'],
      \ 'css'        : ['prettier'],
      \ 'html'       : ['prettier'],
      \ 'javascript' : ['prettier'],
      \ 'json'       : ['prettier'],
      \ 'lua'        : ['stylua'],
      \ 'markdown'   : ['prettier'],
      \ 'ruby'       : ['prettier'],
      \ 'scss'       : ['prettier'],
      \ 'sh'         : ['shfmt'],
      \ 'yaml'       : ['prettier'],
      \}
let g:ale_markdown_markdownlint_options = '--disable MD025 --'
let g:ale_tex_chktex_options = '-I -n1 -n3 -n24' " VimTeX does '-n1 -n3 -n8 -n25 -n36'
let g:ale_sh_shfmt_options = '--indent 2 --case-indent --binary-next-line'

" ----- Gitsigns -----
lua require('gitsigns').setup()

" ----- QuickTex -----
let g:quicktex_usedefault = 0
let g:quicktex_excludechar = ['\$', '(', ')', '\[', ']', '{', '}', '\.', ',', ':', ';', '-', '+', '*', '"', '''']
nmap <leader>g :GenerateQuicktexDictionaries<CR>

" ----- Vifm -----
nmap <leader>f :Vifm<CR>

" ----- VimTeX -----
nmap <leader>c <Plug>(vimtex-compile)
nmap <leader>v <Plug>(vimtex-view)
nmap <leader>t <Plug>(vimtex-toc-toggle)
let g:vimtex_view_method = 'zathura'
let g:vimtex_quickfix_open_on_warning = 0
let g:vimtex_indent_enabled = 0
let g:vimtex_indent_on_ampersands = 0
      "\ 'lt_directory'       : '~/code/LanguageTool-6.0/',
let g:vimtex_grammar_vlty = {
      \ 'lt_command'       : 'languagetool',
      \ 'shell_options'    : '--equation-punctuation display',
      \ 'show_suggestions' : '1',
      \}
let g:vimtex_toc_config = {
      \ 'layers' : ['content'],
      \ 'show_help' : 0,
      \}

" vim: ft=vim