From 8c4a6f932b129df4f9a63b7b2e2bcaea6f215866 Mon Sep 17 00:00:00 2001 From: Ibrahim Mkusa Date: Sun, 28 Jul 2024 23:05:45 -0400 Subject: Took snapshot of my main dotfiles --- vim/.vimrc | 241 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 vim/.vimrc (limited to 'vim/.vimrc') diff --git a/vim/.vimrc b/vim/.vimrc new file mode 100644 index 0000000..670b1e8 --- /dev/null +++ b/vim/.vimrc @@ -0,0 +1,241 @@ +" Vi improved, gotta be first +set nocompatible +" enable filetype extension +filetype on +filetype plugin on +filetype indent on " auto file type based indentation +syntax enable +" Settings +set noerrorbells " No beeps +set number " Show line numbers +" indent allow backspacing over autoident +" eol allow backspacing over line breaks (join lines) +" start allow backspacing over the start of insert; CTRL-W and CTRL-U stop once +" at the start of insert +set backspace=indent,eol,start " Makes backspace key more powerful. +set showcmd " Show me what I'm typing +set showmode " Show current mode. +set noswapfile " Don't use swapfile +set nobackup " Don't create annoying backup files +set nowritebackup " Don't waste disk io writing backup files +set splitright " Split vertical windows right to the current windows +set splitbelow " Split horizontal windows below to the current windows +set encoding=utf-8 " Set default encoding to UTF-8 +if has('unix') + set t_Co=256 " use 256 colors in vim +endif +set autowrite " Automatically save before :next, :make etc. +set autoread " Automatically reread changed files without asking me anything +set laststatus=2 +set hidden +set ruler " Show the cursor position all the time +au FocusLost * :wa " Set vim to save the file on focus out. +set fileformats=unix,dos,mac " Prefer Unix over Windows over OS 9 formats +set showmatch " Show matching brackets by flickering +set noshowmode " We show the mode with airline or lightline +set incsearch " Shows the match while typing +set hlsearch " Highlight found searches +set ignorecase " Search case insensitive... +set smartcase " ... but not when search pattern contains upper case characters +set clipboard=unnamedplus " use 'global register for copy' + + "speed up vim +" set ttyfast " indicates a fast terminal connection. More chars sent to screen + " for redrawing +" set ttyscroll=3 " Maximum no. of lines to scroll the screen. If more screen is + " is redrawn. In a terminal where scrolling is slow but + " redraw is fast a small number like 3 speeds up displaying +set lazyredraw " does not redraw the screen on nontyped commands +set updatetime=250 " git gutter faster updates + +set cursorline + + +" speed up syntax highlighting on slow computer +" set nocursorcolumn " Don't highlight the screen column of the cursor +" set nocursorline " Don't highlight the screen line of the cursor + +" syntax sync minlines=256 +" set synmaxcol=300 +" set re=1 + +" open help vertically +" command! -nargs=* -complete=help Help vertical belowright help +" autocmd FileType help wincmd L + +" automatic automcomplete for html files +" autocmd FileType html set omnifunc=htmlcomplete#CompleteTags + +" Make Vim to handle long lines nicely. +set wrap " wrap wrong lines that extend beyond visible screen +set textwidth=79 " was 79 +set formatoptions=qn1 " :h fo-table for details add r for auto insert comment leader +set colorcolumn=80 " was 80 +"set relativenumber +"set norelativenumber + +" mail line wrapping +au BufRead /tmp/mutt-* set tw=72 + +set autoindent " copy indent from current when starting a new line. Typing + " in insert mode or 'o' 'O' in normal triggers it + +" set complete-=i +set smarttab " insert blanks according to shiftwidth, tabstop, softtab, BS will + " delete shiftwidth + +" default tab settings based on google style guide +"set tabstop=8 " 8 spaces for a tab +set shiftwidth=8 " 8 spaces for identation +set expandtab " insert space characters whenever tab is pressed +set softtabstop=8 " number of spaces that a counts for while performing + " editing operations like inserting a or using + +" Shortcut to rapidly toggle `set list` +" nmap m :set list! +" set listchars=tab:▸\ ,eol:¬,trail:· " show tabs, eols and trailing spaces + + +" Unrecogised extensions fix +au BufRead,BufNewFile *.rockspec set filetype=lua +au BufRead,BufNewFile *.md set filetype=markdown +au Bufread,BufNewFile *.org.txt set filetype=org + +" Ask to clean all trailing white-spaces upon saving +" autocmd BufWritePre * :%s/\s\+$//ec + +" Use specific spacing for different formats +" expandtab, et: -> spaces +" tabstop, ts: length of a +" shiftwidth, sw: spaces for autoindent +" softtabstop, sts: how many spaces a inserts or removes +au FileType verilog,matlab setl et ts=4 sw=4 sts=4 +au FileType lua setl et ts=3 sw=3 sts=2 +au FileType c,cuda,tex,bib setl et ts=4 sw=2 sts=2 +au FileType make set noexpandtab shiftwidth=8 softtabstop=0 + +" >>> ended here refactoring +set nrformats-=octal +set shiftround + +" Time out on key codes but not mappings. +" Basically this makes terminal Vim work sanely. +set notimeout +set ttimeout +set ttimeoutlen=10 + +" Better Completion +set complete=.,w,b,u,t,i +set completeopt=longest,menuone + +let mapleader=" " " set map leader key to comma + +" configure wildmenu tab completion +set wildmode=list:longest,full +set wildignorecase + +" turn off search highlight +nnoremap :nohlsearch + +" folding support +set foldenable " enable folding +set foldlevelstart=10 " open most folds by default +set foldnestmax=10 " 10 nested fold max +" space open/closes folds +nnoremap za +set foldmethod=indent " fold based on indent level + +" move vertically by visual line not ignoring wrapped lines +nnoremap j gj +nnoremap k gk + +" save session +nnoremap s :mksession + +" open ag.vim +nnoremap a :Ack + + + +" number of commands that are remembered +if &history < 1000 + set history=50 +endif + +" set maximum number of tabs +if &tabpagemax < 50 + set tabpagemax=50 +endif + +" create viminfo on exit to resume where you left off +if !empty(&viminfo) + set viminfo^=! +endif + +" number of lines visible above the cursor +if !&scrolloff + set scrolloff=1 +endif + +" minimum number of screen columns to keep to the right and left of the cursor +if !&sidescrolloff + set sidescrolloff=5 +endif + +" last line that doesn't fit on window will be displayed as much as possible +set display+=lastline + +" gvim specific settings +set guioptions-=m "menu bar +set guioptions-=T "toolbar +set guioptions-=r "scrollbar + +" Center the screen +nnoremap zz + +" C-d to delete in insert mode +inoremap + +" persistent undo survives vim exits +if has("persistent_undo") + set undodir=~/.vim/undodir/ + silent call system('mkdir -p ' . &undodir) + set undofile +endif + +" use mouse if available +if has('mouse') + set mouse=a +endif + +" When editing a file, always jump to the last known cursor position. +" Don't do it when the position is invalid or when inside an event handler +" (happens when dropping a file on gvim). +" autocmd BufReadPost * +" \ if line("'\"") >= 1 && line("'\"") <= line("$") | +" \ exe "normal! g`\"" | +" \ endif +augroup resCur + autocmd! + autocmd BufReadPost * call setpos(".", getpos("'\"")) +augroup END + +autocmd FileType make set noexpandtab shiftwidth=8 softtabstop=0 + +" Allow saving of files as sudo when i forgot to start vim using sudo +cmap w!! w !sudo tee > /dev/null % + +" keeps the visual selection active after indenting +vmap > >gv +vmap <