summaryrefslogtreecommitdiff
path: root/pkgs/custom-neovim/asset/rc.vim
blob: 822ac8736bcd767078f0da0614543a5588cba2f9 (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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
syntax enable
filetype plugin indent on

colorscheme akr

set encoding=utf-8
set showcmd
set nocompatible
set nocursorline
set number
set lazyredraw
set ttyfast
set mouse=a
set t_Co=256
set shell=/bin/sh
set sessionoptions-=options

set directory=~/.vim/swap//,.

set undofile
set undodir=~/.vim/undo

set wrap
set tabstop=4 shiftwidth=4
set backspace=indent,eol,start
set linebreak

set hlsearch
set incsearch
set ignorecase
set smartcase

set wildchar=<Tab> wildmenu wildmode=full

let mapleader=","

map <leader>s  :let @/=""<CR>
map <leader>c  zz
map <leader>d  <c-]>
map <leader>h  q:

nmap <backspace> :e#<CR>
nmap f           za
nmap F           zA

" disable to override default on neovim
set noautoread

autocmd InsertEnter *   :setlocal nohlsearch
autocmd InsertLeave *   :setlocal hlsearch

autocmd FileType scheme  setlocal shiftwidth=2 tabstop=2 expandtab
autocmd FileType nix     setlocal shiftwidth=2 tabstop=2 expandtab
autocmd FileType lisp    setlocal shiftwidth=2 tabstop=2 expandtab
autocmd FileType racket  setlocal shiftwidth=2 tabstop=2 expandtab
autocmd FileType haskell setlocal shiftwidth=2 tabstop=4 softtabstop=2 shiftround expandtab
autocmd FileType pandoc  setlocal nonumber autoread
autocmd FileType pandoc  let      g:airline#extensions#whitespace#checks=['indent', 'trailing', 'long']

autocmd BufNewFile,BufRead *.tikz setlocal syntax=tex

nnoremap <C-Tab>   :bnext<CR>
nnoremap <C-S-Tab> :bprev<CR>

" select previous line on file reload, useful when cycling file extensions
autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | execute "normal! g`\" zz" | endif
nnoremap <Tab> :CounterpointNext<CR>
nnoremap <S-Tab> :CounterpointPrevious<CR>

nnoremap <C-left>  gT
nnoremap <C-right> gt
nnoremap <space> @q
nnoremap J }
nnoremap K {

nmap <Left>  <<
nmap <Right> >>
vmap <Left>  <gv
vmap <Right> >gv

nmap <Up>   [e
nmap <Down> ]e
vmap <Up>   [egv
vmap <Down> ]egv

nnoremap <A-left>  <C-W>h
nnoremap <A-right> <C-W>l
nnoremap <A-up>    <C-W>k
nnoremap <A-down>  <C-W>j

set laststatus=2
let g:airline_theme                                   = 'akr'
let g:airline#extensions#tabline#enabled              = 1
let g:airline#extensions#tabline#show_buffers         = 1
let g:airline#extensions#tabline#show_tab_type        = 1
let g:airline#extensions#tabline#fnamemod             = ':t'
let g:airline#extensions#tabline#formatter            = 'unique_tail_improved'
let g:airline#extensions#tabline#buffer_idx_mode      = 0
let g:airline#extensions#tabline#show_close_button    = 0
let g:airline#extensions#tabline#show_splits          = 0
let g:airline#extensions#tabline#show_tab_nr          = 0
let g:airline#extensions#whitespace#mixed_indent_algo = 2

let g:gitgutter_enabled         = 0
let g:gitgutter_highlight_lines = 1

let g:goyo_width                = 90
let g:goyo_margin_top           = 1
let g:goyo_margin_bottom        = 0

nnoremap <F5> :MundoToggle<CR>
nnoremap <F6> :GitGutterToggle<CR>
nnoremap <F7> :SignatureToggleSigns<CR>
nnoremap <F8> :Goyo<CR>

nnoremap <c-p> :GFiles<CR>
nnoremap <c-b> :Buffers<CR>
nnoremap <c-t> :Tags<CR>
nnoremap <a-t> :BTags<CR>

let g:undotree_SetFocusWhenToggle = 1

let g:localvimrc_sandbox    = 0
let g:localvimrc_persistent = 2

let g:wordmotion_prefix = '<Leader>'
nmap <S-w> <Leader>w

" spinning up a language client only makes
" sense if such a client is available
if executable('cquery')
	let g:LanguageClient_serverCommands = { 'cpp': [ 'cquery' ] }
	let g:LanguageClient_hoverPreview = "Never"

	set completefunc=LanguageClient#complete
	set completeopt-=preview

	inoremap <C-n> <C-x><C-o>
	" allow completion selection via CR without inserting a new line
	imap <expr><CR> pumvisible() ? "\<C-y>" : "\<CR>"

	noremap <leader>lc   :call LanguageClient_contextMenu()<CR>
	noremap <leader>lr   :call LanguageClient_rename()<CR>
	nnoremap <silent> gd :call LanguageClient#textDocument_definition()<CR>
	nnoremap <silent> gt :call LanguageClient#textDocument_typeDefinition()<CR>
	nnoremap <silent> gi :call LanguageClient#textDocument_implementation()<CR>

	nmap <c-t> :Denite workspaceSymbol<CR>
	nmap <a-t> :Denite documentSymbol<CR>
endif