summaryrefslogtreecommitdiff
path: root/vim-new/vimrc
blob: 5316f482479192cdd7a8723c416f20d92aa97a4d (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
120
121
122
123
124
" Miguel's Fresh Vimrc "
" Started from scratch on 29th Apr 2021

" {{{ vim-plug
call plug#begin('~/.vim/plugged')

Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'

Plug 'junegunn/fzf',                   { 'do': { -> fzf#install() }                }
Plug 'junegunn/fzf.vim'

Plug 'autozimu/LanguageClient-neovim', { 'branch': 'next', 'do': 'bash install.sh' }

Plug 'neovimhaskell/haskell-vim'
Plug 'alx741/vim-stylishask'

call plug#end()
" }}}

" {{{ misc
colorscheme desert
set nocompatible
set foldmethod=marker
set nowrap
set showcmd
set number
set hidden
set colorcolumn=73
set backspace=2
" }}}

syntax on
filetype plugin indent on

let g:airline_powerline_fonts = 1

nnoremap <F5> :call LanguageClient_contextMenu()<CR>
let g:LanguageClient_serverCommands = { 'haskell': ['haskell-language-server-wrapper', '--lsp'] }

let g:haskell_enable_quantification = 1   " to enable highlighting of `forall`
let g:haskell_enable_recursivedo = 1      " to enable highlighting of `mdo` and `rec`
let g:haskell_enable_arrowsyntax = 1      " to enable highlighting of `proc`
let g:haskell_enable_pattern_synonyms = 1 " to enable highlighting of `pattern`
let g:haskell_enable_typeroles = 1        " to enable highlighting of type roles
let g:haskell_enable_static_pointers = 1  " to enable highlighting of `static`
let g:haskell_backpack = 1                " to enable highlighting of backpack keywords

" {{{ tabs
set listchars=tab:>.
set tabstop=8
set expandtab
set softtabstop=4
set shiftwidth=4
set shiftround
" }}}

" {{{ folding
set foldcolumn=5
set foldlevelstart=0
" }}}

" {{{ search
set hlsearch
set incsearch
set smartcase
" }}}

" {{{ match brackets
set showmatch
set matchtime=5
" }}}
 
" {{{ KEY BINDINGS
" mapleader
" use <space> but remap to _ so it is visible for 'showcmd'
nmap <space> _
let mapleader="\_"
let maplocalleader="\_"

" get rid of bad habits. (might break other stuff eg. in cygwin)
" inoremap <esc> <nop>
" inoremap <Up> <nop>
" inoremap <Down> <nop>
" inoremap <Left> <nop>
" inoremap <Right> <nop>

" activate 'very magic' for searches automatically
nnoremap / /\v
nnoremap ? ?\v

" alt esc in insert mode
inoremap jk <esc>

" toggle tabs visibility
noremap <leader>t :set invlist<CR>

" easy editing and sourcing of vimrc
" nnoremap <leader>sv :source $MYVIMRC<cr>
nnoremap <leader>ev :e $MYVIMRC<cr>

" turn off search highlight
nnoremap <leader>h :nohlsearch<cr>

" layout
"nnoremap <leader>ln :NERDTreeToggle<cr>

" silver search
"noremap <leader>a :Ack!<Space>

" show list if multiple ctrl-] matches
nnoremap <C-]> g<C-]>

" ctrl-space auto complete in insert mode
inoremap <C-Space> <C-N>

" FZF settings
nmap <leader>f :Files<cr>|     " fuzzy find files in the working directory (where you launched Vim from)
nmap <leader>/ :BLines<cr>|    " fuzzy find lines in the current file
nmap <leader>b :Buffers<cr>|   " fuzzy find an open buffer
nmap <leader>r :Rg |           " fuzzy find text in the working directory
nmap <leader>c :Commands<cr>|  " fuzzy find Vim commands (like Ctrl-Shift-P in Sublime/Atom/VSC)
nmap <leader>t :Tags<cr>|      " fuzzy find tags
" }}}