Skip to content

Instantly share code, notes, and snippets.

@mabbouxj
Last active October 19, 2021 08:42
Show Gist options
  • Save mabbouxj/eb83155478bbaff9e41073edc42b76b2 to your computer and use it in GitHub Desktop.
Save mabbouxj/eb83155478bbaff9e41073edc42b76b2 to your computer and use it in GitHub Desktop.
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