Last active
September 15, 2024 15:57
-
-
Save sefidel/7afcfb5c29fc8322f5958de90267c40a to your computer and use it in GitHub Desktop.
My fallback vim configuration
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
| " 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