Last active
November 20, 2020 03:34
-
-
Save petulla/82f7a4373cb9d716c51d68745d86761c to your computer and use it in GitHub Desktop.
Minimal vimrc
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
" Vimscript file settings ---------------------- {{{ | |
augroup filetype_vim | |
autocmd! | |
autocmd FileType vim setlocal foldmethod=marker | |
augroup END | |
" }}} | |
" Plugins {{{ | |
" set the runtime path to include Vundle and initialize | |
set rtp+=~/.vim/bundle/Vundle.vim | |
call vundle#begin() | |
" alternatively, pass a path where Vundle should install plugins | |
"call vundle#begin('~/some/path/here') | |
" let Vundle manage Vundle, required | |
set rtp+=~/.vim/bundle/fzf | |
Plugin 'VundleVim/Vundle.vim' | |
Plugin 'davidhalter/jedi-vim' | |
Plugin 'haya14busa/incsearch.vim' | |
Plugin 'mechatroner/rainbow_csv' | |
Plugin 'rstacruz/sparkup', {'rtp': 'vim/'} | |
Plugin 'jnurmine/Zenburn' | |
Plugin 'junegunn/fzf', { 'do': { -> fzf#install() } } | |
Plugin 'junegunn/fzf.vim' | |
Plugin 'vim-scripts/indentpython.vim' | |
Plugin 'christoomey/vim-tmux-navigator' | |
Plugin 'Chiel92/vim-autoformat' | |
" Plugin 'SirVer/ultisnips' | |
" Plugin 'honza/vim-snippets' | |
call vundle#end() " required | |
filetype plugin indent on " required | |
" To ignore plugin indent changes, instead use: | |
"filetype plugin on | |
" | |
" Brief help | |
" :PluginList - lists configured plugins | |
" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate | |
" :PluginSearch foo - searches for foo; append `!` to refresh local cache | |
" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal | |
" | |
" see :h vundle for more details or wiki for FAQ | |
" Put your non-Plugin stuff after this line | |
" }}} | |
" Basic setup {{{ | |
set shortmess+=I | |
set number | |
set relativenumber | |
set laststatus=2 | |
set backspace=indent,eol,start | |
set hidden | |
set ignorecase | |
set smartcase | |
set incsearch | |
nmap Q <Nop> " 'Q' in normal mode enters Ex mode. You almost never want this. | |
set noerrorbells visualbell t_vb= | |
set mouse+=a | |
set tabstop=2 " Size of a hard tabstop (ts). | |
set shiftwidth=2 " Size of an indentation (sw). | |
set expandtab " Always uses spaces instead of tab characters (et). | |
set softtabstop=0 " Number of spaces a <Tab> counts for. When 0, featuer is off (sts). | |
set autoindent " Copy indent from current line when starting a new line. | |
set smarttab " Inserts blanks on a <Tab> key (as per sw, ts and sts). | |
set clipboard=unnamed | |
let g:formatters_python = ['autopep8'] | |
" }}} | |
" Theme {{{ | |
syntax enable set background=dark colorscheme solarized8 | |
" }}} | |
" fzf {{{ | |
nnoremap <C-p> :GFiles<CR> | |
map <C-f> :Files<CR> | |
map <leader>b :Buffers<CR> | |
nnoremap <leader>g :Rg<CR> | |
nnoremap <leader>m :Marks<CR> | |
let g:fzf_layout = {'up':'~90%', 'window': { 'width': 0.8, 'height': 0.8,'yoffset':0.5,'xoffset': 0.5, 'highlight': 'Todo', 'border': 'sharp' } } | |
let $FZF_DEFAULT_OPTS = '--layout=reverse --info=inline' | |
let $FZF_DEFAULT_COMMAND = 'rg --files --hidden' | |
let g:fzf_action = { | |
\ 'ctrl-t': 'tab split', | |
\ 'ctrl-x': 'split', | |
\ 'ctrl-v': 'vsplit' } | |
let g:fzf_colors = | |
\ { 'fg': ['fg', 'Normal'], | |
\ 'bg': ['bg', 'Normal'], | |
\ 'hl': ['fg', 'Comment'], | |
\ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'], | |
\ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], | |
\ 'hl+': ['fg', 'Statement'], | |
\ 'info': ['fg', 'PreProc'], | |
\ 'border': ['fg', 'Ignore'], | |
\ 'prompt': ['fg', 'Conditional'], | |
\ 'pointer': ['fg', 'Exception'], | |
\ 'marker': ['fg', 'Keyword'], | |
\ 'spinner': ['fg', 'Label'], | |
\ 'header': ['fg', 'Comment'] } | |
let g:fzf_tags_command='ctags -R' | |
"Get Files | |
command! -bang -nargs=? -complete=dir Files | |
\ call fzf#vim#files(<q-args>, fzf#vim#with_preview({'options': ['--layout=reverse', '--info=inline']}), <bang>0) | |
" Get text in files with Rg | |
command! -bang -nargs=* Rg | |
\ call fzf#vim#grep( | |
\ 'rg --column --line-number --no-heading --color=always --smart-case'.shellescape(<q-args>), 1, | |
\ fzf#vim#with_preview(), <bang>0) | |
function! RipgrepFzf(query, fullscreen) | |
let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case %s || true' | |
let initial_command = printf(command_fmt, shellescape(a:query)) | |
let reload_command = printf(command_fmt, '{q}') | |
let options = {'options': ['--phony', '--query', a:query, '--bind', 'change:reload:'.reload_command]} | |
call fzf#vim#grep(initial_command, 1, fzf#vim#with_preview(options), a:fullscreen) | |
endfunction | |
command! -nargs=* -bang RF call RipgrepFzf(<q-args>, <bang>0) | |
command! -bang -nargs=* GGrep | |
\ call fzf#vim#grep( | |
\ 'git grep --line-number '.shellescape(<q-args>), 0, | |
\ fzf#vim#with_preview({'dir': systemlist('git rev-parse --show-toplevel')[0]}), <bang>0) | |
" }}} | |
" clipboard {{{ | |
" Global clipboard | |
vmap '' :w !pbcopy<CR><CR> | |
" }}} | |
set encoding=utf-8 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment