From 0c6c28d0e578bdf7904222959262bed2d5f24738 Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Sun, 14 Oct 2018 11:24:37 -0400 Subject: [PATCH] Merge vim config into single .vimrc Previously I separated my .vimrc into multiple files in attempt to organize it. Now that I know more about vim, however, using only one config file leads to less moving parts. Additionally, I now use less vim settings altogether since I frequently have to work on foreign machines, which probably won't have my .vimrc anyway. --- .vim/config.vim | 46 ------------------- .vim/keybindings.vim | 27 ----------- .vim/plugins.vim | 37 --------------- .vimrc | 106 +++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 103 insertions(+), 113 deletions(-) delete mode 100644 .vim/config.vim delete mode 100644 .vim/keybindings.vim delete mode 100644 .vim/plugins.vim diff --git a/.vim/config.vim b/.vim/config.vim deleted file mode 100644 index af879f5..0000000 --- a/.vim/config.vim +++ /dev/null @@ -1,46 +0,0 @@ -" New Start: A modern Arch workflow built with an emphasis on functionality. -" Copyright (C) 2017-2018 Donovan Glover -" -filetype plugin indent on " Attempt to determine the file type of extensionless files -syntax enable " Turn syntax highlighting on - -set nocompatible " Use vim defaults (i.e. ignore vi compatibility) -set backspace=indent,eol,start " Make the backspace key function as you would expect -set encoding=utf-8 " Always show files as utf-8 -set fileencoding=utf-8 " Ensure that we always save files as utf-8 - -set autoindent " Automatically indent new lines -set ignorecase " By default use case-insensitive search (combine with smartcase) -set smartcase " Make search case-sensitive when using capital letters -set showcmd " Always show the current keybinding being executed -set spell " Enable spell check by default -set hidden " Switch between buffers without saving them - -set incsearch " Automatically move to text as you search for it -set wildmenu " Show a menu of the different options when you tab in command mode -set display+=lastline " Show as much of a long line as possible -set laststatus=2 " Enable the status line (set to 0 to remove) -set noshowmode " Disable the --MODE-- text (enable if not using the status line) - -set history=100 " Only keep the last 100 commands -set tabpagemax=50 " Set the maximum number of tabs to be opened in any window to 50 -set viminfo^=! " Use viminfo to store workspace and other data automatically -set sessionoptions-=options " When you explicitly save a workspace, save the entire environment - -set t_Co=256 " Tell vim that we want to use 256 colors -set scrolloff=1 " The minimal number of rows to show when scrolling up/down -set sidescrolloff=5 " The minimal number of columns to show when scrolling left/right - -set undofile " Keep track of undos even after you close a file -set undodir=~/.vim/undo " Save the undo history here (not that the directory must exist) -set undolevels=1000 " We can undo this many times -set undoreload=10000 " The maximum number of lines to keep in the undo file - -set tabstop=4 " Show a tab character as 4 spaces -set softtabstop=0 " Edit soft tabs as if they're regular spaces -set shiftwidth=4 " Make autoindent appear as 4 spaces - -set expandtab " When using , replace the tab character with 4 spaces -set smarttab " Always indent based on column number to align things easier - -set mouse=a " Enable mouse support in (a)ll modes diff --git a/.vim/keybindings.vim b/.vim/keybindings.vim deleted file mode 100644 index f1f479a..0000000 --- a/.vim/keybindings.vim +++ /dev/null @@ -1,27 +0,0 @@ -" New Start: A modern Arch workflow built with an emphasis on functionality. -" Copyright (C) 2017-2018 Donovan Glover - -" Change the global leader to the space bar -let mapleader = ' ' - -" ================== Top row -nnoremap e :set nu! -nnoremap t :OverCommandLine%s/ -" ================== Middle row -nnoremap f :Files -nnoremap g :set hlsearch! -nnoremap j :Buffers -nnoremap l :Rg -" ================== Bottom row -autocmd FileType javascript nnoremap b :call JsBeautify() -autocmd FileType json nnoremap b :call JsonBeautify() -autocmd FileType jsx nnoremap b :call JsxBeautify() -autocmd FileType html nnoremap b :call HtmlBeautify() -autocmd FileType css nnoremap b :call CSSBeautify() - -" Easily enter 'zen mode' with Goyo and Pencil (Note: Goyo resets the color scheme) -nnoremap 2 :PencilSoft:Goyo:hi vertsplit ctermfg=0 ctermbg=none - -" Save and load vim sessions -nnoremap 3 :mksession! ~/.vim_session -nnoremap 4 :source ~/.vim_session diff --git a/.vim/plugins.vim b/.vim/plugins.vim deleted file mode 100644 index 35ce5dd..0000000 --- a/.vim/plugins.vim +++ /dev/null @@ -1,37 +0,0 @@ -" New Start: A modern Arch workflow built with an emphasis on functionality. -" Copyright (C) 2017-2018 Donovan Glover - -call plug#begin('~/.vim/plugged') - Plug 'dylanaraps/wal.vim' " Color scheme - Plug 'airblade/vim-gitgutter' " Git diff - Plug 'itchyny/lightline.vim' " Status line - Plug 'w0rp/ale' " Syntax checker - Plug 'sgur/vim-editorconfig' " EditorConfig - Plug 'tpope/vim-fugitive' " Git wrapper - Plug 'junegunn/fzf.vim' " fzf wrapper - Plug 'jiangmiao/auto-pairs' " {Pair} completion - Plug 'tpope/vim-endwise' " 'End' completion - Plug 'reedes/vim-pencil' " Word wrap - Plug 'junegunn/goyo.vim' " Distraction-free writing - - Plug 'osyo-manga/vim-over', {'on': 'OverCommandLine'} - Plug 'maksimr/vim-jsbeautify', {'on': ['JsBeautify', 'JsonBeautify', - \ 'JsxBeautify', 'HtmlBeautify', 'CSSBeautify']} - - Plug 'pangloss/vim-javascript', {'for': 'javascript'} - Plug 'alvan/vim-closetag', {'for': 'html'} - Plug 'rhysd/vim-crystal', {'for': 'crystal'} - Plug 'rust-lang/rust.vim', {'for': 'rust'} - Plug 'baskerville/vim-sxhkdrc', {'for': 'sxhkdrc'} - Plug 'cespare/vim-toml', {'for': 'toml'} - Plug 'dag/vim-fish', {'for': 'fish'} - Plug 'slim-template/vim-slim', {'for': 'slim'} - Plug 'Glench/Vim-Jinja2-Syntax', {'for': 'jinja2'} - Plug 'plasticboy/vim-markdown', {'for': 'markdown'} - Plug 'posva/vim-vue', {'for': 'vue'} - Plug 'mxw/vim-jsx', {'for': 'javascript'} - Plug 'digitaltoad/vim-pug', {'for': 'pug'} - Plug 'leafgarland/typescript-vim', {'for': 'typescript'} - Plug 'dbeniamine/todo.txt-vim', {'for': 'todo'} - Plug 'lervag/vimtex', {'for': 'tex'} -call plug#end() diff --git a/.vimrc b/.vimrc index 6b8b79c..26ab99a 100644 --- a/.vimrc +++ b/.vimrc @@ -5,9 +5,109 @@ if &shell =~# 'fish$' set shell=sh endif -source ~/.vim/plugins.vim -source ~/.vim/config.vim -source ~/.vim/keybindings.vim +call plug#begin('~/.vim/plugged') + Plug 'dylanaraps/wal.vim' " Color scheme + Plug 'airblade/vim-gitgutter' " Git diff + Plug 'itchyny/lightline.vim' " Status line + Plug 'w0rp/ale' " Syntax checker + Plug 'sgur/vim-editorconfig' " EditorConfig + Plug 'tpope/vim-fugitive' " Git wrapper + Plug 'junegunn/fzf.vim' " fzf wrapper + Plug 'jiangmiao/auto-pairs' " {Pair} completion + Plug 'tpope/vim-endwise' " 'End' completion + Plug 'reedes/vim-pencil' " Word wrap + Plug 'junegunn/goyo.vim' " Distraction-free writing + + Plug 'osyo-manga/vim-over', {'on': 'OverCommandLine'} + Plug 'maksimr/vim-jsbeautify', {'on': ['JsBeautify', 'JsonBeautify', + \ 'JsxBeautify', 'HtmlBeautify', 'CSSBeautify']} + + Plug 'pangloss/vim-javascript', {'for': 'javascript'} + Plug 'alvan/vim-closetag', {'for': 'html'} + Plug 'rhysd/vim-crystal', {'for': 'crystal'} + Plug 'rust-lang/rust.vim', {'for': 'rust'} + Plug 'baskerville/vim-sxhkdrc', {'for': 'sxhkdrc'} + Plug 'cespare/vim-toml', {'for': 'toml'} + Plug 'dag/vim-fish', {'for': 'fish'} + Plug 'slim-template/vim-slim', {'for': 'slim'} + Plug 'Glench/Vim-Jinja2-Syntax', {'for': 'jinja2'} + Plug 'plasticboy/vim-markdown', {'for': 'markdown'} + Plug 'posva/vim-vue', {'for': 'vue'} + Plug 'mxw/vim-jsx', {'for': 'javascript'} + Plug 'digitaltoad/vim-pug', {'for': 'pug'} + Plug 'leafgarland/typescript-vim', {'for': 'typescript'} + Plug 'dbeniamine/todo.txt-vim', {'for': 'todo'} + Plug 'lervag/vimtex', {'for': 'tex'} +call plug#end() + +filetype plugin indent on " Attempt to determine the file type of extensionless files +syntax enable " Turn syntax highlighting on + +set nocompatible " Use vim defaults (i.e. ignore vi compatibility) +set backspace=indent,eol,start " Make the backspace key function as you would expect +set encoding=utf-8 " Always show files as utf-8 +set fileencoding=utf-8 " Ensure that we always save files as utf-8 + +set autoindent " Automatically indent new lines +set ignorecase " By default use case-insensitive search (combine with smartcase) +set smartcase " Make search case-sensitive when using capital letters +set showcmd " Always show the current keybinding being executed +set spell " Enable spell check by default +set hidden " Switch between buffers without saving them + +set incsearch " Automatically move to text as you search for it +set wildmenu " Show a menu of the different options when you tab in command mode +set display+=lastline " Show as much of a long line as possible +set laststatus=2 " Enable the status line (set to 0 to remove) +set noshowmode " Disable the --MODE-- text (enable if not using the status line) + +set history=100 " Only keep the last 100 commands +set tabpagemax=50 " Set the maximum number of tabs to be opened in any window to 50 +set viminfo^=! " Use viminfo to store workspace and other data automatically +set sessionoptions-=options " When you explicitly save a workspace, save the entire environment + +set t_Co=256 " Tell vim that we want to use 256 colors +set scrolloff=1 " The minimal number of rows to show when scrolling up/down +set sidescrolloff=5 " The minimal number of columns to show when scrolling left/right + +set undofile " Keep track of undos even after you close a file +set undodir=~/.vim/undo " Save the undo history here (not that the directory must exist) +set undolevels=1000 " We can undo this many times +set undoreload=10000 " The maximum number of lines to keep in the undo file + +set tabstop=4 " Show a tab character as 4 spaces +set softtabstop=0 " Edit soft tabs as if they're regular spaces +set shiftwidth=4 " Make autoindent appear as 4 spaces + +set expandtab " When using , replace the tab character with 4 spaces +set smarttab " Always indent based on column number to align things easier + +set mouse=a " Enable mouse support in (a)ll modes + +" Change the global leader to the space bar +let mapleader = ' ' + +" ================== Top row +nnoremap e :set nu! +nnoremap t :OverCommandLine%s/ +" ================== Middle row +nnoremap f :Files +nnoremap g :set hlsearch! +nnoremap j :Buffers +nnoremap l :Rg +" ================== Bottom row +autocmd FileType javascript nnoremap b :call JsBeautify() +autocmd FileType json nnoremap b :call JsonBeautify() +autocmd FileType jsx nnoremap b :call JsxBeautify() +autocmd FileType html nnoremap b :call HtmlBeautify() +autocmd FileType css nnoremap b :call CSSBeautify() + +" Easily enter 'zen mode' with Goyo and Pencil (Note: Goyo resets the color scheme) +nnoremap 2 :PencilSoft:Goyo:hi vertsplit ctermfg=0 ctermbg=none + +" Save and load vim sessions +nnoremap 3 :mksession! ~/.vim_session +nnoremap 4 :source ~/.vim_session colorscheme wal