.vimrc
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
" Vundle stuff starts here set nocompatible filetype off set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'VundleVim/Vundle.vim' Plugin 'scrooloose/nerdtree' Plugin 'tpope/vim-surround' Plugin 'junegunn/goyo.vim' Plugin 'tpope/vim-commentary' Plugin 'dracula/vim' Plugin 'drewtempelmeyer/palenight.vim' Plugin 'dracula/vim', {'name':'dracula'} Plugin 'simeji/winresizer' Plugin 'rakr/vim-one' Plugin 'tomasr/molokai' Plugin 'junegunn/fzf.vim' Plugin 'chriskempson/base16-vim' call vundle#end() " Vundle stuff ends here set tabstop=4 " number of visual spaces per tab set softtabstop=4 " number of spaces in the tab when editing set expandtab " tabs are shortcut for spaces set shiftwidth=4 syntax enable " enalbe syntax processing set smartindent " when opening a new line, keep the same indentation if no " file-specific indenting is enabled set autoindent " set viminfo='10,<100,:100,%,n~/.vim/.viminfo set undofile set background=dark colorscheme base16-classic-dark set termguicolors " load filetype-specific indent files filetype plugin indent on " compiling for different file types " autocmd FileType markdown nnoremap cm :w<Enter>:!pandoc -f gfm -V geometry=margin=0.75in --resource-path="expand('%:p:h')/img" -V links-as-notes -o %.pdf %<Enter><Enter> "autocmd FileType markdown nnoremap cm :w<Enter>:!pandoc -f markdown+raw_tex -V geometry=margin=0.75in -V papersize=A4 -o pdf/%.pdf %<Enter><Enter> " autocmd FileType markdown nnoremap cm :w<Enter>:!pandoc -H ~/.config/header -f markdown+raw_tex+raw_attribute -o pdf/%.pdf %<Enter><Enter> " autocmd FileType markdown nnoremap cm :w<Enter>:!pandoc -f markdown+raw_tex+raw_attribute -o pdf/%.pdf %<Enter><Enter> autocmd FileType tex nnoremap cm :w<Enter>:!xelatex % 1&>/dev/null<Enter><Enter> " autocmd FileType tex nnoremap cm :w<Enter>:!pdflatex -interaction nonstopmode % 1&>/dev/null<Enter><Enter> autocmd FileType html setlocal ts=2 sts=2 sw=2 " autocmd FileType c nnoremap cp :w<Enter>:!clear && gcc % && ./a.out<Enter> autocmd BufRead *.pdentry :Goyo " leader is comma let mapleader="," " QuickFix Navigation nnoremap cn :cn<CR> nnoremap cN :cN<CR> set backspace=indent,eol,start " visual autocomplete for command menu set wildmenu " redraw only when we need to set lazyredraw " highligt matching [{()}] set showmatch hi MatchParen cterm=none ctermbg=none ctermfg=white set incsearch "search as characters are entered "set hlsearch " highlight search matches " turn off search highlight nnoremap <leader><space> :nohlsearch<CR> nnoremap <leader>ihs i\texthindi{<Esc>:r !zenity --entry --width=800<Enter>kJxA}<CR><Esc> nnoremap <leader>ih :r !zenity --entry --width=800<Enter> set foldenable " enable folding set foldlevelstart=10 " open most folds by default set foldnestmax=10 " 10 nested folds max set foldmethod=indent " fold based on indent " <Space> is foldToggle (za) in normal mode nnoremap <silent> <Tab> @=(foldlevel('.')?'za':"\<Space>")<CR> " <C-c> in visual mode copies to clipboard vnoremap <C-c> "+y nnoremap <C-S-p> "+P map <C-n> :NERDTreeToggle<CR> set number " number line set showcmd " show command in bottom bar " MOVEMENT " " allow to move around visualy by default nnoremap j gj nnoremap k gk " highlight last inserted text nnoremap gV `[v`] " Window splits control nnoremap <C-j> <C-W><C-J> nnoremap <C-k> <C-W><C-K> nnoremap <C-h> <C-W><C-H> nnoremap <C-l> <C-W><C-L> nnoremap <unique> <C-_> :FZF<CR> nnoremap <unique> <C-B> :Buffers<CR> set autoread nnoremap <leader>r :e!<Enter> nnoremap <leader>m :nohlsearch<CR> " replace the char with '✓' nnoremap <leader>o r<C-k>OK " jk is escape inoremap jk <esc> let g:winresizer_start_key = '<leader>e' let g:winresizer_vert_resize = 4 let g:winresizer_horiz_resize = 2 " Use a blinking upright bar cursor in Insert mode, a blinking block in normal "if &term == 'xterm-256color' || &term == 'screen-256color' " let &t_SI = "\<Esc>[5 q" " let &t_EI = "\<Esc>[2 q" "endif " if exists('$TMUX') " let &t_EI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=0\x7\<Esc>\\" " let &t_SI = "\<Esc>Ptmux;\<Esc>\<Esc>]50;CursorShape=1\x7\<Esc>\\" " endif " nnoremap <leader>n :w<Enter>:!ns %<Enter>