My .vimrc file

 
Written By Sanjir Habib On May-18th, 2021
:set ff=unix
:set nocp "compatible with vi?
:set bs=indent,eol,start "what backspace deletes
:syntax on
:set ruler
:set wrapscan
:set incsearch
:set bg=dark
:set ts=4
:set sw=4
:set autoindent
:set showmode
:set wildmenu
:set hidden "allow to switch away from unsaved buffers
:set nowrap
:set uc=0
:set statusline=%<%f\ %h%m%r%=%-14.(%l,%c%V%)\ %P
:set laststatus=2
"place curson at beginign of tab
:set list lcs=tab:\ \
"don't save old vimrc info with session
:set ssop-=options
:set ssop-=folds
:set noerrorbells
":set novisualbell
:set vb
:set t_vb=
:set tm=500
:set nobackup
:set nowb
:set noswapfile
:set errorformat=%m\ in\ %f\ on\ line\ %l
:set autowrite
":autocmd VimLeave * if saveonexit==1 | mks! | endif
":autocmd VimEnter * nested let saveonexit=0 | if filereadable('Session.vim') && argc()==0 | so Session.vim | let saveonexit=1 | endif
:nnoremap ' `
:nnoremap [ :cnext<cr>
:nnoremap ] :cprevious<cr>
:set history=1000
:set ignorecase
:set smartcase
:set gdefault "you don't need to type /g at end of replace anymore
set scrolloff=4 "Start scrolling when we're this many lines away from margins
set sidescrolloff=15
set sidescroll=1
"key mapping
:let mapleader = ","
:nnoremap j gj
:nnoremap <leader>t gv`>xk:r /tmp/vim.txt<cr>
:nnoremap <leader>b i#!/bin/bash<cr>if [[ "$1" == "-h" ]]; then<cr><tab>echo ""<cr>echo "Usage : <esc>:put =expand('%:t')<cr>$a"<cr><tab>exit -1<cr><backspace>fi<cr><esc>kkkkVjJ
:nnoremap k gk
:nnoremap R :%s/\<<C-r><C-w>\>/
:vnoremap R :s/\<<C-r><C-w>\>/
:nnoremap <C-s> :w<cr>
":nnoremap <C-a> ggVG
:set wildcharm=<Tab>
:nnoremap <Leader>c <C-w>c
":nnoremap <Leader>d :Unite directory_mru<cr>
:nnoremap <Leader>d diwmd%x`dx
:nnoremap <Leader># i#!/usr/bin/env php<cr><?<cr><esc>
:nnoremap <leader>f / <C-r><C-/>(.*){*[ \t]*=*<cr>
:nnoremap <leader>g /on <C-r><C-w>(<cr>
:nnoremap <Leader>l :let @f=expand("%:p")<cr>:let @l=line(".")<cr>:e <C-r>f<BS><BS><BS>c<cr>:<C-r>l<cr>
:nnoremap <leader>z :mks! sess.vim<cr>
:nnoremap <leader>e :!gedit <C-r>%<cr>
":nnoremap <Leader>m :Unite bookmark<cr>
":nnoremap <Leader>m q:k<cr>
:nnoremap <Leader>. :Unite jump<cr>
:nnoremap <Leader>o :Unite file_mru<cr>
:nnoremap <Leader>r :source ~/.vimrc<cr>
:vnoremap <Leader>y :w !xsel -b<cr><cr>
:nnoremap <Leader>p :set paste<CR>:r !xsel -b<CR>:set nopaste<CR>
:nnoremap <Leader>v :e ~/.vimrc<cr>
:nnoremap <Leader>w <C-w>v<C-w>l
:nnoremap <Leader>x :x<CR>
:nnoremap <leader><leader> :w<cr>
":nnoremap <Leader>: q:k<cr>
:nnoremap <leader><space> :noh<cr>
:nnoremap <leader>= =i{
:vnoremap <leader>- :s/^/-- /<cr>
:vnoremap <leader>/ :s/^/\/\//<cr>
:vnoremap <leader>\ :s/^\/\///<cr>
"S shift, C control, A alt, D command key
:color desert
:set clipboard=unnamed
":nnoremap \| <C-w><C-x>
:nnoremap \ :Unite buffer<cr>
:nnoremap <C-e> 3<C-e>
:nnoremap <C-y> 3<C-y>
:nnoremap ` %
:vnoremap ` %
:nnoremap <tab> *
:nnoremap <S-tab> #
:nnoremap <Space> :
:vnoremap <Space> :
:nnoremap <S-Space> 3<C-y>
:nnoremap <C-Left> b
:nnoremap <C-Right> w
:nnoremap <A-Left> 4b
:nnoremap <A-Right> 4w
:nnoremap <S-Left> 16b
:nnoremap <S-Right> 16w
:nnoremap <D-Left> ^
:nnoremap <D-Right> $
:nnoremap <A-h> 4b
:nnoremap <A-l> 4w
:nnoremap <S-h> 16b
:nnoremap <S-l> 16w
:nnoremap <D-h> ^
:nnoremap <D-l> $
:nnoremap <C-Up> 10k
:nnoremap <C-Down> 10j
:nnoremap <A-Up> 100k
:nnoremap <A-Down> 100j
:nnoremap <D-Up> 1000k
:nnoremap <D-Down> 1000j
:nnoremap <S-Up> 10000k
:nnoremap <S-Down> 10000j
:nnoremap <A-k> 100k
:nnoremap <A-j> 100j
:nnoremap <D-k> 1000k
:nnoremap <D-j> 1000j
:nnoremap <C-\> <C-A>
:nnoremap <C-_> <C-X>
:nnoremap <C-h> <C-w>h
:nnoremap <C-k> <C-w>k
:nnoremap <C-n> V:s/;\ /;\r/<cr>va{:s/{\ /{\r/<cr>
:nnoremap _ @q
:nnoremap + <C-a>
:nnoremap - <C-x>

:nnoremap <expr> gp '`[' . strpart(getregtype(), 0, 1) . '`]'
:set cursorline
:hi CursorLine guibg=#333333
:hi MatchParen cterm=bold ctermbg=none ctermfg=red
:hi normal guibg=black
":inoremap jj <ESC>
:nnoremap : ,
:vnoremap : ,
":nnoremap z :cn<cr>
":set showmatch
":set hlsearch
:set history=1000
filetype plugin indent on
let &stl="%f %y %([%R%M]%)%=#%n %l/%L,%c%V "
:set titlestring=%t%(\ [%R%M]%)
:set scrolloff=9999
:set keywordprg=pman
:xnoremap p pgvy
:autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
:let g:php_sql_query=1
:set lazyredraw
:set pastetoggle=<C-p>
:au BufRead,BufNewFile *.pde set filetype=arduino
:au BufRead,BufNewFile *.ino set filetype=arduino
:set modeline
:set modelines=5
:set errorformat=%f:%l:%m
:nnoremap <leader>k :bw<cr>
:nnoremap <C-j> :cn<CR>
:nnoremap <C-k> :cp<CR>
:nnoremap <C-b> :set errorformat=%f:%l:%m<cr>:set makeprg=fox\ make<cr>:make<CR><cr><cr>

:nnoremap <leader>q VG:normal @q
":nnoremap <leader>m ?){<cr>mul%x`ulx%r<space>`ux
:nnoremap <leader>m :make<cr>
:nnoremap <leader>n /(<cr>mu%s<space>=><esc>`ur<space>
":nnoremap <leader>b /(<cr>mu%s<space>=><esc>lx`ur<space>$xxx0j
:nnoremap <leader>s mm:%!sudo tee %<cr>L<cr><cr>'m
:nnoremap <leader>1 VjJs<space>=><space><esc>0
:nnoremap <leader>a :%normal @q<cr>
:nnoremap <leader>9 f(mu%x`ur<space>0
:nnoremap <leader>u :!piup <C-r>%
:nnoremap <leader>h :!ghc <C-r>% && ./<C-r>%<BS><BS><BS><cr>
:nnoremap gp `[v`]

:au BufRead,BufNewFile *.fox set filetype=fox
:au BufRead,BufNewFile *.map set filetype=map
:hi Search term=underline ctermfg=red ctermbg=none
:set list
:set listchars=tab:▸\ \ ,trail:\
:hi Specialkey ctermfg=darkgray

May be someday I shall have enough time explain what each line does.