aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/init.vim
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/init.vim')
-rw-r--r--.config/nvim/init.vim226
1 files changed, 226 insertions, 0 deletions
diff --git a/.config/nvim/init.vim b/.config/nvim/init.vim
new file mode 100644
index 0000000..415f6b6
--- /dev/null
+++ b/.config/nvim/init.vim
@@ -0,0 +1,226 @@
+set nocompatible " be iMproved, required
+" auto-install vim-plug
+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
+endif
+call plug#begin('~/.config/nvim/plugged')
+
+Plug 'neoclide/coc.nvim', {'branch': 'release'}
+" rust lang
+Plug 'rust-lang/rust.vim'
+" syntastic
+Plug 'vim-syntastic/syntastic'
+"C++ Highlighting
+Plug 'octol/vim-cpp-enhanced-highlight'
+"GLSL
+Plug 'tikhomirov/vim-glsl'
+" latex
+Plug 'lervag/vimtex'
+
+call plug#end()
+
+filetype plugin indent on " required
+" To ignore plugin indent changes, instead use:
+"filetype plugin on
+"
+" Brief help
+" :PluginList - lists configured plugins
+" :PluginInstall - installs plugins; append `!` to update or just :PluginUpdate
+" :PluginSearch foo - searches for foo; append `!` to refresh local cache
+" :PluginClean - confirms removal of unused plugins; append `!` to auto-approve removal
+"
+" see :h vundle for more details or wiki for FAQ
+" Put your non-Plugin stuff after this line
+"
+
+hi clear SignColumn
+
+function! HasPaste()
+ if &paste
+ return 'PASTE MODE '
+ endif
+ return ''
+endfunction
+
+
+set clipboard+=unnamedplus
+" " Copy to clipboard
+vnoremap <leader>y "+y
+nnoremap <leader>Y "+yg_
+nnoremap <leader>y "+y
+nnoremap <leader>yy "+yy
+
+" " Paste from clipboard
+nnoremap <leader>p "+p
+nnoremap <leader>P "+P
+vnoremap <leader>p "+p
+vnoremap <leader>P "+P
+
+"python with virtualenv support
+py << EOF
+import os
+import sys
+if 'VIRTUAL_ENV' in os.environ:
+ project_base_dir = os.environ['VIRTUAL_ENV']
+ activate_this = os.path.join(project_base_dir, 'bin/activate_this.py')
+ execfile(activate_this, dict(__file__=activate_this))
+EOF
+
+
+
+
+" use <tab> for trigger completion and navigate to the next complete item
+function! s:check_back_space() abort
+ let col = col('.') - 1
+ return !col || getline('.')[col - 1] =~ '\s'
+endfunction
+
+inoremap <silent><expr> <Tab>
+ \ pumvisible() ? "\<C-n>" :
+ \ <SID>check_back_space() ? "\<Tab>" :
+ \ coc#refresh()
+
+set laststatus=2
+"set statusline=\ %{HasPaste()}%F%m%r%h\ %w\ \ CWD:\ %r%{getcwd()}%h\ \ \ Line:\ %l\ \ Column:\ %c
+
+map <C-h> :set hlsearch!<CR>
+
+"nnoremap <C-Left> :tabprevious<CR>
+"nnoremap <C-Right> :tabnext<CR>
+
+nnoremap <C-l> :ls<CR>:b<space>
+
+fun! TrimWhitespace()
+ let l:save = winsaveview()
+ keeppatterns %s/\s\+$//e
+ call winrestview(l:save)
+endfun
+
+noremap <C-w> :call TrimWhitespace()<CR>
+
+set hlsearch
+set incsearch
+
+set mouse=a
+
+" regex by default
+set magic
+set smarttab
+
+let g:enable_bold_font = 1
+
+" Statusline {{{2
+
+" Statusline definition {{{3
+set statusline= " clear
+set statusline+=%1*\ " Color -
+set statusline+=%t " Tail of the filename
+set statusline+=%2* " Color
+set statusline+=%h " Help file flag
+set statusline+=%r " Read only flag
+set statusline+=%3* " Color
+set statusline+=%m " Modified flag
+set statusline+=%= " Left/right separator
+set statusline+=%4*\ " Color -
+" set statusline+=%{g:pluginUpdateStatus} " Up to date plugins
+set statusline+=\ \ " --
+set statusline+=%{&filetype} " Filetype
+set statusline+=\ \ " --
+set statusline+=%{&fenc} " File encoding
+set statusline+=[%{&ff}] " File format
+set statusline+=[ " Indent settings: begin
+set statusline+=%{&expandtab?\"sp\":\"tab\"}\ " Indent settings
+set statusline+=%{&shiftwidth} " Indent settings
+set statusline+=] " Indent settings: end
+set statusline+=\ %5*\ \ \ " - Color ---
+set statusline+=%2c " Cursor column
+set statusline+=\ \ " --
+set statusline+=%2v " Cursor column (virtual)
+set statusline+=\ \ " --
+set statusline+=(%l\ /\ %L) " Cursor line/total lines
+" set statusline+=\ \ " --
+" set statusline+=%P " Percent through file
+
+" Statusline colors {{{3
+hi User1 ctermfg=250 ctermbg=234
+hi User2 ctermfg=008 ctermbg=234
+hi User3 ctermfg=143 ctermbg=234
+hi User4 ctermfg=237 ctermbg=233
+hi User5 ctermfg=238 ctermbg=233
+
+
+
+
+"------------Start Python PEP 8 stuff----------------
+" Number of spaces that a pre-existing tab is equal to.
+au BufRead,BufNewFile *.html,*py,*pyw,*.c,*.h,*.js,*.tex,*.glsl,*.java,*.ts,*.tsx,*.c,*.cpp,*.h,*.hpp set tabstop=4
+
+"spaces for indents
+au BufRead,BufNewFile *.html,*.py,*.pyw,*.js,*.tex,*.glsl,*.java,*.ts,*.tsx,*.c,*.cpp,*.h,*.hpp set shiftwidth=4
+au BufRead,BufNewFile *.html,*.py,*.pyw,*.js,*.tex,*.glsl,*.java,*.ts,*.tsx,*.c,*.cpp,*.h,*.hpp set expandtab
+au BufRead,BufNewFile *.html,*.py,*.js,*.tex,*.glsl,*.java,*.ts,*.tsx,*.c,*.cpp,*.h,*.hpp set softtabstop=4
+
+" Use the below highlight group when displaying bad whitespace is desired.
+highlight BadWhitespace ctermbg=red guibg=red
+
+" Display tabs at the beginning of a line in Python mode as bad.
+au BufRead,BufNewFile *.py,*.pyw match BadWhitespace /^\t\+/
+" Make trailing whitespace be flagged as bad.
+au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/
+
+" Wrap text after a certain number of characters
+au BufRead,BufNewFile *.py,*.pyw, set textwidth=100
+
+" Use UNIX (\n) line endings.
+au BufNewFile *.py,*.pyw,*.c,*.h set fileformat=unix
+
+" Set the default file encoding to UTF-8:
+set encoding=utf-8
+
+" Number of spaces that a pre-existing tab is equal to.
+au BufRead,BufNewFile *.css set tabstop=2
+
+"spaces for indents
+au BufRead,BufNewFile *.css set shiftwidth=2
+au BufRead,BufNewFile *.css set expandtab
+au BufRead,BufNewFile *.css set softtabstop=2
+
+au BufRead,BufNewFile *.tex set syntax=context
+set ai "auto indent
+set si "smart indent
+
+set nu
+
+highlight LineNr ctermfg=grey
+
+let python_highlight_all=1
+syntax on
+highlight Pmenu ctermfg=cyan ctermbg=black
+
+let g:ycm_python_binary_path = 'python'
+let g:ycm_server_python_interpreter = '/usr/bin/python'
+let g:ycm_autoclose_preview_window_after_completion=1
+let g:ycm_collect_identifiers_from_comments_and_strings=1
+let g:ycm_global_ycm_extra_conf = '~/.vim/.ycm_extra_conf.py'
+set backspace=indent,eol,start
+
+" Rust
+let g:rustfmt_autosave = 1
+"let g:ycm_rust_src_path = '~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/'
+"let g:racer_experimental_completer = 1
+"let g:ycm_racerd_binary_path = '~/.cargo/bin/racer'
+nnoremap <C-]> :YcmCompleter GoTo<CR>
+
+" Syntastic
+set statusline+=%#warningmsg#
+set statusline+=%{SyntasticStatuslineFlag()}
+set statusline+=%*
+
+nnoremap <C-e> :SyntasticReset<CR>
+let g:syntastic_always_populate_loc_list = 1
+let g:syntastic_auto_loc_list = 1
+let g:syntastic_check_on_open = 1
+let g:syntastic_check_on_wq = 0
+