diff --git a/README.org b/README.org index bc8828d..7eaa5ff 100644 --- a/README.org +++ b/README.org @@ -12,6 +12,13 @@ - [[#theme][Theme]] - [[#plugin-manager][Plugin Manager]] - [[#plugins][Plugins]] +- [[#neovim][Neovim]] + - [[#theme-1][Theme]] + - [[#plugin-manager-1][Plugin Manager]] + - [[#plugins-1][Plugins]] + - [[#general][General]] + - [[#programming][Programming]] + - [[#ui][UI]] - [[#configuration][Configuration]] - [[#installation][Installation]] - [[#find--delete-orphaned-symlinks][Find & delete orphaned symlinks]] @@ -55,10 +62,44 @@ A repository of my personal server configuration files. - [[https://github.com/zsh-users/zsh-autosuggestions][zsh-autosuggestions]] - [[https://github.com/zsh-users/zsh-syntax-highlighting][zsh-syntax-highlighting]] +* Neovim +** Theme +- [[https://github.com/morhetz/gruvbox][gruvbox]] +** Plugin Manager +- [[https://github.com/junegunn/vim-plug][vim-plug]] +** Plugins +*** General +- [[https://github.com/bling/vim-bufferline][bling/vim-bufferline]] +- [[easymotion/vim-easymotion]] +- [[https://github.com/farmergreg/vim-lastplace][farmergreg/vim-lastplace]] +- [[https://github.com/jiangmiao/auto-pairs][jiangmiao/auto-pairs]] +- [[https://github.com/kien/ctrlp.vim][kien/ctrlp.vim]] +- [[https://github.com/mbbill/undotree][mbbill/undotree]] +- [[https://github.com/mhinz/vim-signify][mhinz/vim-signify]] +- [[https://github.com/myusuf3/numbers.vim][myusuf3/numbers.vim]] +- [[https://github.com/nathanaelkane/vim-indent-guides][nathanaelkane/vim-indent-guides]] +- [[https://github.com/preservim/nerdtree][preservim/nerdtree]] +- [[https://github.com/rhysd/conflict-marker.vim][rhysd/conflict-marker.vim]] +- [[https://github.com/terryma/vim-multiple-cursors][terryma/vim-multiple-cursors]] +- [[https://github.com/tpope/vim-abolish][tpope/vim-abolish]] +- [[https://github.com/tpope/vim-surround][tpope/vim-surround]] +- [[https://github.com/vim-airline/vim-airline][vim-airline/vim-airline]] +*** Programming +- [[https://github.com/autozimu/LanguageClient-neovim][autozimu/LanguageClient-neovim]] +- [[https://github.com/godlygeek/tabular][godlygeek/tabular]] +- [[https://github.com/majutsushi/tagbar][majutsushi/tagbar]] +- [[https://github.com/preservim/nerdcommenter][preservim/nerdcommenter]] +- [[https://github.com/Shougo/deoplete.nvim][Shougo/deoplete.nvim]] +- [[https://github.com/tpope/vim-fugitive][tpope/vim-fugitive]] +- [[https://github.com/Xuyuanp/nerdtree-git-plugin][Xuyuanp/nerdtree-git-plugin]] +*** UI +- [[https://github.com/morhetz/gruvbox][morhetz/gruvbox]] +- [[https://github.com/ryanoasis/vim-devicons][ryanoasis/vim-devicons]] + * Configuration ** Installation #+BEGIN_SRC shell -./install.sh +./install #+END_SRC ** Find & delete orphaned symlinks #+BEGIN_SRC shell diff --git a/clean-dead-symlinks.sh b/clean-dead-symlinks similarity index 71% rename from clean-dead-symlinks.sh rename to clean-dead-symlinks index b5bba6b..6516c10 100755 --- a/clean-dead-symlinks.sh +++ b/clean-dead-symlinks @@ -1,3 +1,3 @@ -#!/bin/sh +#!/usr/bin/env sh find ~ -type l -exec test ! -e {} \; -delete diff --git a/install b/install new file mode 100755 index 0000000..9ac23e6 --- /dev/null +++ b/install @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +for d in $(ls -d */ | cut -f1 -d '/'); do + (stow $d) +done + +# Install vim plugins & requirements +if [ ! "$(pip list --user | grep 'pynvim' | wc -l)" -ge 1 ]; then + pip install --user pynvim +fi +nvim +PlugInstall +qall + +# Create nvim config directory if it doesn't exist +if [ ! -d ~/.config/nvim ]; then + echo "Creating ~/.config/nvim" + mkdir -p ~/.config/nvim +fi diff --git a/install.sh b/install.sh deleted file mode 100755 index 81e2278..0000000 --- a/install.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash - -for d in `ls -d */ | cut -f1 -d '/'`; -do - ( stow $d ) -done diff --git a/neovim/.config/nvim/init.vim b/neovim/.config/nvim/init.vim new file mode 100644 index 0000000..942689e --- /dev/null +++ b/neovim/.config/nvim/init.vim @@ -0,0 +1,159 @@ +" Modeline and Notes { +" vim: set sw=4 ts=4 sts=4 et tw=78 foldmarker={,} foldlevel=0 foldmethod=marker spell: +" +" __ __ __ ___ +" | \/ |_ _ \ \ / (_)_ __ ___ _ __ ___ +" | |\/| | | | | \ \ / /| | '_ ` _ \| '__/ __| +" | | | | |_| | \ V / | | | | | | | | | (__ +" |_| |_|\__, | \_/ |_|_| |_| |_|_| \___| +" |___/ +" } + +" Installed Plugins { + call plug#begin() + + " General { + Plug 'bling/vim-bufferline' + Plug 'easymotion/vim-easymotion' + Plug 'farmergreg/vim-lastplace' + Plug 'jiangmiao/auto-pairs' + Plug 'kien/ctrlp.vim' + Plug 'mbbill/undotree' + Plug 'mhinz/vim-signify' + Plug 'myusuf3/numbers.vim' + Plug 'nathanaelkane/vim-indent-guides' + Plug 'preservim/nerdtree' + Plug 'rhysd/conflict-marker.vim' + Plug 'terryma/vim-multiple-cursors' + Plug 'tpope/vim-abolish' + Plug 'tpope/vim-surround' + Plug 'vim-airline/vim-airline' + " } + + + " Programming { + Plug 'autozimu/LanguageClient-neovim', { + \ 'branch': 'next', + \ 'do': 'bash install.sh', + \ } + Plug 'godlygeek/tabular' + if executable('ctags') + Plug 'majutsushi/tagbar' + endif + Plug 'preservim/nerdcommenter' + Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } + Plug 'tpope/vim-fugitive' + Plug 'Xuyuanp/nerdtree-git-plugin' + " } + + " UI { + Plug 'morhetz/gruvbox' + " This has to be loaded last to work + Plug 'ryanoasis/vim-devicons' + " } + call plug#end() +" } + +" General { + colorscheme gruvbox " Set colour scheme + set clipboard=unnamed,unnamedplus " Use + register for copy-paste + + set mouse=a " Automatically enable mouse usage + set mousehide " Hide the mouse cursor while typing + + autocmd BufEnter * if bufname("") !~ "^\[A-Za-z0-9\]*://" | lcd %:p:h | endif " Always switch to the current file directory + + set shortmess+=filmnrxoOtT " Abbrev. of messages (avoids 'hit enter') + set virtualedit=onemore " Allow for cursor beyond last character + set hidden " Allow buffer switching without saving + set iskeyword-=. " '.' is an end of word designator + set iskeyword-=# " '#' is an end of word designator + set iskeyword-=- " '-' is an end of word designator +" } + +" Vim UI { + set cursorline " show cursor line + + highlight clear SignColumn " SignColumn should match background + highlight clear LineNr " Current line number row will have same background color in relative mode + + set ignorecase " Ignore case on search + set scrolljump=5 " Lines to scroll when cursor leaves screen + set scrolloff=3 " Minimum lines to keep above and below cursor + set foldenable " Auto fold code + set list " Display whitespace +" } + +" Formatting { + set shiftwidth=4 " Use indents of 4 spaces + set expandtab " Tabs are spaces, not tabs + set tabstop=4 " An indentation every four columns + set softtabstop=4 " Let backspace delete indent + set nojoinspaces " Prevents inserting two spaces after punctuation on a join (J) + set splitright " Puts new vsplit windows to the right of the current + set splitbelow " Puts new split windows to the bottom of the current + set pastetoggle= " pastetoggle (sane indentation on pastes) +" } + +" Key Mappings { + " Switch between different windows by their direction + no j| "switching to below window + no k| "switching to above window + no l| "switching to right window + no h| "switching to left window + + " More convenient leaders + let mapleader = "," + let maplocalleader = '_' + + " Visual shifting (does not exit Visual mode) + vnoremap < >gv + + " For when you forget to sudo.. Really Write the file. + cmap w!! w !sudo tee % >/dev/null +" } + +" Plugin Configuration { + " NerdTree { + " Start nerdtree automatically when no files are specified + autocmd StdinReadPre * let s:std_in=1 + autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif + + " Don't open nerdtree when opening session file + autocmd StdinReadPre * let s:std_in=1 + autocmd VimEnter * if argc() == 0 && !exists("s:std_in") && v:this_session == "" | NERDTree | endif + + " Start nerdtree automatically when opening up a directory + autocmd StdinReadPre * let s:std_in=1 + autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif + + " Close vim if only windo left is nerdtree + autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif + + " Toggle nerdtree + map :NERDTreeToggle + " } + + " Tagbar { + if executable('ctags') + " Tagbar panel + map tt :TagbarToggle + endif + " } + + " NerdCommenter { + " Add spaces after comment delimiters by default + let g:NERDSpaceDelims = 1 + " } + + " Airline { + " Enable powerline fonts + let g:airline_powerline_fonts=1 + " } + + " Deoplete { + " Load deoplete on startup + let g:deoplete#enable_at_startup = 1 + " } +" } diff --git a/nvim/.config/nvim/init.vim b/nvim/.config/nvim/init.vim deleted file mode 120000 index 63ed0f9..0000000 --- a/nvim/.config/nvim/init.vim +++ /dev/null @@ -1 +0,0 @@ -/home/alrayyes/.spf13-vim-3/.vimrc \ No newline at end of file diff --git a/nvim/.vimrc.before.local b/nvim/.vimrc.before.local deleted file mode 100644 index cb451cf..0000000 --- a/nvim/.vimrc.before.local +++ /dev/null @@ -1,2 +0,0 @@ -let g:airline_powerline_fonts=1 -let g:airline_theme='molokai' diff --git a/nvim/.vimrc.bundles.local b/nvim/.vimrc.bundles.local deleted file mode 100644 index 0bf6e93..0000000 --- a/nvim/.vimrc.bundles.local +++ /dev/null @@ -1,4 +0,0 @@ -Bundle 'ryanoasis/vim-devicons' -Bundle 'shime/vim-livedown' -UnBundle 'amirh/HTML-AutoCloseTag' -UnBundle 'spf13/vim-preview' diff --git a/nvim/.vimrc.local b/nvim/.vimrc.local deleted file mode 100644 index 9deee4e..0000000 --- a/nvim/.vimrc.local +++ /dev/null @@ -1,13 +0,0 @@ -color molokai - -" vim-devicons -set encoding=utf8 - -" mutt -au BufRead ~/.mutt/temp/mutt-* set tw=72 - -" default previe browser -let g:livedown_browser='firefox-developer-edition --class="firefox-developer"' - -" toggle markdown preview -nmap P :LivedownToggle