dotfiles/neovim/.config/nvim/init.vim
2022-02-25 16:22:57 +01:00

240 lines
5.3 KiB
VimL

" vim-plug plugin manager
if filereadable(expand("~/.vim/autoload/plug.vim")) || filereadable(expand("~/.config/nvim/autoload/plug.vim")) || filereadable(expand("~\vimfiles\autoload\plug.vim")) || filereadable(expand("~/.local/share/nvim/site/autoload/plug.vim"))
call plug#begin('~/.vim/plugged')
Plug 'benekastah/neomake'
Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets'
Plug 'junegunn/vim-easy-align'
Plug 'Shougo/deoplete.nvim'
Plug 'vim-scripts/gitignore.vim'
Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' }
Plug 'Xuyuanp/nerdtree-git-plugin'
" Plug 'majutsushi/tagbar'
" Plug 'vim-scripts/taglist.vim'
Plug 'Townk/vim-autoclose'
Plug 'tpope/vim-fugitive'
Plug 'airblade/vim-gitgutter'
""" Markdown editing
Plug 'godlygeek/tabular'
Plug 'plasticboy/vim-markdown'
""" Themes
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'rakr/vim-one'
" Plug 'morhetz/gruvbox'
""" Languages
Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' }
Plug 'vim-latex/vim-latex'
" Plug 'dag/vim-fish'
" Plug 'KabbAmine/gulp-vim'
" Plug 'kovisoft/slimv'
" Plug 'vim-php/vim-phpunit'
" Plug 'StanAngeloff/php.vim'
call plug#end()
else
echom "Didn't find Plug"
endif
set nocompatible
filetype indent plugin on
set wildmenu
set showcmd
set hlsearch
set ignorecase
set smartcase
set backspace=indent,eol,start
set autoindent
set nostartofline
set ruler
set laststatus=2
set confirm
set mouse=a
set cmdheight=2
set number
set pastetoggle=<F11>
set softtabstop=4
set shiftwidth=4
set expandtab
set autoread
let mapleader = ","
let g:mapleader = ","
nmap <leader>w :w!<cr>
" Visual
set so=7
set wildignore=*.o,*~,*.pyc,*.jar
set hid
set whichwrap+=<,>,h,l
set incsearch
set lazyredraw
set magic
set showmatch
set mat=2
set noerrorbells
set novisualbell
set t_vb=
set tm=500
" Color
syntax on
" colorscheme gruvbox
colorscheme one
set background=light
set termguicolors
set cursorline
if has("gui_running")
set guioptions-=T
set guioptions+=e
set t_Co=256
set guitablabel=%M\ %t
if has("gui_gtk2")
set guifont=Hermit\ 10
endif
endif
set t_Co=256
set encoding=utf-8
set ffs=unix,dos,mac
" set textwidth=80
" set colorcolumn=+1
hi ColorColumn guibg=#2d2d2d ctermbg=238
" Files, Backups and undo
set nobackup
set nowb
set noswapfile
set smarttab
set tabstop=4
set ai
set si
set wrap
map j gj
map k gk
map <space> /
map <c-space> ?
" Smart way to move between windows
map <C-j> <C-W>j
map <C-k> <C-W>k
map <C-h> <C-W>h
map <C-l> <C-W>lmap <leader>tn :tabnew<cr>
map <leader>to :tabonly<cr>
map <leader>tc :tabclose<cr>
map <leader>tm :tabmove
" Opens a new tab with the current buffer's path
" Super useful when editing files in the same directory
map <leader>te :tabedit <c-r>=expand("%:p:h")<cr>/
"
" " Switch CWD to the directory of the open buffer
map <leader>cd :cd %:p:h<cr>:pwd<cr>
"
map <leader>W :w
"
" " Specify the behavior when switching between buffers
try
set switchbuf=useopen,usetab,newtab
set stal=2
catch
endtry
"
" Return to last edit position when opening files (You want this!)
autocmd BufReadPost *
\ if line("'\"") > 0 && line("'\"") <= line("$") |
\ exe "normal! g`\"" |
\ endif
"Remember info about open buffers on close
set viminfo^=%
map 0 ^
" Move a line of text using ALT+[jk] or Comamnd+[jk] on mac
nmap <M-j> mz:m+<cr>`z
nmap <M-k> mz:m-2<cr>`z
vmap <M-j> :m'>+<cr>`<my`>mzgv`yo`z
vmap <M-k> :m'<-2<cr>`>my`<mzgv`yo`z
"
" Delete trailing white space on save, useful for Python and
" CoffeeScript ;)
func! DeleteTrailingWS()
exe "normal mz"
%s/\s\+$//ge
exe "normal `z"
endfunc
autocmd BufWrite *.py :call DeleteTrailingWS()
autocmd BufWrite *.coffee :call DeleteTrailingWS()
" Neomake lint
autocmd! BufWritePost,BufEnter * Neomake
map <leader>ss :setlocal spell!<cr>
" Shortcuts using <leader>
map <leader>sn ]s
map <leader>sp [s
map <leader>sa zg
map <leader>s? z=
"Remove the Windows ^M - when the encodings gets messed up
noremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm
" Quickly open a buffer for scripbble
map <leader>q :e ~/buffer<cr>
" Toggle paste mode on and off
map <leader>pp :setlocal paste!<cr>
map <C-n> :NERDTreeToggle<CR>
" My Changes
inoremap jk <ESC>
set listchars=tab:>-,trail:-
set list
set clipboard+=unnamedplus
" Plugin settings
" airline
let g:airline_powerline_fonts = 1
let g:airline#extensions#tabline#enabled = 1
" let g:airline_theme='base16_gruvbox_dark_hard'
let g:airline_theme='one'
" deoplete
let g:deoplete#enable_at_startup = 1
let g:deoplete#sources#clang#libclang_path='/usr/lib/llvm-3.6/lib/libclang.so.1'
let g:deoplete#sources#clang#clang_header='/usr/lib/llvm-3.6/lib/clang/3.6.2/include/'
set grepprg=grep\ -nH\ $*
" latexsuite
let g:tex_flavor='latex'
let g:tex_fold_enabled=1
let g:Tex_CompileRule_pdf = 'pdflatex --interaction=nonstopmode $*'
" slimv swank server
let g:slimv_swank_cmd = '! xterm -e sbcl --load /usr/share/common-lisp/source/slime/start-swank.lisp &'
" Filetype specific settings
autocmd Filetype html setlocal ts=2 sts=2 sw=2
autocmd Filetype javascript setlocal ts=2 sts=2 sw=2
autocmd Filetype coffee setlocal ts=2 sts=2 sw=2
autocmd Filetype dart setlocal ts=2 sts=2 sw=2
" Syntax highlighting for HtMd (Hypertext Markdown)
au BufRead,BufNewFile *.htmd set filetype=html