Last active
October 19, 2021 08:42
-
-
Save mabbouxj/eb83155478bbaff9e41073edc42b76b2 to your computer and use it in GitHub Desktop.
This file contains 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
syntax on " enable syntax processing | |
set tabstop=2 " number of visual spaces per TAB | |
set softtabstop=0 " number of spaces in tab when editing | |
set expandtab " tabs are spaces | |
set shiftwidth=2 | |
set smarttab | |
set wildmenu " visual autocomplete for command menu | |
set showmatch " highlight matching [{()}] | |
set ttimeout | |
set ttimeoutlen=100 | |
set timeoutlen=3000 | |
" If vim-plug not installed: install it | |
if empty(glob('~/.vim/autoload/plug.vim')) | |
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim | |
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC | |
endif | |
" Plugins | |
call plug#begin('~/.vim/plugged') | |
Plug 'dkarter/bullets.vim' | |
Plug 'airblade/vim-gitgutter' | |
Plug 'jiangmiao/auto-pairs' | |
Plug 'itchyny/lightline.vim' | |
Plug 'drewtempelmeyer/palenight.vim' | |
Plug 'preservim/nerdtree' | |
Plug 'ervandew/supertab' | |
call plug#end() | |
" Colorscheme | |
set background=dark | |
colorscheme palenight | |
let g:airline_theme = "palenight" | |
highlight Normal ctermbg=None | |
" Open file at position we left it | |
au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif | |
" SuperTab | |
let g:SuperTabDefaultCompletionType = "context" | |
" Lightline | |
let g:lightline = { 'colorscheme': 'palenight' } | |
set laststatus=2 | |
set noshowmode | |
" Bullets | |
let g:bullets_enabled_file_types = ['markdown', 'text', 'gitcommit', 'scratch', 'yaml'] | |
let g:bullets_enable_in_empty_buffers = 1 | |
let g:bullets_delete_last_bullet_if_empty = 1 | |
" Auto-pairs | |
let g:AutoPairs = {'(':')', '[':']', '{':'}',"'":"'",'"':'"', "`":"`", "<":">"} | |
let g:AutoPairsMapBS = 1 | |
let g:AutoPairsMapCR = 0 | |
let g:AutoPairsFlyMode = 1 | |
let g:AutoPairsShortcutBackInsert = '<M-b>' | |
let g:AutoPairsMultilineClose = 0 | |
" Fix meta-keys which generate <Esc>a ... <Esc>z | |
" See https://vim.fandom.com/wiki/Fix_meta-keys_that_break_out_of_Insert_mode | |
" In order to make <Alt> key working for mapping | |
let c='a' | |
while c <= 'z' | |
exec "set <M-".toupper(c).">=\e".c | |
exec "imap \e".c." <M-".toupper(c).">" | |
let c = nr2char(1+char2nr(c)) | |
endw | |
"""""""""""" | |
" NERDTree " | |
"""""""""""" | |
let g:NERDTreeQuitOnOpen = 3 | |
let g:NERDTreeNaturalSort = 1 | |
let g:NERDTreeCustomOpenArgs = {'file':{'reuse':'all','where':'h'}, 'dir':{}} | |
" Open at start up if no file specified | |
autocmd StdinReadPre * let s:std_in=1 | |
autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif | |
" Auto close if NERDTree is the last open window | |
autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif | |
let NERDTreeShowHidden=1 " Show hidden files by default | |
let NERDTreeQuitOnOpen=1 " Auto close when opening a file | |
let NERDTreeMinimalUI=1 " Remove 'Press ? for help' | |
" Alt-s : toggle | |
function ToggleNerdTreeCurrentBuffer() | |
if &filetype == 'nerdtree' | |
:NERDTreeToggle | |
else | |
:NERDTreeFind | |
endif | |
endfunction | |
nnoremap <M-S> :call ToggleNerdTreeCurrentBuffer()<CR> | |
" Arrow left: go to parent directory | |
autocmd FileType nerdtree nmap <buffer> <Left> u | |
" Arrow right: go into directory | |
autocmd FileType nerdtree nmap <buffer> <Right> cdCD | |
""""""""""""""""" | |
" Global keymap " | |
""""""""""""""""" | |
" Alt-Arrows : Navigate between windows | |
map <M-Up> <C-w>k | |
map <M-Down> <C-w>j | |
map <M-Left> <C-w>h | |
map <M-Right> <C-w>l | |
" Ctrl-Shift-Arrow : Next/Previous Tab | |
map <C-S-Left> :tabp<CR> | |
map <C-S-Right> :tabn<CR> | |
" l : Toggle line numbers | |
map l :set invnumber<CR> | |
""""""""""""""""" | |
" Command alias " | |
""""""""""""""""" | |
" Save read only file | |
command Fuck w !sudo tee % |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment