Skip to content

Instantly share code, notes, and snippets.

@O1ahmad
Created April 15, 2022 15:44
Show Gist options
  • Save O1ahmad/9f8e3ac0dfd58e8726586211922284b1 to your computer and use it in GitHub Desktop.
Save O1ahmad/9f8e3ac0dfd58e8726586211922284b1 to your computer and use it in GitHub Desktop.
custom vim config
"
" This file is managed by Ansible. Any changes will be overwritten.
"
" see: vim online help documentation -- https://vimhelp.org/starting.txt.html#vimrc for more details
" Disable compatibility with vi {{{
set nocompatible
" }}}
" Load sane defaults {{{
source $VIMRUNTIME/defaults.vim
" }}}
" Help force plugins to load correctly when re-enabled below {{{
filetype off
" }}}
" enable syntax processing {{{
syntax enable
" }}}
" spaces and tabs {{{
set tabstop=4
set softtabstop=4
set expandtab
set shiftwidth=4
" }}}
" searching {{{
set incsearch
set hlsearch
set ignorecase
set smartcase
set showmatch
nnoremap <leader><space> :nohlsearch<CR>
" }}}
" folding {{{
set foldenable
set foldlevelstart=10
set foldnestmax=10
nnoremap <space> za
set foldmethod=marker
" }}}
" ui config {{{
set number
set ttyfast
set laststatus=2
set showcmd
set showmode
set cursorline
filetype indent on
set wildmenu
set ruler
set visualbell
set encoding=utf-8
set lazyredraw
" }}}
" movement {{{
nnoremap j gj
nnoremap k gk
nnoremap B ^
nnoremap E $
nnoremap gV `[v`]
" }}}
" leader shortcuts {{{
let mapleader=","
set cursorline
nnoremap <leader>u :GundoToggle<CR>
nnoremap <leader>ev :vsp $MYVIMRC<CR>
nnoremap <leader>eb :vsp ~/.bashrc<CR>
nnoremap <leader>sv :source $MYVIMRC<CR>
nnoremap <leader>s :mksession<CR>
nnoremap <leader>a :Ag
" }}}
" Plugins {{{
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
Plugin 'VundleVim/Vundle.vim'
Plugin 'scrooloose/nerdtree'
Plugin 'ErichDonGubler/vim-sublime-monokai'
Plugin 'joshdick/onedark.vim'
Plugin 'vim-syntastic/syntastic'
Plugin 'rking/ag.vim'
Plugin 'ctrlpvim/ctrlp.vim'
Plugin 'sjl/gundo.vim'
call vundle#end()
filetype plugin indent on
" }}}
" NERDTree settings {{{
autocmd vimenter * NERDTree
autocmd vimEnter * wincmd p
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
map <C-n> :NERDTreeToggle<CR>
" }}}
" syntastic settings {{{
let g:syntastic_python_python_exec = 'python3'
" }}}
" allow cursor change in tmux mode {{{
function! <SID>StripTrailingWhitespaces()
" save last search & cursor position
let _s=@/
let l = line(".")
let c = col(".")
%s/\s\+$//e
let @/=_s
call cursor(l, c)
endfunction
" }}}
" autogroups {{{
augroup configgroup
autocmd!
autocmd VimEnter * highlight clear SignColumn
autocmd BufWritePre *.php,*.py,*.js,*.txt,*.hs,*.java,*.md :call <SID>StripTrailingWhitespaces()
autocmd FileType ruby setlocal tabstop=2
autocmd FileType ruby setlocal shiftwidth=2
autocmd FileType ruby setlocal softtabstop=2
autocmd FileType ruby setlocal commentstring=#\ %s
autocmd FileType python setlocal commentstring=#\ %s
autocmd BufEnter *.cls setlocal filetype=java
autocmd BufEnter *.zsh-theme setlocal filetype=zsh
autocmd BufEnter Makefile setlocal noexpandtab
autocmd BufEnter *.sh setlocal tabstop=2
autocmd BufEnter *.sh setlocal shiftwidth=2
autocmd BufEnter *.sh setlocal softtabstop=2
augroup END
" }}}
" set color-scheme {{{
colorscheme onedark
set t_Co=256
" }}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment