Update .bashrc
[dotfiles/.git] / .vimrc
1 set nocompatible "its just because if i share it it might be useful
2 syntax on
3 set timeout timeoutlen=2000
4 set tabstop=4 softtabstop=4
5 set shiftwidth=4
6 set smarttab
7 set expandtab
8 set smartindent
9 set termguicolors
10 set number
11 set relativenumber
12 set ignorecase
13 set smartcase
14 set exrc
15 set nohlsearch
16 set incsearch
17 set hidden
18 set noerrorbells
19 set scrolloff=8
20 set cmdheight=2
21 set updatetime=300
22 set shortmess+=c
23 "FOR FINDING FILES:
24 "a better way to find everything that is in my actual subfolder or bellow
25 set path+=**
26 set wildmenu
27 "una nota importante es que podemos simplemente usar ":b nombre" para
28 "cambiar entre los buffers que tenemos abiertos, los que podemos ver
29 "con el comando ":ls" que nos deja ver todos los buffer
30
31 "REMAPS:
32 " Use ctrl-[hjkl] to select the active split!
33 nmap <silent> <c-k> :wincmd k<CR>
34 nmap <silent> <c-j> :wincmd j<CR>
35 nmap <silent> <c-h> :wincmd h<CR>
36 nmap <silent> <c-l> :wincmd l<CR>
37 inoremap jk <ESC>
38 nnoremap <C-s> :w<CR>
39 noremap <silent> <expr> j (v:count == 0 ? 'gj' : 'j')
40 noremap <silent> <expr> k (v:count == 0 ? 'gk' : 'k')
41 nnoremap <leader>v :Vex<CR>
42 nnoremap <leader>h :Sex<CR>
43 "searcher function
44 function! Grepper()
45     call inputsave()
46     let replacement = input('RegExp: ')
47     let workdir = input('Directory: ')
48     call inputrestore()
49     execute 'grep! -Irn '.replacement.' '.workdir
50 endfunction
51 nnoremap <silent> <leader>g  :call Grepper()<CR>:copen<CR>
52
53
54
55 " this is an auto changer for relative numbers
56 :augroup numbertoggle
57 :  autocmd!
58 :  autocmd BufEnter,FocusGained,InsertLeave * set relativenumber
59 :  autocmd BufLeave,FocusLost,InsertEnter   * set norelativenumber
60 :augroup END
61
62
63 "PARA CREAR TAGS EN UN PROYECTO:
64 command! MakeTags !ctags -R .
65 " ahora al hacer ":MakeTags" podremos hacer un tags file
66 " esto nos permite hacer lo siguiente:
67
68 " COMANDOS PARA TAGS:
69 " usar "^]" para saltar a la definicion
70 " usar "g^]" para tags ambiguos
71 " usar "^t" para devolverse en el stack
72 " tambien para autocompletar tenemos
73 " "^x^n" para algo en el archivo actual
74 " "^x^f" para filenames
75 " "^x^]" para tags
76 " "^n" para cosas que estan en el 'complete'
77
78
79 "FILE BROWSING:
80 let g:netrw_banner=0
81 "let g:netrw_browse_split=4
82 "let g:netrw_altv=1
83 "let g:netrw_liststyle=3
84 "let g:netrw_list_hide=netrw_gitignore#Hide()
85 "let g:netrw_list_dide=',\(^\|\s\s\)\zs\.\S\+'
86
87
88 "My_autocmds:
89 fun! TrimWhitespace()
90     let l:save = winsaveview()
91     keeppatterns %s/\s\+$//e
92     call winrestview(l:save)
93 endfun
94
95 augroup JOSUERODRIGUEZ
96     autocmd!
97     autocmd BufWritePre * :call TrimWhitespace()
98 augroup END