Taylor Bockman
2 years ago
commit
6cace31a65
13 changed files with 3154 additions and 0 deletions
@ -0,0 +1,26 @@ |
|||||||
|
# Autoload, except for `plug.vim`. |
||||||
|
autoload/* |
||||||
|
!autoload/plug.vim |
||||||
|
|
||||||
|
# Swap |
||||||
|
[._]*.s[a-v][a-z] |
||||||
|
!*.svg # comment out if you don't need vector files |
||||||
|
[._]*.sw[a-p] |
||||||
|
[._]s[a-rt-v][a-z] |
||||||
|
[._]ss[a-gi-z] |
||||||
|
[._]sw[a-p] |
||||||
|
|
||||||
|
# Session |
||||||
|
Session.vim |
||||||
|
Sessionx.vim |
||||||
|
|
||||||
|
# Temporary |
||||||
|
.netrwhist |
||||||
|
*~ |
||||||
|
# Auto-generated tag files |
||||||
|
tags |
||||||
|
# Persistent undo |
||||||
|
[._]*.un~ |
||||||
|
|
||||||
|
# plugin downloads |
||||||
|
plugged/* |
@ -0,0 +1,70 @@ |
|||||||
|
# Vim Configuration |
||||||
|
|
||||||
|
This is V2 of my vim configuration, designed for Neovim, broken out into |
||||||
|
it's own repository for easier cloning without pulling down the entire |
||||||
|
`essentials` repository. |
||||||
|
|
||||||
|
I use the `nord` theme for both my terminal and Vim. You will need to adjust your theme and |
||||||
|
airline according to your tastes in `plugins.vim` and `ui.vim`. |
||||||
|
|
||||||
|
The V2 repo aims to take full advantage of asynchronous code and a modularized configuration to make |
||||||
|
adaptation easier and the UI snappier. Additionally support for `tmux` has improved with this iteration |
||||||
|
through the use of `vimux`. |
||||||
|
|
||||||
|
## Requirements |
||||||
|
|
||||||
|
1. [Neovim](https://github.com/neovim/neovim) |
||||||
|
2. [vim-plug](https://github.com/junegunn/vim-plug) - You may need to install this even with the `autoload` directory. |
||||||
|
3. [Monospaced Nerd Font](https://www.nerdfonts.com/font-downloads) - The `/font` directory has one I use. |
||||||
|
4. `node` - Certain plugins require node to work. Install it with your package manager. |
||||||
|
5. `tmux` |
||||||
|
|
||||||
|
## Structure |
||||||
|
|
||||||
|
* `conf`: Contains all configuration related files. |
||||||
|
* `plugins.vim`: Plugin definitions. |
||||||
|
* `keybinds.vim`: General keybinds such as leader key, etc. |
||||||
|
* `config.vim`: Dumping ground for general configurations. |
||||||
|
* `ui.vim`: General UI configurations. |
||||||
|
* `search.vim`: Search configurations (for example ctrl-p). |
||||||
|
* `git.vim`: Fugitive configurations. |
||||||
|
* `langs`: Language specific configurations and keybinds. |
||||||
|
|
||||||
|
## Installation |
||||||
|
|
||||||
|
```bash |
||||||
|
cd .config |
||||||
|
git clone git@git.xchg.sh:angrygoats/vim-config nvim |
||||||
|
``` |
||||||
|
|
||||||
|
If you have added/changed plugins remember to `:PlugInstall` after saving. There currently |
||||||
|
is no autodetect on a changed `plugin.vim`. |
||||||
|
|
||||||
|
## Language Support |
||||||
|
|
||||||
|
Support for `C`, `C++`, `Python`, `Haskell`, and `OCaml` is installed. To add your own configurations you can |
||||||
|
create a file in the same form as those found in `conf/langs/` and place it in the `conf/langs/` folder. |
||||||
|
It will be autoloaded. |
||||||
|
|
||||||
|
The current loading script for languages does not check order before loading (so files can be loaded in |
||||||
|
any order based on directory structure). However, if you followed the structure and put all your configs |
||||||
|
in the correct files, those will be loaded *BEFORE* the languages and so you shouldn't run into (too many) |
||||||
|
order issues. This may be patched in the future. |
||||||
|
|
||||||
|
## Other Notes |
||||||
|
|
||||||
|
### Git |
||||||
|
|
||||||
|
`vim-fugitive` is installed. Bindings can be found in `conf/keybinds.vim` and documentation can be found |
||||||
|
[here](https://github.com/tpope/vim-fugitive). |
||||||
|
|
||||||
|
### LSP |
||||||
|
|
||||||
|
`vim-lsp` is installed with `vim-lsp-settings`. While editing a file that has a supported LSP server |
||||||
|
you can type `LspInstallServer` to install the associated server. You can uninstall a server with |
||||||
|
`:LspUninstallServer server-name`. You many need to restart your vim instance once the server is installed |
||||||
|
to activate the LSP support. |
||||||
|
|
||||||
|
### Org Mode |
||||||
|
|
||||||
|
`vim-orgmode` is installed. The usage documentation can be found [here](https://github.com/jceb/vim-orgmode/blob/master/doc/orgguide.txt). |
@ -0,0 +1,15 @@ |
|||||||
|
" General Configurations (Any language/Tool) |
||||||
|
|
||||||
|
" Stripping trailing whitespace on save |
||||||
|
autocmd BufWritePre * :%s/\s\+$//e |
||||||
|
|
||||||
|
" Standard variables |
||||||
|
set expandtab " tabs to spaces |
||||||
|
set tabstop=2 " spaces entered when tab key is pressed |
||||||
|
set shiftwidth=2 " spaces entered for indentation |
||||||
|
set number " Line numbering |
||||||
|
set clipboard+=unnamedplus " Share system clipboard |
||||||
|
set eol " End of line at bottom of file |
||||||
|
set shiftround |
||||||
|
set list |
||||||
|
set list listchars=tab:»·,trail:· |
@ -0,0 +1,7 @@ |
|||||||
|
" Fugitive Configuration |
||||||
|
|
||||||
|
" Fugitive bindings |
||||||
|
nnoremap <Leader>gs :Gstatus<CR> |
||||||
|
nnoremap <Leader>gd :Gdiff<CR> |
||||||
|
nnoremap <Leader>gb :Gblame<CR> |
||||||
|
nnoremap <Leader>gc :Gcommit<CR> |
@ -0,0 +1,28 @@ |
|||||||
|
" General-Purpose keybinds |
||||||
|
|
||||||
|
" Space is the leader key when outside of insert mode. |
||||||
|
let mapleader=" " |
||||||
|
|
||||||
|
map <silent> <Leader>t :NERDTreeToggle<CR> |
||||||
|
nnoremap <silent> <Leader>r :call NumberToggle()<CR> |
||||||
|
|
||||||
|
" Pressing enter in command mode clears the current search highlighting until |
||||||
|
" the next search. |
||||||
|
nnoremap <silent> <CR> :noh<CR><CR> |
||||||
|
|
||||||
|
" This one maps F5 to delete all trailing whitespace |
||||||
|
nnoremap <silent> <F5> :let _s=@/<Bar>:%s/\s\+$//e<Bar>:let @/=_s<Bar>:nohl<CR> |
||||||
|
|
||||||
|
" Togglable relative line numbering |
||||||
|
function! NumberToggle() |
||||||
|
if(&relativenumber == 1) |
||||||
|
set norelativenumber |
||||||
|
set number |
||||||
|
else |
||||||
|
set relativenumber |
||||||
|
endif |
||||||
|
endfunc |
||||||
|
|
||||||
|
" <SPC>r will toggle relative line numbers. |
||||||
|
nnoremap <silent> <Leader>r :call NumberToggle()<CR> |
||||||
|
|
@ -0,0 +1,49 @@ |
|||||||
|
" Plugin definitions. |
||||||
|
|
||||||
|
" I have no idea how to auto-install vim-plug on Windows |
||||||
|
" so you will have to install it manually. |
||||||
|
if !(has('win16') || has('win32') || has('win64')) |
||||||
|
if empty(glob('~/.config/nvim/autoload/plug.vim')) |
||||||
|
silent !curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs |
||||||
|
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |
||||||
|
autocmd VimEnter * PlugInstall | source % |
||||||
|
endif |
||||||
|
endif |
||||||
|
|
||||||
|
call plug#begin('~/.config/nvim/plugged') |
||||||
|
|
||||||
|
" UI |
||||||
|
Plug 'arcticicestudio/nord-vim' |
||||||
|
Plug 'vim-airline/vim-airline' |
||||||
|
Plug 'vim-airline/vim-airline-themes' |
||||||
|
Plug 'ryanoasis/vim-devicons' |
||||||
|
Plug 'preservim/nerdtree' |
||||||
|
|
||||||
|
" General Editing |
||||||
|
Plug 'tpope/vim-surround' |
||||||
|
Plug 'tpope/vim-commentary' |
||||||
|
|
||||||
|
"" Search |
||||||
|
Plug 'kien/ctrlp.vim' |
||||||
|
|
||||||
|
"" Git |
||||||
|
Plug 'tpope/vim-fugitive' |
||||||
|
|
||||||
|
"" LSP |
||||||
|
Plug 'prabirshrestha/vim-lsp' |
||||||
|
Plug 'mattn/vim-lsp-settings' |
||||||
|
|
||||||
|
"" Autocomplete |
||||||
|
Plug 'prabirshrestha/asyncomplete.vim' |
||||||
|
Plug 'prabirshrestha/asyncomplete-lsp.vim' |
||||||
|
|
||||||
|
"" Tmux Helper |
||||||
|
Plug 'preservim/vimux' |
||||||
|
|
||||||
|
"" Linting |
||||||
|
Plug 'w0rp/ale' |
||||||
|
|
||||||
|
"" Planning |
||||||
|
Plug 'jceb/vim-orgmode' |
||||||
|
|
||||||
|
call plug#end() |
@ -0,0 +1,15 @@ |
|||||||
|
" Specific search configurations |
||||||
|
|
||||||
|
" ctrlp hotkeys |
||||||
|
let g:ctrlp_map='<c-p>' |
||||||
|
let g:ctrlp_cmd='CtrlP' |
||||||
|
|
||||||
|
" Rebind Ctrl-P to match the window opening keys of nerd tree |
||||||
|
let g:ctrl_p_prompt_mappings = { |
||||||
|
\ 'AcceptSelection("h")': ['<c-i>', '<c-cr>', '<c-s>'], |
||||||
|
\ 'AcceptSelection("v")': ['<c-s>', '<RightMouse>'], |
||||||
|
\ } |
||||||
|
|
||||||
|
" ctrlp configuration |
||||||
|
set wildignore+=*/tmp/*,*.so,*.swp,*.zip " MacOSX/Linux |
||||||
|
set wildignore+=*\\tmp\\*,*.swp,*.zip,*.exe " Windows |
@ -0,0 +1,17 @@ |
|||||||
|
" UI Definitions |
||||||
|
|
||||||
|
colorscheme nord |
||||||
|
|
||||||
|
" Helps some themes. |
||||||
|
if (has('nvim')) |
||||||
|
let $NVIM_TUI_ENABLE_TRUE_COLOR = 1 |
||||||
|
endif |
||||||
|
|
||||||
|
if (has('termguicolors')) |
||||||
|
set termguicolors |
||||||
|
endif |
||||||
|
|
||||||
|
" Always show hidden files in nerdtree |
||||||
|
let NERDTreeShowHidden=1 |
||||||
|
|
||||||
|
|
@ -0,0 +1,93 @@ |
|||||||
|
Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries. |
||||||
|
|
||||||
|
This Font Software is licensed under the SIL Open Font License, Version 1.1. |
||||||
|
|
||||||
|
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL |
||||||
|
|
||||||
|
|
||||||
|
----------------------------------------------------------- |
||||||
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 |
||||||
|
----------------------------------------------------------- |
||||||
|
|
||||||
|
PREAMBLE |
||||||
|
The goals of the Open Font License (OFL) are to stimulate worldwide |
||||||
|
development of collaborative font projects, to support the font creation |
||||||
|
efforts of academic and linguistic communities, and to provide a free and |
||||||
|
open framework in which fonts may be shared and improved in partnership |
||||||
|
with others. |
||||||
|
|
||||||
|
The OFL allows the licensed fonts to be used, studied, modified and |
||||||
|
redistributed freely as long as they are not sold by themselves. The |
||||||
|
fonts, including any derivative works, can be bundled, embedded, |
||||||
|
redistributed and/or sold with any software provided that any reserved |
||||||
|
names are not used by derivative works. The fonts and derivatives, |
||||||
|
however, cannot be released under any other type of license. The |
||||||
|
requirement for fonts to remain under this license does not apply |
||||||
|
to any document created using the fonts or their derivatives. |
||||||
|
|
||||||
|
DEFINITIONS |
||||||
|
"Font Software" refers to the set of files released by the Copyright |
||||||
|
Holder(s) under this license and clearly marked as such. This may |
||||||
|
include source files, build scripts and documentation. |
||||||
|
|
||||||
|
"Reserved Font Name" refers to any names specified as such after the |
||||||
|
copyright statement(s). |
||||||
|
|
||||||
|
"Original Version" refers to the collection of Font Software components as |
||||||
|
distributed by the Copyright Holder(s). |
||||||
|
|
||||||
|
"Modified Version" refers to any derivative made by adding to, deleting, |
||||||
|
or substituting -- in part or in whole -- any of the components of the |
||||||
|
Original Version, by changing formats or by porting the Font Software to a |
||||||
|
new environment. |
||||||
|
|
||||||
|
"Author" refers to any designer, engineer, programmer, technical |
||||||
|
writer or other person who contributed to the Font Software. |
||||||
|
|
||||||
|
PERMISSION & CONDITIONS |
||||||
|
Permission is hereby granted, free of charge, to any person obtaining |
||||||
|
a copy of the Font Software, to use, study, copy, merge, embed, modify, |
||||||
|
redistribute, and sell modified and unmodified copies of the Font |
||||||
|
Software, subject to the following conditions: |
||||||
|
|
||||||
|
1) Neither the Font Software nor any of its individual components, |
||||||
|
in Original or Modified Versions, may be sold by itself. |
||||||
|
|
||||||
|
2) Original or Modified Versions of the Font Software may be bundled, |
||||||
|
redistributed and/or sold with any software, provided that each copy |
||||||
|
contains the above copyright notice and this license. These can be |
||||||
|
included either as stand-alone text files, human-readable headers or |
||||||
|
in the appropriate machine-readable metadata fields within text or |
||||||
|
binary files as long as those fields can be easily viewed by the user. |
||||||
|
|
||||||
|
3) No Modified Version of the Font Software may use the Reserved Font |
||||||
|
Name(s) unless explicit written permission is granted by the corresponding |
||||||
|
Copyright Holder. This restriction only applies to the primary font name as |
||||||
|
presented to the users. |
||||||
|
|
||||||
|
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font |
||||||
|
Software shall not be used to promote, endorse or advertise any |
||||||
|
Modified Version, except to acknowledge the contribution(s) of the |
||||||
|
Copyright Holder(s) and the Author(s) or with their explicit written |
||||||
|
permission. |
||||||
|
|
||||||
|
5) The Font Software, modified or unmodified, in part or in whole, |
||||||
|
must be distributed entirely under this license, and must not be |
||||||
|
distributed under any other license. The requirement for fonts to |
||||||
|
remain under this license does not apply to any document created |
||||||
|
using the Font Software. |
||||||
|
|
||||||
|
TERMINATION |
||||||
|
This license becomes null and void if any of the above conditions are |
||||||
|
not met. |
||||||
|
|
||||||
|
DISCLAIMER |
||||||
|
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF |
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT |
||||||
|
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE |
||||||
|
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
||||||
|
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL |
||||||
|
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
||||||
|
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM |
||||||
|
OTHER DEALINGS IN THE FONT SOFTWARE. |
Binary file not shown.
@ -0,0 +1,17 @@ |
|||||||
|
" Initialization |
||||||
|
|
||||||
|
let g:nvim_config_root = stdpath('config') |
||||||
|
|
||||||
|
exe 'source' g:nvim_config_root . '/conf/plugins.vim' |
||||||
|
exe 'source' g:nvim_config_root . '/conf/keybinds.vim' |
||||||
|
exe 'source' g:nvim_config_root . '/conf/config.vim' |
||||||
|
exe 'source' g:nvim_config_root . '/conf/ui.vim' |
||||||
|
exe 'source' g:nvim_config_root . '/conf/search.vim' |
||||||
|
exe 'source' g:nvim_config_root . '/conf/git.vim' |
||||||
|
|
||||||
|
let lang_configs = glob(g:nvim_config_root . '/conf/langs/*.vim') |
||||||
|
|
||||||
|
for lang_config in lang_configs |
||||||
|
exe 'source' lang_config |
||||||
|
endfor |
||||||
|
|
Loading…
Reference in new issue