Created
April 15, 2022 15:44
-
-
Save O1ahmad/9f8e3ac0dfd58e8726586211922284b1 to your computer and use it in GitHub Desktop.
custom vim config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" | |
" 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