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