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
| colorscheme default
set background=light
set autoread " autoread file when changed outside vim
filetype plugin on
filetype indent on
set autoindent
syntax on
" set cursorline " highlight line with the cursor
" 1 tab == 4 spaces
set shiftwidth=4 " affects >> << == and automatic indentation
set tabstop=4 " how tab will be displayed
set softtabstop=4 " number of spaces in tab when editing
set expandtab " tabs are spaces
autocmd Filetype go setlocal noexpandtab
autocmd Filetype ruby,eruby,yaml,css,scss,js,cpp setlocal softtabstop=2 shiftwidth=2 tabstop=2
autocmd Filetype eruby setlocal omnifunc=htmlcomplete#CompleteTags
au BufRead,BufNewFile *.coffee set filetype=coffee
au BufRead,BufNewFile *.cc set filetype=cpp
set ruler " display line and column number
set backspace=2 "backspace acts like it should
set mouse=a
set number " show line numbers
set wildmenu " visual autocomplete for command menu
set laststatus=2 " always display status line
set incsearch " search as characters are entered
set hlsearch " highlight matches in search
set ic " search case insensitive
set t_Co=256
set scrolloff=5 " scroll offset, number of lines above and below the cursor
set showmode
set showmatch " show matching bracket
set path+=** " find method will lookup whole tree
set noeb vb t_vb= " disable beeping
let g:netrw_list_hide = '\.o$,\.obj$,'
let g:netrw_banner = 0
nnoremap <F2> :set invpaste paste?<CR>
set pastetoggle=<F2>
" jk goes to next visible line, not actual textfile line
nnoremap j gj
nnoremap k gk
" select recently pasted text
nnoremap gV `[v`]
set listchars=tab:»\ ,extends:›,precedes:‹,nbsp:·,trail:·,eol:¬,
nnoremap <F3> :set list!<CR> " display whitespaces
" jump to next error from :make
nnoremap <C-n> :cn<CR>
nnoremap <C-p> :cp<CR>
nnoremap <C-d> :e `dirname %`<CR>
" in visual mode
" / will search only in selected text
" * will search for selected text in whole file
vnoremap / <Esc>/\%><C-R>=line("'<")-1<CR>l\%<<C-R>=line("'>")+1<CR>l
vnoremap ? <Esc>?\%><C-R>=line("'<")-1<CR>l\%<<C-R>=line("'>")+1<CR>l
vnoremap * y:let @/ = @"<CR>
imap <C-Space> <C-X><C-O>
set directory=$HOME/.vim/swapfiles// " swapfiles
" move between splits
nnoremap <C-J> <C-W><C-J>
nnoremap <C-K> <C-W><C-K>
nnoremap <C-L> <C-W><C-L>
nnoremap <C-H> <C-W><C-H>
" open splits on right/below
set splitright
set splitbelow
nnoremap <C-E> :Buffers<CR>
nnoremap <C-F> :Files<CR>
nnoremap <C-G> :BCommits<CR>
nnoremap <F6> :!./%<CR>
autocmd Filetype go nnoremap <F5> :w<CR>:w !go run %<CR>
autocmd Filetype haskell nnoremap <F5> :w<CR>:w !runghc %<CR>
autocmd Filetype python nnoremap <F5> :w<CR>:w !python3 %<CR>
autocmd Filetype c nnoremap <F5> :w<CR>:w !gcc -Wall -Wextra % && ./a.out<CR>
autocmd Filetype ruby nnoremap <F5> :w<CR>:w !ruby %<CR>
autocmd Filetype tex nnoremap <F5> :w<CR>:!pdflatex main.tex; pkill -HUP mupdf<CR>
function! ToggleFocusMode()
if (&foldcolumn != 12)
set laststatus=0
set numberwidth=10
set foldcolumn=12
set noruler
hi FoldColumn ctermbg=none
hi LineNr ctermfg=0 ctermbg=none
hi NonText ctermfg=0
else
set laststatus=2
set numberwidth=4
set foldcolumn=0
set ruler
execute 'colorscheme ' . g:colors_name
endif
endfunc
nnoremap <F1> :call ToggleFocusMode()<cr>
|