call plug#begin('~/.vim/plugged') "{{ The Basics }} Plug 'joshdick/onedark.vim' " Colors Plug 'itchyny/lightline.vim' " Lightline statusbar "{{ File management }} Plug 'scrooloose/nerdtree' " Nerdtree Plug 'tiagofumo/vim-nerdtree-syntax-highlight' " Highlighting Nerdtree Plug 'ryanoasis/vim-devicons' " Icons for Nerdtree "{{ Syntax Highlighting and Colors }} Plug 'ap/vim-css-color' " Color previews for CSS "{{ Junegunn Choi Plugins }} Plug 'junegunn/limelight.vim' " Hyperfocus on a range Plug 'junegunn/fzf.vim' call plug#end() " for transparent background function! AdaptColorscheme() highlight clear CursorLine highlight Normal ctermbg=none highlight LineNr ctermbg=none highlight Folded ctermbg=none highlight NonText ctermbg=none highlight SpecialKey ctermbg=none highlight VertSplit ctermbg=none highlight SignColumn ctermbg=none endfunction autocmd ColorScheme * call AdaptColorscheme() set cursorline " colorscheme syntax on " brackets inoremap " "" inoremap ' '' inoremap ( () inoremap [ [] inoremap { {} inoremap { {}O inoremap {; {};O filetype plugin on let g:instant_markdown_browser = "firefox --new-window" " Make Vim more useful set nocompatible " Long lines as one line set nowrap " Ruler set ruler " Horizontal splits will automatically be below set splitbelow " Vertical splits will automatically be to the right set splitright " Indent set smartindent set autoindent " Use the OS clipboard by default (on versions compiled with `+clipboard`) set clipboard+=unnamedplus " Enhance command-line completion set wildmenu " Disables automatic commenting on newline: autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o " Allow cursor keys in insert mode " Allow backspace in insert mode set backspace=indent,eol,start " Optimize for fast terminal connections set ttyfast " Add the g flag to search/replace by default set gdefault " Use UTF-8 without BOM set encoding=utf-8 " Change mapleader let mapleader="," " Don’t add empty newlines at the end of files set binary set noeol " 256 colors set t_Co=256 " Respect modeline in files set modeline set modelines=4 " Enable per-directory .vimrc files and disable unsafe commands in them set exrc set secure " Enable line numbers set number " Make tabs as wide as two spaces set tabstop=4 set shiftwidth=4 set smarttab set expandtab " Highlight searches set hlsearch " Ignore case of searches set ignorecase " Highlight dynamically as pattern is typed set incsearch " Always show status line set laststatus=2 " Enable mouse in all modes set mouse=a " Disable error bells set noerrorbells " Don’t reset cursor to start of line when moving around. set nostartofline " Show the cursor position set ruler " Don’t show the intro message when starting Vim set shortmess=atI " Show the current mode set showmode " Show the filename in the window titlebar set title " Show the (partial) command as it’s being typed set showcmd " Use relative line numbers if exists("&relativenumber") set relativenumber au BufReadPost * set relativenumber endif " Start scrolling three lines before the horizontal window border set scrolloff=3 " Better tabbing vnoremap < >gv " Better window navigation nnoremap h nnoremap j nnoremap k nnoremap l map c :w! \| !make map r v l :terminal ./run.sh % a map t :!st& map o :FZF " Insert mode completion imap (fzf-complete-word) imap (fzf-complete-path) imap (fzf-complete-line) vnoremap "+y