-
Notifications
You must be signed in to change notification settings - Fork 0
/
.ideavimrc
181 lines (165 loc) · 5.95 KB
/
.ideavimrc
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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
" _
" _ __(_)_ _ ________
" | |/ / / ' \/ __/ __/
" |___/_/_/_/_/_/ \__/
" IntelliJ action list: https://gist.github.com/zchee/9c78f91cc5ad771c1f5d
" Options {{{
filetype plugin indent on
set timeout timeoutlen=500 ttimeoutlen=100
" Vim autocomplete options
set completeopt=menuone
set hidden " hide buffers instead of closing them
" set showtabline=2
set laststatus=2 " Always display the statusline in all windows
set backspace=2 " Backspace deletes like most programs in insert mode
set encoding=utf8 " Sets charachter encoding
set mouse= " Disabling mouse support
set history=1000 " Remember ALL THE commands!
set undolevels=1000 " Do ALL THE undo's!
set undoreload=10000 " Maximum number lines to save for undo on a buffer reload
set virtualedit=onemore " Allow for cursor beyond last character
set tabstop=4 " Number of spaces for a tab
set softtabstop=4 " Number of spaces for a tab while editing
set shiftwidth=4 " Shift width value
set t_BE= " fixes bracketed paste mode
set shiftround " Round the shift indent
set expandtab " Conver tabs to spaces
set lazyredraw " Terminal performance optimisation
set magic " Better searching
set noswapfile " Don't pollute my hard drive, even temporary
set wrap " Wrap long lines
set smartindent " Auto indent when starting a new line
set relativenumber " Use relative line numbers
set showmatch " Show matching brackets (Damn this is so cool!)
set ignorecase " Case insensitive search
set smartcase " Case sensitive when uc present
set cursorline " Highlight cursorline!
set ruler " Always show current position
set list " Show specials charcters like tabs (^I), end of line ($), ...
set listchars=tab:\│\ ,trail:-,extends:>,precedes:<,nbsp:+
set splitbelow " Split current window below
set splitright " Split current window right
set showcmd " Display incomplete commands
set autowrite " Automatically :write before running commands
set colorcolumn=101 " Make it obvious where 80 characters is
set number " Show line numbers
set numberwidth=5 " Line number reserved space
set autochdir " Change the current dir if you open a file
set modelines=1 " Disable modeline support
set guioptions=TlrLR " Options when running vim in GUI mode
set cpoptions+=$ " Show a $ sign in the change buffer
set updatetime=250 " Update time for diff markers
set hlsearch
set incsearch
set wildignore+=*/.git/*,*/tmp/*,*.swp
"set t_Co=256 " Number of colors
set spellfile=$HOME/.vim-spell-en.utf-8.add "Word list file
match ErrorMsg '\s\+$'
" if &term =~ '256color'
" " Disable Background Color Erase (BCE) so that color schemes
" " work properly when Vim is used inside tmux and GNU screen.
" " See also http://snk.tuxfamily.org/log/vim-256color-bce.html
" " set t_ut=
" endif
" }}}
" Backup {{{
set backup
set backupdir=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp
set backupskip=/tmp/*,/private/tmp/*
set directory=~/.vim-tmp,~/.tmp,~/tmp,/var/tmp,/tmp
set writebackup
" }}}
" Plugins {{{
call plug#begin()
Plug 'tpope/vim-commentary'
Plug 'tpope/vim-surround'
call plug#end()
" }}}
" Leader shortcuts {{{
" Check a key binding, ex: verbose nmap <Leader>r
let mapleader = ","
let maplocalleader = ","
nnoremap <Leader><Leader> V
nnoremap <Leader>a :action PreviousTab<CR>
nnoremap <Leader>s :action NextTab<CR>
nnoremap <Leader>r :action RerunTests<CR>
nnoremap <Leader>f :action ReformatCode<CR>
nnoremap <Leader>b :Buffers<CR>
vnoremap <Leader>c :w !pbcopy<CR><CR>| " Copy to clipboard
nnoremap <Leader>d :bd<CR>| " delete the current buffer
nnoremap <Leader>v :set paste<CR>:r !pbpaste<CR>:set nopaste<CR>
inoremap <Leader>v <Esc>:set paste<CR>:r !pbpaste<CR>:set nopaste<CR>
nnoremap <Leader>w :w<CR>| " Save buffer
" }}}
" Shortcuts {{{
"Disable the mouse wheel
inoremap <ScrollWheelUp> <Nop>
inoremap <ScrollWheelDown> <Nop>
nmap <S-Enter> Ojj
nmap <CR> ojj
" NERDTree
map <F2> :NERDTreeToggle<CR>
nnoremap <buffer> <F9> :exec '!python' shellescape(@%, 1)<cr>
" Tagbar config
"let g:tagbar_ctags_bin = '/usr/bin/ctags'"
" Ex-mode is shitty
nnoremap Q <nop>
" Move single row on wrapped lines
nmap j gj
nmap k gk
" Folding
nnoremap <Space> za
vnoremap <Space> za
" Use vim way instead
cnoremap <C-p> <Up>
cnoremap <C-n> <Down>
" Disabling arrow keys in normal and insert mode
nnoremap <up> <nop>
nnoremap <down> <nop>
nnoremap <left> <nop>
nnoremap <right> <nop>
inoremap <up> <nop>
inoremap <down> <nop>
inoremap <left> <nop>
inoremap <right> <nop>
" Disable arrow keys in command mode
cnoremap <Up> <nop>
cnoremap <Down> <nop>
" Disabling escape key. It's too far away!
inoremap <esc> <nop>
" `jj` is much better :)
inoremap jj <esc>
" Quicker window movement
nnoremap <C-j> <C-w>j
nnoremap <C-k> <C-w>k
nnoremap <C-h> <C-w>h
nnoremap <C-l> <C-w>l
nnoremap <buffer> rp :exec '!python' shellescape(@%, 1)<cr>
" }}}
" ripgrep {{{
if executable('rg')
" Use ripgrep: https://github.com/BurntSushi/ripgrep
set grepprg=rg\ --color=never
let g:ctrlp_user_command = 'rg %s --files --color=never --glob ""'
let g:ctrlp_use_caching = 0
endif
" }}}
" Colors {{{
if has("termguicolors") " set true colors
set t_8f=[38;2;%lu;%lu;%lum " Needed in tmux
set t_8b=[48;2;%lu;%lu;%lum " Ditto
set termguicolors
endif
syntax on
let base16colorspace=256
let g:rehash256 = 1
let g:solarized_termcolors=256
colorscheme molokai
highlight ErrorMsg guibg=White guifg=Red
highlight LineNr guifg=#b3b3b3
" Assure the tabline color is black
highlight TabLineFill term=bold cterm=bold ctermbg=0
" autocmd BufEnter * colorscheme base16-tomorrow-night
" autocmd BufEnter *.py colorscheme badwolf
"}}}
" vim:foldmethod=marker:foldlevel=0