blob: efbeec72435813467966a0276a5e5a6832f2f8a0 (
plain)
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
|
"
" VIM
"
" Viminfo
let &viminfofile = "~/.cache/vim/viminfo"
" Theme
colorscheme industry
" Settings
set autochdir autoindent autoread
set clipboard=unnamed,unnamedplus
set history=100
set hlsearch
set keywordprg=:help
set listchars=eol:↴,tab:➔\ ,trail:~,extends:»,precedes:«,space:·
set mouse=a
set noexpandtab tabstop=4 softtabstop=4 shiftwidth=4
set nrformats=bin,hex
set smartindent
set spell spelllang=en_gb
set timeout timeoutlen=500 ttimeoutlen=50
set wildmenu wildoptions=pum
" Mappings
noremap j <up>
noremap k <down>
noremap l <left>
noremap ; <right>
" Remap semi-colon
noremap h ;
" Use terminal keybindings in insert mode
inoremap <C-w> <C-o>dB
inoremap <M-BS> <C-o>db
inoremap <M-d> <C-o>de
inoremap <C-k> <C-o>d$
inoremap <M-.> <C-o>p
" Move line
nnoremap <silent> mj :move -2<cr>
nnoremap <silent> mk :move +1<cr>
vnoremap <silent> mj :move '<-2<cr>gv=gv
vnoremap <silent> mk :move '>+2<cr>gv=gv
" Leader key
let mapleader = "\<space>"
" Command
noremap <leader><return> :
" Focus window
nnoremap <leader>j <C-w><up>
nnoremap <leader>k <C-w><down>
nnoremap <leader>l <C-w><left>
nnoremap <leader>; <C-w><right>
" Move window
nnoremap <leader>J <C-w>K
nnoremap <leader>K <C-w>J
nnoremap <leader>L <C-w>H
nnoremap <leader>: <C-w>L
" Split window
nnoremap <leader>- <C-w>s
nnoremap <leader>\ <C-w>v
" Exit vim
nnoremap <silent> <leader>x :xit<cr>
nnoremap <silent> <leader>a :qall<cr>
" Buffer
nnoremap <silent> <leader>b :buffers<cr>:buffer<space>
nnoremap <silent> <leader>[ :bprevious<cr>
nnoremap <silent> <leader>] :bnext<cr>
nnoremap <silent> <leader>d :bdelete<cr>
nnoremap <silent> <leader>w :write<cr>
nnoremap <silent> <leader>q :quit<cr>
" Tab
nnoremap <silent> <leader>t :tabnew<cr>
nnoremap <silent> <leader><tab> :tabnext<cr>
" Line numbers
nnoremap <silent> <leader>n :set number! relativenumber!<cr>
" Cursor highlight
nnoremap <silent> <leader>c :set cursorcolumn!<cr>
nnoremap <silent> <leader>h :set cursorline!<cr>
" Toggle spellcheck
nnoremap <silent> <leader>s :set spell!<cr>
" Toggle whitespace
nnoremap <silent> <leader><space> :set list!<cr>
" Toggle tab/space formatting
nnoremap <leader>= :set noexpandtab! \| %retab!<cr>
" Remove search highlight on escape
nnoremap <silent> <esc> :nohlsearch<cr>
" Match trailing whitespace
autocmd BufWinEnter * match ExtraWhitespace /\s\+$/
autocmd InsertEnter * match ExtraWhitespace /\s\+\%#\@<!$/
autocmd InsertLeave * match ExtraWhitespace /\s\+$/
autocmd BufWinLeave * call clearmatches()
" Set Whitespace & special character colour
highlight NonText ctermfg=darkgrey guifg=#6e6a86
highlight SpecialKey ctermfg=darkgrey guifg=#6e6a86
highlight EndOfBuffer ctermfg=bg guifg=bg
highlight ExtraWhitespace ctermfg=bg ctermbg=red
" Format plaintext table
vnoremap <leader>ft :!column -t -s '\|' -o '\|'<cr>
|