Skip to content

Instantly share code, notes, and snippets.

@sefidel
Last active September 15, 2024 15:57
Show Gist options
  • Select an option

  • Save sefidel/7afcfb5c29fc8322f5958de90267c40a to your computer and use it in GitHub Desktop.

Select an option

Save sefidel/7afcfb5c29fc8322f5958de90267c40a to your computer and use it in GitHub Desktop.
My fallback vim configuration
" sefidel's fallback vim configuration
"
" Just in case when all you have is Vim
"
" Last Modified: 2024-09-15 (v3)
set nocompatible " no Vi compatibility
" Colours
set t_Co=256
syntax enable
filetype indent on
" set termguicolors
colorscheme sorbet
" Interface
set cul
set cmdheight=1
set noru
set nonu
set nornu
set shortmess+=sI
set backspace=2 " allow 'natural' backspacing
set scrolloff=3
set splitbelow
set splitright
set splitkeep=screen
set lazyredraw
" Style
set expandtab
set tabstop=4
set shiftwidth=4
set autoindent
set smartindent
set list
set listchars=tab:>-,extends:>,precedes:<,trail:-,nbsp:+
" Misc
set ignorecase
set smartcase
" set mouse=a " uncomment to enable mouse
set timeoutlen=400
set updatetime=250
set undofile
set whichwrap+=<,>,[,],h,l
if has('unnamedplus')
set clipboard^=unnamedplus
nmap <silent> <leader>ya :%y+<cr>
else
set clipboard^=unnamed
endif
" Statusline
set modeline
set laststatus=2 " always enable statusline
hi StatusLine cterm=NONE gui=NONE guifg=#e8e8d3 guibg=#333333 ctermfg=230 ctermbg=236
hi StatusLinePad guifg=#8fbfdc guibg=#333333 ctermfg=152 ctermbg=236
hi StatusLineAccentBold cterm=bold gui=bold guifg=#ffb964 guibg=#333333 ctermfg=222 ctermbg=236
set statusline=%#StatusLinePad#
set statusline+=▊\
set statusline+=%#StatusLine#
set statusline+=%#StatusLineAccentBold#
set statusline+=%f%m%r\
set statusline+=%#StatusLine#
set statusline+=%l:%c\ \|
set statusline+=%=
set statusline+=%#StatusLineAccentBold#
set statusline+=%y\
" Cursors
let &t_SI = "\e[6 q" " line cursor on insert
let &t_EI = "\e[2 q"
" Leaders
nnoremap <Space> <Nop>
let mapleader=" " " set <leader> to <Space>
let maplocalleader=","
nmap <leader>; :
" Buffers
nmap <silent> <leader>q :enew<cr>
nmap <silent> <leader>w :bd<cr>
nmap <silent> <leader>e :bprev<cr>
nmap <silent> <leader>r :bnext<cr>
" Tabs
nmap <silent> <leader>u :tabprev<cr>
nmap <silent> <leader>i :tabnext<cr>
nmap <silent> <leader>o :tabc<cr>
nmap <silent> <leader>p :tabnew<cr>
" Word wrap support
nmap <expr> <silent> k v:count == 0 ? 'gk' : 'k'
nmap <expr> <silent> j v:count == 0 ? 'gj' : 'j'
" Move lines
nmap <A-e> :m .+1<cr>==
nmap <A-r> :m .-2<cr>==
imap <A-e> <esc>:m .+1<cr>==gi
imap <A-r> <esc>:m .-2<cr>==gi
vmap <A-e> :m >+1<cr>gv=gv
vmap <A-r> :m <-2<cr>gv=gv
" Helix-like movements
map gh 0
map gl $
map gs _
map ge G
map g. g;
" Misc
nmap <silent> <leader>s :set nu! | :set rnu!<cr>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment