From bac7296bb38bb46b51e4fd70c5fe234f2a58d553 Mon Sep 17 00:00:00 2001 From: Marc Vertes Date: Tue, 21 Jan 2025 08:31:56 +0100 Subject: fix for multiple platform --- .vimrc | 146 +++++++++++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 111 insertions(+), 35 deletions(-) (limited to '.vimrc') diff --git a/.vimrc b/.vimrc index f8fce87..6f6f664 100644 --- a/.vimrc +++ b/.vimrc @@ -1,55 +1,62 @@ +" General vim defaults " set background= -set t_te= t_ti= laststatus=2 - +" set t_te= t_ti= +set ls=1 ruler +set ai ts=4 sw=4 noet +" Not a good idea to activate mouse, as it disables cut & paste in MacOS +"set mouse=a syntax off filetype on filetype plugin on filetype plugin indent on let mapleader = "," +" Save all files at the same place +set backupdir=~/.vim/backup// +set directory=~/.vim/backup// +set undodir=~/.vim/backup// +set undofile +set backup + +" set autochdir + +" ignore case when searching, except mixing upper and lower +set ignorecase +set smartcase + +" No bell +set belloff=all + +" For MacVim +set guifont=6x13:h13 + +" fzf plugin +set rtp+=/opt/homebrew/opt/fzf let g:fzf_preview = 'cat {}' +" set grepprg=rg\ --vimgrep\ --smart-case\ --hidden\ --follow + +" nnoremap \ :Rg +" nnoremap :Files +nnoremap b :Buffers +nnoremap s :Blines + " vimki plugin -let g:vimki_lower = "a-zàçéèêếëîïñôöùûü" autocmd filetype vimki syntax on autocmd filetype vimki set autowrite -autocmd filetype vimki setlocal spell spelllang=fr +" autocmd filetype vimki setlocal spell spelllang=fr autocmd filetype vimki nmap z :FZF ~/Wiki +" autocmd filetype markdown,text,vimki setlocal textwidth=72 -autocmd filetype vimki nnoremap = YpVr= -autocmd filetype vimki nnoremap - YpVr- - -" vim-go plugin -let g:go_def_mode = "gopls" -let g:go_info_mode = "gopls" -let g:go_list_type = "quickfix" -let g:go_fmt_command = "goimports" -let g:go_metalinter_command = "golangci-lint" -autocmd FileType go syntax on -autocmd FileType go nmap b (go-build) -autocmd FileType go nmap i (go-info) -autocmd FileType go nmap r (go-run) -autocmd FileType go nmap t (go-test) -autocmd FileType go nmap f (go-test-func) -autocmd FileType go nmap v (go-referrers) -autocmd FileType go nmap n :cnext -autocmd FileType go nmap p :cprevious -autocmd FileType go nmap a :cclose autocmd BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4 let g:netrw_browsex_viewer = "open" let g:netrw_gx = "" let g:netrw_banner = 0 -autocmd filetype javascript,html,json,yaml set ts=2 sts=2 sw=2 et +" python and yaml formatting: +" autocmd filetype python,yaml set ts=2 sts=2 sw=2 et -" :set wm=2 linebreak -" :set term=ansi -":set modeline -":set modelines=5 -set autoindent -"set breakindent -" :set ts=2 sw=2 sts=2 et :set wrap :set linebreak :set nolist @@ -59,13 +66,15 @@ set autoindent " noremap :!cscope -7 " Paragraph format / unformat -noremap f !}fmt -noremap F !}fmt -c -w 2048 +" An alternate way is to use "gqip" to format. +" noremap f !}fmt -72 -s -p +" noremap F !}fmt -c -w 2048 +noremap f gqip " noremap K :s,^,//, " noremap :s,^//,, -noremap # :s,^,#, -noremap @ :s,^#,, +" noremap # :s,^,#, +" noremap @ :s,^#,, "hi MatchParen term=reverse ctermbg=magenta ctermfg=none " hi MatchParen cterm=reverse term=reverse ctermfg=white " @@ -79,3 +88,70 @@ noremap n :bn noremap :bd noremap o :!open & noremap :tag +noremap :Files + +" MacOS: Open QuickLook on current file (for markdown preview mainly) +noremap w :!ql % + +function! CloseOnLast() +let cnt = 0 +for i in range(0, bufnr("$")) +if buflisted(i) + let cnt += 1 + endif +endfor + if cnt <= 1 + q +else + bd +endif +endfunction + +noremap :call CloseOnLast() + +" vim-lsp settings +let g:lsp_diagnostics_enabled = 0 +let g:lsp_document_code_action_signs_enabled = 0 +let g:lsp_document_highlight_enabled = 0 + +if executable('gopls') + au User lsp_setup call lsp#register_server({ + \ 'name': 'gopls', + \ 'cmd': {server_info->['gopls', '-remote=auto']}, + \ 'allowlist': ['go', 'gomod', 'gohtmltmpl', 'gotexttmpl'], + \ }) + autocmd BufWritePre *.go + \ call execute('LspDocumentFormatSync') | + \ call execute('LspCodeActionSync source.organizeImports') +endif + +if executable('clangd') + au User lsp_setup call lsp#register_server({ + \ 'name': 'clangd', + \ 'cmd': {server_info->['clangd', '-background-index']}, + \ 'whitelist': ['c', 'cpp', 'objc', 'objcpp'], + \ }) +endif + +function! s:on_lsp_buffer_enabled() abort + setlocal omnifunc=lsp#complete + if exists('+tagfunc') | setlocal tagfunc=lsp#tagfunc | endif + nmap gd (lsp-definition) + nmap gs (lsp-document-symbol-search) + nmap gS (lsp-workspace-symbol-search) + nmap gr (lsp-references) + nmap gi (lsp-implementation) + nmap gt (lsp-type-definition) + nmap rn (lsp-rename) + nmap [g (lsp-previous-diagnostic) + nmap ]g (lsp-next-diagnostic) + nmap K (lsp-hover) +endfunction + +augroup lsp_install + au! + autocmd User lsp_buffer_enabled call s:on_lsp_buffer_enabled() +augroup END + +" Git blame +command! Blame normal!:let @a=expand('%'):let @b=line('.'):new:set bt=nofile:%!git blame -wM --date=short a:b -- cgit v1.2.3