all repos

dotfiles @ 9b2871dd654503b626409b912c616506a5b320eb

my dotfiles

config/nvim/init.vim (view raw)

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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
call plug#begin('~/.vim/plugged')
  Plug 'Smirnov-O/nten16.vim'   " Color scheme
  Plug 'itchyny/lightline.vim'  " Status bar
  Plug 'maximbaz/lightline-ale' " Linter info in bar
  Plug 'dense-analysis/ale'     " Linter
  Plug 'airblade/vim-gitgutter' " Git indicator
  Plug 'ap/vim-css-color'       " Preview CSS colors
  Plug 'jiangmiao/auto-pairs'   " Auto close brackets
  Plug 'editorconfig/editorconfig-vim'  " Editor Config support
  Plug 'christoomey/vim-tmux-navigator' " Jump from vim in tmux
  Plug 'maxboisvert/vim-simple-complete' " Sublime like completion

  " Language support
  Plug 'pangloss/vim-javascript', {'for': 'javascript'}
  Plug 'mxw/vim-jsx', {'for': ['javascript.jsx', 'javascript']}
  Plug 'plasticboy/vim-markdown', {'for': 'markdown'}
  Plug 'PotatoesMaster/i3-vim-syntax', {'for': 'i3'}
  Plug 'cespare/vim-toml', {'for': 'toml'}
  Plug 'zah/nim.vim', {'for': 'nim'}
call plug#end()
syntax on

" Theme
set termguicolors
colorscheme nten16
set t_Co=256

" number line
set nu rnu

" Status line
set noshowmode showcmd
set ruler

" Mouse
set mouse=a mousehide
set cursorline

" Encoding
set encoding=utf-8 fileencodings=utf-8

" Line wrap
set nowrap nolinebreak

" Backup file & history
set nobackup noswapfile
set history=100

" Auto reload file
set autoread

" Tabs
set ts=4 sts=4
set expandtab autoindent
set shiftwidth=4

" Search
set incsearch ignorecase smartcase

" Buffer(s)
set hidden smartindent

" Spell
set spell spelllang=en_us

" Space/tab indicator
set list listchars=tab:>·,trail:~,extends:>,precedes:<,space:·

" Disable sound
set visualbell t_vb=

"== Language configuration
let g:jsx_ext_required = 0

" Markdown
let g:vim_markdown_folding_disabled = 1
let g:markdown_fenced_languages = ['javascript', 'js=javascript', 'jsx=javascript.jsx', 'python', 'bash', 'sh=bash']

"== Plug in configuration
let g:lightline = {
\ 'colorscheme': 'nten16',
\ 'active': {
\    'left':  [ [ 'mode', 'paste' ],
\               [ 'readonly', 'modified' ],
\               [ 'linter_errors', 'linter_warnings', 'linter_infos' ] ],
\    'right': [ [ 'lineinfo' ],
\               [ 'percent' ],
\               [ 'filename', 'filetype' ] ]},
\ 'component_expand': {
\   'linter_errors': 'lightline#ale#errors',
\   'linter_infos': 'lightline#ale#infos',
\   'linter_warnings': 'lightline#ale#warnings'
\ }, }

" Ale
let g:ale_disable_lsp = 1
let g:ale_sign_error = '> '
let g:ale_sign_warning = '- '
let g:ale_echo_msg_format = '%severity%: %s'
let g:ale_fixers = {
\ 'javascript': ['prettier', 'eslint' ],
\ 'python':     ['flake8',   'pylint8']}

" == Mapping
let mapleader="\\"
imap jj <esc>

" Window(s)
nmap <C-h> :wincmd h<CR>
nmap <C-j> :wincmd j<CR>
nmap <C-k> :wincmd k<CR>
nmap <C-l> :wincmd l<CR>
nmap <A-z> :wincmd K<CR>
nmap <A-x> :wincmd L<CR>
nmap <A-c> :wincmd n<CR>

" C-j/k as up/down in menu
inoremap <expr> <C-j> ("\<C-n>")
inoremap <expr> <C-k> ("\<C-p>")

" Tab(s)
noremap <C-Tab> :tabnext<CR>
noremap <C-S-Tab> :tabprev<CR>
noremap <C-t> :tabnew<CR>
noremap <C-w> :tabclose<CR>
noremap <A-1> :tabn 1<CR>
noremap <A-2> :tabn 2<CR>
noremap <A-3> :tabn 3<CR>
noremap <A-4> :tabn 4<CR>
noremap <A-5> :tabn 5<CR>
noremap <A-6> :tabn 6<CR>
noremap <A-7> :tabn 7<CR>
noremap <A-8> :tabn 8<CR>
noremap <A-9> :tabn 9<CR>

" Buffer(s)
noremap <leader>b :bnext<CR>
noremap <leader>p :bprev<CR>

" Paste & copy from/in system clipboard
noremap <leader>c "*yy<CR>
noremap <leader>v "+p<CR>