Created
May 16, 2026 16:12
-
-
Save Tracnac/8265306a07b0119bb8eab78d62b41353 to your computer and use it in GitHub Desktop.
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
| " Minimal Vim | |
| " Bootstrap (run once in a shell): | |
| if !filereadable(expand('~/.vim/autoload/plug.vim')) | |
| silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ | |
| https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim | |
| endif | |
| " Create directories for persistent files (undo/backup/swap) | |
| if has('win32') | |
| let s:vim_dir = expand('$APPDATA') . '\\Vim' | |
| call mkdir(s:vim_dir . '\\undo', 'p') | |
| call mkdir(s:vim_dir . '\\backup', 'p') | |
| call mkdir(s:vim_dir . '\\swap', 'p') | |
| else | |
| let s:vim_dir = expand('$HOME') . '/.vim' | |
| call mkdir(s:vim_dir . '/undo', 'p') | |
| call mkdir(s:vim_dir . '/backup', 'p') | |
| call mkdir(s:vim_dir . '/swap', 'p') | |
| endif | |
| " Performance | |
| set updatetime=300 | |
| set timeoutlen=500 | |
| set ttimeout | |
| set ttimeoutlen=100 | |
| set complete-=i | |
| " Persistent states | |
| if has('win32') | |
| let &undodir = s:vim_dir . '\\undo' | |
| let &backupdir = s:vim_dir . '\\backup' | |
| let &directory = s:vim_dir . '\\swap' | |
| else | |
| let &undodir = s:vim_dir . '/undo' | |
| let &backupdir = s:vim_dir . '/backup' | |
| let &directory = s:vim_dir . '/swap' | |
| endif | |
| " Leader key | |
| let mapleader = " " | |
| " --- Plugin customization --- | |
| let g:fzf_layout = { 'down': '40%' } | |
| let g:airline_theme = 'catppuccin_mocha' | |
| " Plug | |
| if filereadable(expand('~/.vim/autoload/plug.vim')) | |
| call plug#begin('~/.vim/plugged') | |
| Plug 'tpope/vim-sensible' | |
| Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } | |
| Plug 'junegunn/fzf.vim' | |
| Plug 'vim-airline/vim-airline' | |
| Plug 'vim-airline/vim-airline-themes' | |
| Plug 'catppuccin/vim', { 'as': 'catppuccin' } | |
| call plug#end() | |
| endif | |
| " Basic behavior | |
| filetype plugin indent on | |
| syntax on | |
| set termguicolors | |
| set background=dark | |
| colorscheme catppuccin_mocha | |
| set encoding=utf-8 | |
| set lazyredraw | |
| set nrformats-=octal | |
| " Editing experience | |
| set hidden | |
| set backspace=indent,eol,start | |
| set nowrap | |
| " Indentation (sane defaults) | |
| set expandtab | |
| set shiftwidth=2 | |
| set softtabstop=2 | |
| set tabstop=2 | |
| set smarttab | |
| set autoindent | |
| set smartindent | |
| set indentexpr= | |
| autocmd FileType c,cpp,java set cindent | |
| " Searching | |
| set incsearch | |
| set hlsearch | |
| set smartcase | |
| " Display | |
| set number | |
| if exists('+relativenumber') | |
| set relativenumber | |
| endif | |
| set cursorline | |
| set showcmd | |
| set showmatch | |
| set laststatus=2 | |
| set ruler | |
| set showtabline=0 | |
| " set formatoptions+=j | |
| set formatoptions-=cro | |
| " hi StatusLineMode guifg=#282828 guibg=#fabd2f gui=bold ctermfg=Black ctermbg=Yellow | |
| " set statusline=%#StatusLineMode#%{StatusMode()}%*\ %F\ %y\ %m%r%h%w\ %=\ [%l:%c]\ [%p%%]\ %{StatusTabs()}\ %{StatusBuffers()}\ %{exists('*FugitiveHead')?FugitiveHead():''}\ %{StatusALE()} | |
| set sessionoptions-=options | |
| set viewoptions-=options | |
| set sidescroll=1 | |
| set sidescrolloff=2 | |
| " Disable mouse by default (change to 'a' to enable) | |
| set mouse= | |
| " Clipboard: leave empty (do not override system clipboard) | |
| set clipboard= | |
| " Wildmenu and completion conveniences | |
| set wildmenu | |
| set wildmode=longest,full | |
| set wildignore+=*/tmp/*,*.so,*.swp,*.zip | |
| set path+=** | |
| " Prevent visual/terminal bells | |
| set noerrorbells | |
| set novisualbell | |
| set t_vb= | |
| " Basic file handling | |
| set autoread | |
| set nowritebackup | |
| set undofile | |
| set backup | |
| set writebackup | |
| set swapfile | |
| set backupcopy=yes | |
| "augroup MySettings | |
| " autocmd! | |
| " autocmd VimEnter * source ~/.vim/vim-personal.vim | |
| "augroup END | |
| " Keymaps for FZF | |
| nnoremap <leader>f :Files<CR> | |
| nnoremap <leader>b :Buffers<CR> | |
| nnoremap <leader>g :GFiles?<CR> | |
| nnoremap <leader>r :Rg<CR> | |
| nnoremap <leader>h :History<CR> | |
| nnoremap <leader>c :Commands<CR> | |
| " System clipboard ONLY via leader keys | |
| nnoremap <leader>y "+y | |
| nnoremap <leader>Y "+Y | |
| vnoremap <leader>y "+y | |
| nnoremap <leader>p "+p | |
| vnoremap <leader>p "+p | |
| nnoremap <leader>P "+P | |
| " Redo as U | |
| nnoremap U <C-r> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment