summaryrefslogtreecommitdiff
path: root/.vimrc
blob: d4409e14b8aadfe9493e01874e1333dbd4db9b08 (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
runtime ftplugin/man.vim
set number
set relativenumber
set title
set bg=dark
set go=a
set mouse=a
set nohlsearch
set clipboard+=unnamedplus
set noshowmode
set noruler
set laststatus=0
set noshowcmd
set nocompatible
set autoindent
set cindent
set smartindent
set nowrap
set ignorecase
set smartcase
set laststatus=2
set incsearch
set wildignore=*.o,*.obj,*.bak,*.exe

" Use pathogen (plugin manager)

filetype off
execute pathogen#infect()
execute pathogen#helptags()
syntax on
filetype plugin on
filetype plugin indent on

" Automatically updates server after server files have been modified
autocmd BufWritePost ~/website/*.html !bash ~/.local/bin/update_website
autocmd BufWritePost ~/website/*.css  !bash ~/.local/bin/update_website

" Automatically use black on a Python file
autocmd BufWritePost *.py !black --line-length=79  %

" Pymode config
let g:pymode = 1
let g:pymode_warnings = 0
let g:pymode_trim_whitespaces = 1
let g:pymode_options = 1
let g:pymode_options_max_line_length = 79
let g:pymode_options_colorcolumn = 1
let g:pymode_indent = 1
let g:pymode_indent_hanging_width = &shiftwidth
let g:pymode_indent_hanging_width = 4
let g:pymode_doc = 1

" Automatically source .vimrc after saving
autocmd BufWritePost ~/.vimrc source $MYVIMRC

" Automatically source .inputrc after saving
autocmd BufWritePost ~/.inputrc !bind -f ~/.inputrc

" Automatically deletes all trailing whitespace and newlines at end of file on save. & reset cursor position
autocmd BufWritePre * let currPos = getpos(".")
autocmd BufWritePre * %s/\s\+$//e
autocmd BufWritePre * %s/\n\+\%$//e
autocmd BufWritePre * cal cursor(currPos[1], currPos[2])

" Mappings
noremap <BS> dBx
nnoremap s o<Esc>
nnoremap S o<Esc>k
nnoremap Y y$
nnoremap - ddp
nnoremap _ ddkP
nnoremap <C-J> "+yy
nnoremap <C-K> <ESC>"+p
nnoremap <space> i<space><esc>
nnoremap <silent> <F7> :tabnew ~/.vimrc<CR>
nnoremap <silent> <F8> :TlistToggle<CR>
nnoremap <silent> <F9> :NERDTree<CR>
vnoremap sb "zdi<b><C-R>z</b><Esc> : to do końca nie działa
vnoremap sp "zdi<p><C-R>z</p><Esc>
inoremap <C-d> <Esc>ddi
inoremap <C-y> <Esc>yyi
inoremap <C-p> <Esc>pi
inoremap <Space><Space> <Esc>/<++><CR>"_c4l

" show existing tab with 4 spaces width
set tabstop=4
" when indenting with '>', use 4 spaces width
set shiftwidth=4
" On pressing tab, insert 4 spaces
set expandtab

" Haskell
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
let g:haskell_indent_if = 3
let g:haskell_indent_case = 2
let g:haskell_indent_let = 4
let g:haskell_indent_where = 6
let g:haskell_indent_before_where = 2
let g:haskell_indent_after_bare_where = 2
let g:haskell_indent_do = 2
let g:haskell_indent_in = 1
let g:cabal_indent_section = 2
let g:haskell_indent_case_alternative = 1
let g:haskell_indent_guard = 2
let g:hindent_on_save = 1