mirror of
https://github.com/tomru/DotfilesOld.git
synced 2026-03-03 06:27:21 +01:00
update vim config yet again
This commit is contained in:
349
vim/.vimrc
349
vim/.vimrc
@@ -2,13 +2,19 @@
|
|||||||
" author: Thomas Ruoff
|
" author: Thomas Ruoff
|
||||||
|
|
||||||
" Basics {{{
|
" Basics {{{
|
||||||
set encoding=utf-8
|
if has('vim_starting')
|
||||||
|
set encoding=utf-8
|
||||||
|
scriptencoding utf-8
|
||||||
|
|
||||||
|
set clipboard& clipboard^=unnamed,unnamedplus
|
||||||
|
endif
|
||||||
|
|
||||||
set hidden
|
set hidden
|
||||||
|
|
||||||
set ttyfast
|
set ttyfast
|
||||||
set lazyredraw
|
set lazyredraw
|
||||||
set updatetime=300
|
set updatetime=300
|
||||||
set synmaxcol=512
|
set synmaxcol=2000
|
||||||
|
|
||||||
set modeline
|
set modeline
|
||||||
|
|
||||||
@@ -20,23 +26,13 @@ set mousehide
|
|||||||
|
|
||||||
set wildmode=list:longest,full
|
set wildmode=list:longest,full
|
||||||
set wildignore+=*.swp,*.bak,*.jpg,*.gif,*.png,*.git,
|
set wildignore+=*.swp,*.bak,*.jpg,*.gif,*.png,*.git,
|
||||||
|
set wildignore+=**/node_modules/**
|
||||||
|
|
||||||
set splitright
|
set splitright
|
||||||
set splitbelow
|
set splitbelow
|
||||||
|
|
||||||
" Always show the status line
|
|
||||||
set laststatus=2
|
|
||||||
set cmdheight=2
|
|
||||||
|
|
||||||
set shortmess+=c
|
set shortmess+=c
|
||||||
|
|
||||||
" yank delete change and put operations go by default in `"+` register
|
|
||||||
" so in the systems clipboard accessable by CTRL-V on all OS types
|
|
||||||
if has('mac')
|
|
||||||
set clipboard^=unnamed
|
|
||||||
else
|
|
||||||
set clipboard^=unnamedplus
|
|
||||||
endif
|
|
||||||
|
|
||||||
" set ignorecase
|
" set ignorecase
|
||||||
set infercase
|
set infercase
|
||||||
@@ -65,162 +61,171 @@ set showmatch
|
|||||||
set spellcapcheck=
|
set spellcapcheck=
|
||||||
set complete+=kspell
|
set complete+=kspell
|
||||||
|
|
||||||
let mapleader=" "
|
if has('vim_starting')
|
||||||
let maplocalleader=" "
|
let g:mapleader="\<Space>"
|
||||||
|
let g:maplocalleader=";"
|
||||||
|
|
||||||
|
nnoremap <Space> <Nop>
|
||||||
|
xnoremap <Space> <Nop>
|
||||||
|
nnoremap , <Nop>
|
||||||
|
xnoremap , <Nop>
|
||||||
|
nnoremap ; <Nop>
|
||||||
|
xnoremap ; <Nop>
|
||||||
|
endif
|
||||||
|
|
||||||
" netrw
|
" netrw
|
||||||
|
let g:netrw_fastbrowse = 0
|
||||||
let g:netrw_banner = 0
|
let g:netrw_banner = 0
|
||||||
let g:netrw_liststyle = 3
|
|
||||||
let g:netrw_browse_split = 3
|
|
||||||
" sort is affecting only: directories on the top, files below
|
" sort is affecting only: directories on the top, files below
|
||||||
let g:netrw_sort_sequence = '[\/]$,*'
|
let g:netrw_sort_sequence = '[\/]$,*'
|
||||||
|
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
" Plugins {{{
|
" Plugins {{{
|
||||||
call plug#begin('~/.vim/plugged')
|
call plug#begin(has('nvim') ? stdpath('data') . '/plugged' : '~/.vim/plugged')
|
||||||
|
|
||||||
|
|
||||||
Plug 'tpope/vim-sensible'
|
Plug 'tpope/vim-sensible'
|
||||||
Plug 'tpope/vim-unimpaired'
|
Plug 'tpope/vim-unimpaired'
|
||||||
Plug 'tpope/vim-surround'
|
Plug 'tpope/vim-surround'
|
||||||
Plug 'tpope/vim-abolish'
|
Plug 'tpope/vim-abolish'
|
||||||
|
Plug 'tpope/vim-vinegar'
|
||||||
|
Plug 'tpope/vim-projectionist'
|
||||||
Plug 'tpope/vim-fugitive'
|
Plug 'tpope/vim-fugitive'
|
||||||
Plug 'tpope/vim-rhubarb'
|
|
||||||
Plug 'airblade/vim-gitgutter'
|
|
||||||
|
|
||||||
Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' }
|
Plug 'andymass/vim-matchup'
|
||||||
Plug 'junegunn/fzf.vim'
|
|
||||||
nnoremap <leader>b :Buffers<cr>
|
|
||||||
nnoremap <leader>f :GFiles<cr>
|
|
||||||
nnoremap <leader>F :Files<cr>
|
|
||||||
nnoremap <leader>c :Commits<cr>
|
|
||||||
nnoremap <leader>w :Windows<cr>
|
|
||||||
nnoremap <leader>m :Maps<cr>
|
|
||||||
nnoremap <leader>h :Helptags<cr>
|
|
||||||
nnoremap <leader>/ :Rg<cr>
|
|
||||||
nnoremap <leader>* :Rg <C-r><C-a><cr>
|
|
||||||
nnoremap <leader>C :Commands<cr>
|
|
||||||
|
|
||||||
Plug 'junegunn/vim-peekaboo'
|
|
||||||
Plug 'machakann/vim-highlightedyank'
|
Plug 'machakann/vim-highlightedyank'
|
||||||
|
|
||||||
Plug 'editorconfig/editorconfig-vim'
|
Plug 'editorconfig/editorconfig-vim'
|
||||||
let g:EditorConfig_exclude_patterns = ['fugitive://.*', 'scp://.*']
|
let g:EditorConfig_exclude_patterns = ['fugitive://.*', 'scp://.*']
|
||||||
|
|
||||||
Plug 'tpope/vim-projectionist'
|
|
||||||
|
|
||||||
Plug 'mbbill/undotree'
|
Plug 'mbbill/undotree'
|
||||||
nnoremap <leader>u :UndotreeToggle<cr>
|
|
||||||
|
|
||||||
Plug 'neoclide/coc.nvim', {'branch': 'release'}
|
|
||||||
" Remap keys for gotos
|
|
||||||
nmap <silent> gd <Plug>(coc-definition)
|
|
||||||
nmap <silent> gy <Plug>(coc-type-definition)
|
|
||||||
nmap <silent> gi <Plug>(coc-implementation)
|
|
||||||
nmap <silent> gr <Plug>(coc-references)
|
|
||||||
|
|
||||||
" Use `[d` and `]d` to navigate diagnostics
|
|
||||||
nmap <silent> [d <Plug>(coc-diagnostic-prev)
|
|
||||||
nmap <silent> ]d <Plug>(coc-diagnostic-next)
|
|
||||||
" Remap for rename current word
|
|
||||||
nmap <leader>rn <Plug>(coc-rename)
|
|
||||||
" Remap for do codeAction of current line
|
|
||||||
nmap <leader>ac <Plug>(coc-codeaction)
|
|
||||||
" Applying codeAction to the selected region.
|
|
||||||
" Example: `<leader>aap` for current paragraph
|
|
||||||
xmap <leader>a <Plug>(coc-codeaction-selected)
|
|
||||||
nmap <leader>a <Plug>(coc-codeaction-selected)
|
|
||||||
" Fix autofix problem of current line
|
|
||||||
nmap <leader>qf <Plug>(coc-fix-current)
|
|
||||||
" Use <c-space> to trigger completion.
|
|
||||||
if has('nvim')
|
|
||||||
inoremap <silent><expr> <c-space> coc#refresh()
|
|
||||||
else
|
|
||||||
inoremap <silent><expr> <c-@> coc#refresh()
|
|
||||||
endif
|
|
||||||
|
|
||||||
" Make <CR> auto-select the first completion item and notify coc.nvim to
|
|
||||||
" format on enter, <cr> could be remapped by other vim plugin
|
|
||||||
inoremap <silent><expr> <cr> pumvisible() ? coc#_select_confirm()
|
|
||||||
\: "\<C-g>u\<CR>\<c-r>=coc#on_enter()\<CR>"
|
|
||||||
|
|
||||||
" Use K to show documentation in preview window.
|
|
||||||
nnoremap <silent> K :call <SID>show_documentation()<CR>
|
|
||||||
|
|
||||||
function! s:show_documentation()
|
|
||||||
if (index(['vim','help'], &filetype) >= 0)
|
|
||||||
execute 'h '.expand('<cword>')
|
|
||||||
elseif (coc#rpc#ready())
|
|
||||||
call CocActionAsync('doHover')
|
|
||||||
else
|
|
||||||
execute '!' . &keywordprg . " " . expand('<cword>')
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Formatting selected code.
|
|
||||||
xmap <leader>cf <Plug>(coc-format-selected)
|
|
||||||
nmap <leader>cf <Plug>(coc-format-selected)
|
|
||||||
|
|
||||||
Plug 'itchyny/lightline.vim'
|
|
||||||
if filereadable(expand("~/.vim/lightline.vim"))
|
|
||||||
source ~/.vim/lightline.vim
|
|
||||||
endif
|
|
||||||
|
|
||||||
function! LightlineReload()
|
|
||||||
call lightline#init()
|
|
||||||
call lightline#colorscheme()
|
|
||||||
call lightline#update()
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
Plug 'lifepillar/vim-gruvbox8'
|
|
||||||
|
|
||||||
|
" TODO snippets https://www.lunarvim.org/plugins/02-default-plugins.html#snippets
|
||||||
Plug 'SirVer/ultisnips'
|
Plug 'SirVer/ultisnips'
|
||||||
let g:UltiSnipsExpandTrigger="<S-Tab>"
|
|
||||||
let g:UltiSnipsJumpForwardTrigger="<c-k>"
|
|
||||||
let g:UltiSnipsJumpBackwardTrigger="<c-j>"
|
|
||||||
|
|
||||||
Plug 'pangloss/vim-javascript'
|
" Plug 'pangloss/vim-javascript'
|
||||||
Plug 'MaxMEllon/vim-jsx-pretty'
|
" Plug 'MaxMEllon/vim-jsx-pretty'
|
||||||
|
|
||||||
Plug 'sheerun/vim-polyglot'
|
" Plug 'sheerun/vim-polyglot'
|
||||||
let g:polyglot_disabled = ['javascript', 'jsx', 'latex']
|
" let g:polyglot_disabled = ['javascript', 'jsx', 'latex']
|
||||||
|
|
||||||
Plug 'lervag/vimtex', { 'for': 'tex' }
|
" Plug 'lervag/vimtex', { 'for': 'tex' }
|
||||||
let g:vimtex_view_method = 'zathura'
|
" let g:vimtex_view_method = 'zathura'
|
||||||
|
|
||||||
Plug 'wellle/targets.vim'
|
Plug 'wellle/targets.vim'
|
||||||
|
|
||||||
Plug 'janko-m/vim-test'
|
Plug 'janko-m/vim-test'
|
||||||
nmap <silent> <leader>t :TestNearest<CR>
|
|
||||||
nmap <silent> <leader>T :TestFile<CR>
|
|
||||||
let test#strategy = "neovim"
|
let test#strategy = "neovim"
|
||||||
|
|
||||||
" vim 8 plugins
|
" Plug 'ludovicchabant/vim-gutentags'
|
||||||
" if v:version >= 800
|
" let g:gutentags_cache_dir="~/.tags"
|
||||||
" Plug 'ludovicchabant/vim-gutentags'
|
" let g:gutentags_file_list_command = {
|
||||||
" let g:gutentags_cache_dir="~/.tags"
|
" \ 'markers': {
|
||||||
" let g:gutentags_file_list_command = {
|
" \ '.git': 'git ls-files',
|
||||||
" \ 'markers': {
|
" \ '.hg': 'hg files',
|
||||||
" \ '.git': 'git ls-files',
|
" \ },
|
||||||
" \ '.hg': 'hg files',
|
" \ }
|
||||||
" \ },
|
|
||||||
" \ }
|
|
||||||
" endif
|
|
||||||
|
|
||||||
Plug 'preservim/nerdtree'
|
|
||||||
nmap <silent> <leader>n :NERDTreeToggle<CR>
|
|
||||||
nmap <silent> <leader>N :NERDTreeFind<CR>
|
|
||||||
|
|
||||||
Plug 'ap/vim-css-color'
|
Plug 'ap/vim-css-color'
|
||||||
|
|
||||||
Plug 'godlygeek/tabular'
|
Plug 'godlygeek/tabular'
|
||||||
Plug 'plasticboy/vim-markdown'
|
Plug 'plasticboy/vim-markdown'
|
||||||
|
Plug 'iamcco/markdown-preview.nvim', { 'do': 'cd app && yarn install' }
|
||||||
|
|
||||||
|
" Lua Plugins
|
||||||
|
Plug 'RRethy/nvim-base16'
|
||||||
|
|
||||||
|
Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
|
||||||
|
|
||||||
|
Plug 'neovim/nvim-lspconfig'
|
||||||
|
Plug 'jose-elias-alvarez/null-ls.nvim'
|
||||||
|
Plug 'kabouzeid/nvim-lspinstall'
|
||||||
|
"Plug 'tamago324/nlsp-settings.nvim'
|
||||||
|
Plug 'folke/trouble.nvim'
|
||||||
|
|
||||||
|
Plug 'kyazdani42/nvim-web-devicons' " for file icons
|
||||||
|
Plug 'kyazdani42/nvim-tree.lua'
|
||||||
|
|
||||||
|
Plug 'ahmedkhalf/project.nvim'
|
||||||
|
|
||||||
|
Plug 'nvim-lua/plenary.nvim'
|
||||||
|
Plug 'nvim-telescope/telescope.nvim'
|
||||||
|
nnoremap <leader>f :Telescope find_files<cr>
|
||||||
|
|
||||||
|
Plug 'lewis6991/gitsigns.nvim'
|
||||||
|
Plug 'windwp/nvim-autopairs'
|
||||||
|
|
||||||
|
Plug 'folke/which-key.nvim'
|
||||||
|
|
||||||
|
" TODO compnletion https://github.com/hrsh7th/nvim-cmp
|
||||||
|
|
||||||
|
Plug 'hoob3rt/lualine.nvim'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
" debug
|
" debug
|
||||||
Plug 'tweekmonster/startuptime.vim'
|
" Plug 'tweekmonster/startuptime.vim'
|
||||||
|
|
||||||
call plug#end()
|
call plug#end()
|
||||||
|
|
||||||
|
lua << EOF
|
||||||
|
require('nvim-treesitter.configs').setup{
|
||||||
|
hightlight = { enabled = true },
|
||||||
|
incremental_selection = { enable = false },
|
||||||
|
ensure_installed = {'javascript'}
|
||||||
|
}
|
||||||
|
|
||||||
|
require("null-ls").config({ })
|
||||||
|
require("lspconfig")["null-ls"].setup({ })
|
||||||
|
require('lspinstall').setup{}
|
||||||
|
local servers = require('lspinstall').installed_servers()
|
||||||
|
for _, server in pairs(servers) do
|
||||||
|
require'lspconfig'[server].setup{}
|
||||||
|
end
|
||||||
|
|
||||||
|
require("trouble").setup{}
|
||||||
|
|
||||||
|
require'nvim-web-devicons'.setup{}
|
||||||
|
require('nvim-tree').setup{}
|
||||||
|
|
||||||
|
require('project_nvim').setup{}
|
||||||
|
|
||||||
|
require('telescope').setup{}
|
||||||
|
-- require('telescope').load_extension('projects')
|
||||||
|
|
||||||
|
require('gitsigns').setup{}
|
||||||
|
|
||||||
|
require('nvim-autopairs').setup{}
|
||||||
|
|
||||||
|
local wk = require('which-key')
|
||||||
|
wk.setup()
|
||||||
|
wk.register({
|
||||||
|
c = {"<cmd>bd<cr>", "close"},
|
||||||
|
s = "save",
|
||||||
|
h = "gitsigns",
|
||||||
|
f ={
|
||||||
|
name = "file",
|
||||||
|
f = { "<cmd>Telescope find_files<cr>", "Find File" },
|
||||||
|
r = { "<cmd>Telescope oldfiles<cr>", "Open Recent File" },
|
||||||
|
c = { "<cmd>e $MYVIMRC<cr>", "Open config" },
|
||||||
|
},
|
||||||
|
g = {
|
||||||
|
name = "git",
|
||||||
|
g = {"<cmd>Git<cr>", "fugitive"}
|
||||||
|
},
|
||||||
|
t = {
|
||||||
|
name = "test",
|
||||||
|
n = {"<cmd>TestNearest<cr>", "Test Nearest"},
|
||||||
|
f = {"<cmd>TestFile<cr>", "Test File"},
|
||||||
|
l = {"<cmd>TestLast<cr>", "Test Last"},
|
||||||
|
}
|
||||||
|
}, { prefix = "<leader>"})
|
||||||
|
|
||||||
|
require('lualine').setup{ theme = 'gruvbox'}
|
||||||
|
EOF
|
||||||
|
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
" Local .vimrc {{{
|
" Local .vimrc {{{
|
||||||
@@ -261,7 +266,7 @@ set diffopt+=iwhite
|
|||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
" {{{ Undo
|
" {{{ Undo
|
||||||
set undodir=~/.vim/undos,/tmp
|
set undodir=$VIM_DATA_PATH/undos
|
||||||
set undofile
|
set undofile
|
||||||
set undolevels=1000
|
set undolevels=1000
|
||||||
set undoreload=10000
|
set undoreload=10000
|
||||||
@@ -271,50 +276,17 @@ set undoreload=10000
|
|||||||
"
|
"
|
||||||
set cursorline
|
set cursorline
|
||||||
set background=dark
|
set background=dark
|
||||||
colorscheme gruvbox8
|
colorscheme base16-gruvbox-dark-medium
|
||||||
|
|
||||||
set number
|
set number
|
||||||
" }}}
|
|
||||||
|
|
||||||
" GUI Settings {{{
|
|
||||||
if has("gui_running")
|
|
||||||
"disable menu, toolsbar, scrollbar
|
|
||||||
set guioptions -=m
|
|
||||||
set guioptions -=T
|
|
||||||
set guioptions -=r
|
|
||||||
endif
|
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
" Key mappings {{{
|
" Key mappings {{{
|
||||||
|
|
||||||
"" fast escaping
|
"" fast escaping
|
||||||
inoremap jk <ESC>
|
inoremap jk <ESC>
|
||||||
|
"" toggle fold
|
||||||
"" delete buffer (and keep split)
|
nnoremap <cr> za
|
||||||
noremap <leader>d :bp\|bd #<cr>
|
|
||||||
|
|
||||||
"" indent visual selected code without unselecting and going back to normal mode
|
|
||||||
vnoremap > >gv
|
|
||||||
vnoremap < <gv
|
|
||||||
|
|
||||||
"" Visually select the text that was last edited/pasted
|
|
||||||
nnoremap gV `[v`]
|
|
||||||
|
|
||||||
"" session management (https://dockyard.com/blog/2018/06/01/simple-vim-session-management-part-1)
|
|
||||||
let g:sessions_dir = '~/.vim/sessions'
|
|
||||||
exec 'nnoremap <Leader>ss :mks! ' . g:sessions_dir . '/*.vim<C-D><BS><BS><BS><BS><BS>'
|
|
||||||
exec 'nnoremap <Leader>sr :so ' . g:sessions_dir. '/*.vim<C-D><BS><BS><BS><BS><BS>'
|
|
||||||
|
|
||||||
"" fast editing of config
|
|
||||||
nnoremap <silent> <leader>ev :e $MYVIMRC<cr>
|
|
||||||
|
|
||||||
"" cheatsheet
|
|
||||||
nnoremap <silent> <leader>ec :e ~/.vim/cheatsheet.md<cr>
|
|
||||||
|
|
||||||
" debugging, use leader-DD to start, do a slow action, then leader-DQ to
|
|
||||||
" finish. Your output will be in profile.log
|
|
||||||
nnoremap <silent> <leader>DD :exe ":profile start profile.log"<cr>:exe ":profile func *"<cr>:exe ":profile file *"<cr>
|
|
||||||
nnoremap <silent> <leader>DQ :exe ":profile pause"<cr>:noautocmd qall!<cr>
|
|
||||||
|
|
||||||
"" abbreviations
|
"" abbreviations
|
||||||
cnoreabbrev W! w!
|
cnoreabbrev W! w!
|
||||||
@@ -327,56 +299,7 @@ cnoreabbrev WQ wq
|
|||||||
cnoreabbrev W w
|
cnoreabbrev W w
|
||||||
cnoreabbrev Q q
|
cnoreabbrev Q q
|
||||||
cnoreabbrev Qall qall
|
cnoreabbrev Qall qall
|
||||||
|
cnoreabbrev csfr csrf
|
||||||
iab xnow <c-r>=strftime("%Y-%m-%d %H:%M")<cr>
|
|
||||||
" }}}
|
|
||||||
|
|
||||||
" Autocmd Rules {{{
|
|
||||||
|
|
||||||
augroup general
|
|
||||||
autocmd!
|
|
||||||
"" do syntax highlight syncing from start
|
|
||||||
autocmd BufEnter * :syntax sync fromstart
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
"" txt, mail, tex
|
|
||||||
augroup text
|
|
||||||
autocmd!
|
|
||||||
autocmd FileType text,markdown,mail,tex set wrap wm=2 nocindent spell textwidth=79
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
augroup markdown
|
|
||||||
autocmd!
|
|
||||||
autocmd FileType markdown set wrap wm=2 nocindent spell textwidth=79
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
"" Web
|
|
||||||
augroup web
|
|
||||||
autocmd!
|
|
||||||
autocmd FileType javascript map <leader>r <esc>:TernRename<CR>
|
|
||||||
autocmd BufRead,BufNewFile *.template set filetype=html.mustache syntax=mustache
|
|
||||||
autocmd BufRead,BufNewFile *.html set spell
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
"" Help
|
|
||||||
augroup HelpInTabs
|
|
||||||
autocmd!
|
|
||||||
autocmd BufEnter *.txt call HelpInNewTab()
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
"Only apply to help files...
|
|
||||||
function! HelpInNewTab ()
|
|
||||||
if &buftype == 'help'
|
|
||||||
"Convert the help window to a tab...
|
|
||||||
execute "normal \<C-W>T"
|
|
||||||
endif
|
|
||||||
endfunction
|
|
||||||
|
|
||||||
" Reloading vim
|
|
||||||
augroup VimReload
|
|
||||||
autocmd!
|
|
||||||
autocmd BufWritePost $MYVIMRC source $MYVIMRC | call LightlineReload()
|
|
||||||
augroup END
|
|
||||||
|
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user