You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

188 lines
7.2 KiB

"BASICS--------------------------------------------------------------
set exrc ""You can get some cuntomizations if therre is a vimrc on the local eare that you are it will use it.
set guicursor= ""Bi cursor for oldstyle lovers.
set relativenumber ""Show the line beofre and ofetr starting from your line.
set noerrorbells ""No sound effects.
set tabstop=4 ""TabSize of 4.
set shiftwidth=4 ""Indentation fo 4.
set softtabstop=4 ""Enabeling it will remplace tabs by spaces in insert mode
set noexpandtab ""Enabeling it will remplace tabs by spaces
set smartindent ""will try it's best to indent for you.
set nowrap ""Will continue to go right when line is too long
set incsearch ""incremental searching as i am typing the words will be highligted.
set number ""Self explanatory
set scrolloff=8 ""Will start to scroll down wehn there is still 8 Lines before end of page.
"Backup and Undo
set noswapfile ""No swap file. they are anoying
set nobackup ""Nobackup because we will do a undo dir
set undodir=~/.vim/undodir
set undofile
packadd termdebug
let g:termdebug_wide=1
filetype plugin indent on
syntax enable
:autocmd InsertEnter,InsertLeave * set cul!
"--------------------------------------------------------------------
"PLUGINS-------------------------------------------------------------
"plugins(included with vim) for file specific mappings Located at ~/.vim/ftplugin/
"Example for c Would be: ~/.vim/ftplugin/c_mappings.vim
filetype plugin on
filetype plugin indent on
"Plug pkluginmanager start and end
call plug#begin('~/.vim/plugged')
Plug 'gruvbox-community/gruvbox'
Plug 'arcticicestudio/nord-vim'
Plug 'vim-utils/vim-man'
Plug 'mbbill/undotree'
Plug 'gyim/vim-boxdraw'
Plug 'vim-airline/vim-airline'
call plug#end()
"--------------------------------------------------------------------
"VISUALS-------------------------------------------------------------
set colorcolumn=100
highlight ColorColumn ctermbg=0 guibg=lightgrey
set signcolumn=yes
colorscheme gruvbox
set background=dark
highlight Normal guibg=blue
"--------------------------------------------------------------------
"REMAPS--------------------------------------------------------------
"(VIM) Remaps Space bar as the Leader command
let mapleader=" "
"(NAVIGATION)
"Switches to the Left window
map <silent> <leader>h :wincmd h<CR><CR>
"Switches to the Bottom window
map <silent> <leader>j :wincmd j<CR><CR>
"Switches to the Top window
map <silent> <leader>k :wincmd k<CR><CR>
"Switches to the Right window
map <silent> <leader>l :wincmd l<CR><CR>
"(FILES)
map <leader>pv :Ex <bar> :vertical resize 30<CR>
map <leader>pf :Sex! <bar> :vertical resize 30<CR>
"(PUGINS)
"maptree Toggle
map <leader>u :UndotreeToggle<CR>
"(POSITION)
"[P]ut one line [U]p everything from the cursor till the end of the line
map <leader>pu d$O<ESC>p
"[P]ut one line [D]own everything from the cursor till the end of the line
map <leader>pd d$o<ESC>p
"Put at then end of the [L]ine [U]pper from the cursor (everything from the cursor till the end of the line)
map <leader>lu DkA<ESC>p<ESC>jddk<ESC>I<ESC>
"Put at then end of the [L]ine [D]own(er) from the cursor (everything from the cursor till the end of the line)
map <leader>ld DjA<ESC>p<ESC>kddj<ESC>I<ESC>
"Classic Vim's Windo [U]p and [D]onw controls but keeps the cursor in the middle
map <C-d> <C-d>zz
map <C-u> <C-u>zz
"Classic Vim's [n]ext and [N]previous controls but keeps the cursor in the middle
map n nzzzv
map N Nzzzv
"Mooves what's under the cursor
map J :m '>+1<CR>gv=gv
map K :m '<-2<CR>gv=gv
"(COPY PASTE)
"Copy to your clipboard of your system and not in the internal buffer of vim
map <leader>y [["+y]])
map <leader>Y [["+Y]])
"(WORD) Manipulation
"[W]ord [R]reformat for word under the cursor
map <leader>wr [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]]
"[C]hange [W]ord in registered buffer To be more similar to whant vim implment
map <leader>cw ebvey/<C-R>0<CR>Ncw
"[C]hange [N]ext word in registered buffer To be more similar to what vim implements
map <leader>cn ncw
"[W]ord [N]ext occurence for word under the cursor
map <leader>wn ebvey/<C-R>0<CR>
"[W]ord [P]revious occurence for word under the cursor
map <leader>wp ebvey/<C-R>0<CR>NN
"[W]ord [S]earch for word under the cursor
map <leader>ws ebvey/<C-R>0
"[W]ord [F]ind [F]irst for word under the cursor
map <silent> <leader>wff ebveyG/<C-R>0<CR>
"[W]ord [F]ind [L]ast for word under the cursor
map <silent> <leader>wfl ebveyG/<C-R>0<CR>N
"--------------------------------------------------------------------
"(ADDERS)
"[A]dds a [)] at the end of the line
map <leader>a) A)<ESC>I<ESC>
"[A]dds a [}] at the end of the line
map <leader>a} A}<ESC>I<ESC>
"[A]dds a ["]"] at the end of the line
map <leader>a] A]<ESC>I<ESC>
"DEBUGER--------------------------------------------------------------
map <leader>db :Termdebug <bar> :vertical resize 30<CR>
noremap <silent> <leader>ts :Step<cr>
noremap <silent> <leader>to :Over<cr>
noremap <silent> <leader>tn :Next<cr>
noremap <silent> <leader>tc :Cont<cr>
"QUICKFIX Navigation for going to the next errors and so on
map <leader>ne <cmd>cnext<CR>zz
map <leader>me <cmd>cprev<CR>zz
map <leader>nl <cmd>lnext<CR>zz
map <leader>ml <cmd>lprev<CR>zz
set makeprg=bundle\ exec\ rspec\ -f\ QuickfixFormatter
"--------------------------------------------------------------------
"WILDMENU FOR FUZZY FILE SEARCH--------------------------------------
set path+=**
set wildmenu "Display all matching files when we tab complete
" NOW WE CAN:
" Type :find
" - Hit tab to :find by partial match
" - Use * to make it fuzzy
" - Opened files will be buffered try it out
" - :b lets you autocomplete any open buffer
"--------------------------------------------------------------------
"TAG JUMPING---------------------------------------------------------
" Create the `tags` file (need to install ctags first)
command! MakeTags !ctags -R .
" NOW WE CAN:
" - Use ^] to jump to tag under cursor
" - Use g^] for ambiguous tags
" - Use ^t to jump back up the tag stack
" THINGS TO CONSIDER:
" - This doesn't help if you want a visual list of tags
" AUTOCOMPLETE:
" The good stuff is documented in |ins-completion|
" HIGHLIGHTS:
" - ^x^n for JUST this file
" - ^x^f for filenames (works with our path trick!)
" - ^x^] for tags only
" - ^n for anything specified by the 'complete' option
" NOW WE CAN:
" - Use ^n and ^p to go back and forth in the suggestion list
"--------------------------------------------------------------------
""(TERMINAL COMMANDS)
"" Makes current file executable
map <silent> <leader>mx, <cmd>!chmod +x %<CR>
"SNIPPETS------------------------------------------------------------
" Command Read template move cursor
nnoremap <leader>shs :-1read $HOME/.vim/snippets/html_skeleton.html<CR>5jwf>a
nnoremap <leader>shb :-1read $HOME/.vim/snippets/html_vertical_bracets.html<CR>:s/VARTOCHANGE//g<left><left>
nnoremap <leader>sht :-1read $HOME/.vim/snippets/html_horizontal_bracets.html<CR>:.,+2s/VARTOCHANGE//g<left><left>
nnoremap <leader>scf :-1read $HOME/.vim/snippets/c_for.c<CR>yi)/<C-R>0<CR>N:s/VARTOCHANGE//g<left><left>
nnoremap <leader>scs :-1read $HOME/.vim/snippets/c_switch.c<CR>yi)/<C-R>0<CR>Ncw
nnoremap <leader>scw :-1read $HOME/.vim/snippets/c_while.c<CR>yi)/<C-R>0<CR>Ncw
"--------------------------------------------------------------------