summaryrefslogtreecommitdiff
path: root/.config/nvim
diff options
context:
space:
mode:
authorBenjamin Chausse <benjamin@chausse.xyz>2020-10-03 19:27:15 -0400
committerBenjamin Chausse <benjamin@chausse.xyz>2020-10-03 19:27:15 -0400
commite371d9edd474bcf89cf5d462eaccb8638900b390 (patch)
treeed07118f5c514a55f23a779a1507640e46fd9ed2 /.config/nvim
Initial commit
Diffstat (limited to '.config/nvim')
-rw-r--r--.config/nvim/UltiSnips/rnoweb.snippets122
-rwxr-xr-x.config/nvim/init.vim289
2 files changed, 411 insertions, 0 deletions
diff --git a/.config/nvim/UltiSnips/rnoweb.snippets b/.config/nvim/UltiSnips/rnoweb.snippets
new file mode 100644
index 0000000..4a52697
--- /dev/null
+++ b/.config/nvim/UltiSnips/rnoweb.snippets
@@ -0,0 +1,122 @@
+snippet \ "Begin/End Environments"
+\begin{${1:element}}
+${2:contents}
+\end{$1}
+
+endsnippet
+
+snippet v "Import R variable in LaTeX"
+\Sexpr{${1:var}}
+endsnippet
+
+snippet eqn "Floating Equation"
+\begin{eqfloat}[H]
+\begin{align}
+ ${3:E} &= ${4:mc^2}
+\end{align}
+cond$5
+\label{eqn:${2:title}}
+\caption{${1:A Title}}
+\end{eqfloat}
+
+endsnippet
+
+snippet x "Multiplication Dot"
+\cdot
+endsnippet
+
+snippet e "Scientific Notation"
+\cdot10^{${1:power}}
+endsnippet
+
+snippet cond "Conditions for Equations"
+\begin{conditions}
+ ${1:V} & ${2:Definition of V}
+\end{conditions}
+endsnippet
+
+snippet R "R Code"
+<<label='${1:label}',echo=${2:FALSE},results='${3:asis}'>>=
+${4:1+1}
+@
+endsnippet
+
+snippet csv "Import CSV in R"
+${1:variable_vame} <- read.csv("${2:path/to/file}.csv",
+header=${3:TRUE},
+sep="${4:;}"
+)
+
+endsnippet
+
+snippet xtable "Table made from R matrix"
+print(
+ xtable(${1:matrix_name},
+ caption="${2:Title of the table}",
+ label="tab:${3:table}",
+ digits=matrix($6
+ c(
+`!p
+from time import sleep
+try:
+ col = int(t[3])-1
+ paragraph = ""
+ for i in range(int(t[4])-1):
+ paragraph += " rep(0,"+str(col)+"), <++>,\n"
+ paragraph += " rep(0,"+str(col)+"), <++>"
+ snip.rv = paragraph
+except(ValueError):
+ sleep(1)
+# paragraph = ""
+# paragraph = " rep(0,"+t[3]+"), 0,\n"
+# for i in range(int(t[4])-2):
+# paragraph += " rep(0,"+t[3]+"), <++>,\n"
+# paragraph += " rep(0,"+t[3]+"), <++>"
+# snip.rv = paragraph
+`
+ ),
+ nrow=${5:6},
+ ncol=${4:3},
+ byrow=TRUE
+ ),
+ table.placement="H"
+ ),
+ include.rownames=FALSE,
+ table.placement="H"
+)
+
+endsnippet
+
+snippet img "Image"
+\begin{figure}[H]
+\begin{center}
+\includegraphics[scale=${1:1}]{${2:path/to/image}}
+\label{fig:${3/\s/_/g}}
+\caption{${3:A Title}}
+\end{center}
+\end{figure}
+endsnippet
+
+snippet b "Bold"
+\textbf{${1:text}}
+endsnippet
+
+snippet i "Italix"
+\textit{${1:text}}
+endsnippet
+
+snippet u "Underline"
+\uline{${1:text}}
+endsnippet
+
+snippet 1 "Section"
+\section{${1:Title}}
+endsnippet
+
+snippet 2 "Subsection"
+\subsection{${1:Title}}
+endsnippet
+
+snippet 3 "Subsubsection"
+\subsubsection{${1:Title}}
+endsnippet
diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim
new file mode 100755
index 0000000..5b11c2f
--- /dev/null
+++ b/.config/nvim/init.vim
@@ -0,0 +1,289 @@
+" _
+" (_)
+" __ ___ _ __ ___ _ __ ___
+" \ \ / / | '_ ` _ \| '__/ __|
+" \ V /| | | | | | | | | (__
+" \_/ |_|_| |_| |_|_| \___|
+"
+"
+" #---Plug Installer---# "
+if empty(glob('~/.vim/autoload/plug.vim'))
+ silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs
+ \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
+ autocmd VimEnter * PlugInstall --sync | source $MYVIMRC
+endif
+
+" #---Vim Plugins---# "
+call plug#begin()
+" if has('nvim')
+ " Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
+" else
+ " Plug 'Shougo/deoplete.nvim'
+ " Plug 'roxma/nvim-yarp'
+ " Plug 'roxma/vim-hug-neovim-rpc'
+" endif
+" Latex Deoplete source
+" Plug 'hisaknown/deoplete-latex'
+" Comment frames (for comment aesthetics)
+Plug 'cometsong/CommentFrame.vim'
+" Deoplete
+Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' }
+" Go Deoplete sources
+Plug 'stamblerre/gocode', { 'rtp': 'vim', 'do': '~/.vim/plugged/gocode/vim/symlink.sh' }
+Plug 'deoplete-plugins/deoplete-go', { 'do': 'make'}
+" LaTeX deoplete
+Plug 'hisaknown/deoplete-latex'
+" Turning vim into an R IDE
+Plug 'jalvesaq/Nvim-R'
+" Vim Sensible
+Plug 'tpope/vim-sensible'
+" Vim org tables
+Plug 'dhruvasagar/vim-table-mode'
+" Html linter enabler (for prettier AUR package)
+Plug 'dense-analysis/ale'
+" Vim Goyo
+Plug 'junegunn/goyo.vim'
+" Vim css hex highlight
+Plug 'chrisbra/Colorizer'
+" Bracket Completion
+Plug 'jiangmiao/auto-pairs'
+" csv filetype for vim
+Plug 'chrisbra/csv.vim'
+" Go developement
+Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
+" sxhkd syntax
+Plug 'kovetskiy/sxhkd-vim'
+" Vim-Bling Search
+Plug 'ivyl/vim-bling'
+" Vim Hard Mode
+Plug 'wikitopian/hardmode'
+" I want to be a python ninja!
+Plug 'metakirby5/codi.vim'
+" Quickrun for python
+Plug 'thinca/vim-quickrun'
+" markdown preview vim
+Plug 'iamcco/markdown-preview.nvim', { 'do': { -> mkdp#util#install() }}
+" Emmet expansion for html
+Plug 'mattn/emmet-vim'
+" html preview
+Plug 'turbio/bracey.vim'
+" VimCompletesMe for VimTex
+Plug 'ajh17/VimCompletesMe'
+" Xresources colors
+Plug 'dylanaraps/wal.vim'
+" Nord colors
+Plug 'arcticicestudio/nord-vim'
+" My personal colorscheme
+Plug 'ChausseBenjamin/friffle-vim'
+" Vim Fugitive
+Plug 'tpope/vim-fugitive'
+" Vim-Surround
+Plug 'tpope/vim-surround'
+" Vim repeat for dot command on vim surround
+Plug 'tpope/vim-repeat'
+" Vimtex
+Plug 'lervag/vimtex'
+" C developement in vim
+Plug 'vim-scripts/c.vim'
+" NERDTree
+Plug 'scrooloose/nerdtree'
+" Git plugin for NERDTree
+Plug 'Xuyuanp/nerdtree-git-plugin'
+" Icons in NERDTree and Airline
+Plug 'ryanoasis/vim-devicons'
+" lightline
+Plug 'itchyny/lightline.vim'
+" Commentary
+Plug 'tpope/vim-commentary'
+" Vim markdown
+Plug 'godlygeek/tabular'
+" Ctrl-P fuzzy file finder
+Plug 'ctrlpvim/ctrlp.vim'
+" Vim snippet manager/tool
+Plug 'sirver/UltiSnips'
+" Vim snippet library
+Plug 'honza/vim-snippets'
+" Async shell commands
+Plug 'skywind3000/asyncrun.vim'
+" French grammar checker
+Plug 'dpelle/vim-Grammalecte'
+" All purpose grammar checker
+Plug 'dpelle/vim-LanguageTool'
+call plug#end()
+
+
+" #---Basics/Recomended---# "
+syntax on
+filetype plugin on
+set termguicolors
+set t_Co=256
+set encoding=utf-8
+set path+=** " Provides tab-completion for all file related tasks
+set wildmenu " Display all matching file when we tab complete
+" Spelling
+set complete+=kspell " Better Spell Checking
+set spelllang=fr
+nnoremap ;h <Esc>zg
+nnoremap ;j <Esc>]s
+nnoremap ;k <Esc>[s
+nnoremap ;l <Esc>z=1<CR><CR>
+nnoremap ;<Space> <Esc>z=1<CR><CR>
+" Enable autocompletion:
+ set wildmode=longest,list,full
+ set runtimepath+=~/.config/nvim/plugged/deoplete.nvim
+ let g:deoplete#enable_at_startup = 1
+" Splits open at the bottom and right, which is non-retarded, unlike vim defaults.
+set splitbelow splitright
+set rtp+=/usr/local/opt/fzf " Fuzzy File Finder
+set t_vi= " Autohide the cursor
+" Automatic wordwrap without creating newlines!
+set wrap
+set linebreak
+
+" #---Plugin Preferences---# "
+" Nvim-R
+let R_rconsole_width = 0
+" Emmet Expansion
+let g:user_emmet_leader_key=','
+" Enable kite autocompletion
+let g:kite_auto_complete=1
+" MarkdownPreview
+" let g:mkdp_browser = 'surf'
+" Bracey
+let g:bracey_browser_command = "chromium"
+" Grammalecte path
+let g:grammalecte_cli_py = "/usr/bin/grammalecte-cli"
+" Ale Linter with prettier
+let g:ale_linters_explicit = 1
+" autocmd BufWrite, *.css,*.html,*.js :ALEFix prettier
+" Ultisnips
+ " Trigger configuration. Do not use <tab> if you use https://github.com/Valloric/YouCompleteMe.
+ let g:UltiSnipsExpandTrigger="<Tab>"
+ let g:UltiSnipsJumpForwardTrigger=";<Space>"
+ let g:UltiSnipsJumpBackwardTrigger=";n"
+ " If you want :UltiSnipsEdit to split your window.
+ let g:UltiSnipsEditSplit="vertical"
+ " Snippet directory
+ let g:UltiSnipsSnippetDirectories=[$HOME.'/.config/nvim/UltiSnips']
+" Go deoplete
+let g:deoplete#sources#go#gocode_binary = '$GOPATH/bin/gocode'
+" Hexokinase
+let g:Hexokinase_highlighters = ['virtual']
+" GoRun Split Reuse
+function! ReuseVimGoTerm(cmd) abort
+ for w in nvim_list_wins()
+ if "goterm" == nvim_buf_get_option(nvim_win_get_buf(w), 'filetype')
+ call nvim_win_close(w, v:true)
+ break
+ endif
+ endfor
+ execute a:cmd
+endfunction
+let g:go_term_enabled = 1
+let g:go_term_mode = "silent keepalt rightbelow 35 vsplit"
+let g:go_def_reuse_buffer = 1
+autocmd FileType go nmap <leader>r :call ReuseVimGoTerm('GoRun')<Return>
+" Vimtex pdf viewer
+let g:latex_view_general_viewer = 'zathura'
+let g:vimtex_view_method = "zathura"
+
+" #---Document Compilation/Visualisation---# "
+" Compile document, be it groff/LaTeX/markdown/etc.
+map <leader>c :w! \| AsyncRun compiler <c-r>%<CR><CR>
+autocmd InsertLeave,TextChanged *.gd,*.ms,*.mom :w! | :execute 'silent AsyncRun compiler %'
+" autocmd InsertLeave *.rmd,*.rnw,*.tex :w! | :execute 'silent AsyncRun compiler %; todotable % TODO FIXME CHANGED XXX IDEA HACK NOTE REVIEW NB BUG QUESTION COMBAK'
+autocmd VimLeave *.rmd,*.rnw,*.tex !texclear %
+map <leader>x :w! \| AsyncRun todotable <c-r>% TODO FIXME CHANGED XXX IDEA HACK NOTE REVIEW NB BUG QUESTION COMBAK TEMP<CR><CR>
+" Open corresponding .pdf/.html or preview
+ map <leader>p :! opout <c-r>%<CR><CR>
+" Open corresponding .pdf/.html or preview
+ map <leader>o :! tdout <c-r>%<CR><CR>
+" Width tabstop
+set tabstop=2
+" when indenting with '>', use 4 spaces width
+set shiftwidth=2
+
+" #---Custom Keymaps---# "
+" Tab Buffer Navigation
+ nnoremap <S-k> :bp<CR>
+ nnoremap <S-j> :bn<CR>
+" Vim split resize
+ map <Up> <Esc>:resize<Space>+3<CR>
+ map <Down> <Esc>:resize<Space>-3<CR>
+ map <Left> <Esc>:vertical<Space>resize<Space>-3<CR>
+ map <Right> <Esc>:vertical<Space>resize<Space>+3<CR>
+ map <C-_> <Esc>:split<CR>
+ map <C-\> <Esc>:vsplit<CR>
+" Ninja python execution
+ map <F5> <Esc>:Codi!!<CR>
+ map <F6> <Esc>:QuickRun<CR>
+" Shortcutting split navigation, saving a keypress:
+ map <C-h> <C-w>h
+ map <C-j> <C-w>j
+ map <C-k> <C-w>k
+ map <C-l> <C-w>l
+" Create blank lines using Shift J and Shift K
+ nnoremap J o<Esc>
+ nnoremap K O<Esc>
+" Figlet dotfile titles
+command RcTitle .!figlet -s -f big
+" Easily escape terminal mode
+tnoremap <Esc> <C-\><C-n>
+" Pressing shift semicolon was too long:
+nnoremap <Space> :
+" Fastest :w in the west
+nnoremap <leader>w :w<CR>
+" #---Visual Enhancements---# "
+colorscheme friffle
+" Remove latex underscore errors
+let g:tex_no_error=1
+" let g:airline_powerline_fonts = 1
+" Lightline config
+let g:lightline = {
+ \ 'colorscheme': 'friffle',
+ \ }
+set noshowmode
+" Vim-go breakpoints and debug
+nnoremap mp :GoDebugBreakpoint<CR>
+nnoremap mn :GoDebugNext<CR>
+nnoremap ms :GoDebugStart<CR>
+nnoremap mq :GoDebugStop<CR>
+
+" #---Ease Of Use---# "
+" Normal/relative number toggle
+set number relativenumber
+augroup numbertoggle
+ autocmd!
+ autocmd BufEnter,FocusGained,InsertLeave * set relativenumber
+ autocmd BufLeave,FocusLost,InsertEnter * set norelativenumber
+augroup END
+" Remove all trailing spaces upon write {{{
+autocmd BufWritePre * %s/\s\+$//e
+" Soft Tabs
+filetype plugin indent on
+" NERDTRee Hotkey map
+map <C-n> :NERDTreeToggle<CR>
+ let NERDTreeDirArrowExpandable="|"
+ let NERDTreeDirArrowCollapsible="-"
+" Close vim if the only window left open is a NERDTree
+autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif
+" Other NERDTree Preferences
+let NERDTreeMinimalUI = 1
+let NERDTreeDirArrows = 1
+let NERDTreeShowBookmarks=1
+let NERDTreeAutoDeleteBuffer = 1
+let NERDTreeQuitOnOpen = 1
+" Nvim-R send line
+nmap <C-Enter> <leader>l
+" Nvim folding
+ let r_syntax_folding = 1
+ set foldnestmax=1
+
+
+" #---Universal Macros---# "
+" Create and navigate Markers
+" inoremap ;m <++>
+inoremap ;; <Esc>/<++><CR>"_c4l
+inoremap << «
+inoremap >> »
+" #---Filetype Specific Settings---# "