Edit page vimrc
authorbernie <bernie@192.31.242.194>
Mon, 1 Aug 2022 04:35:31 +0000 (00:35 -0400)
committerGeekiGeeki <webmaster@codewiz.org>
Mon, 1 Aug 2022 04:35:31 +0000 (00:35 -0400)
vimrc [new file with mode: 0644]

diff --git a/vimrc b/vimrc
new file mode 100644 (file)
index 0000000..3d0e348
--- /dev/null
+++ b/vimrc
@@ -0,0 +1,312 @@
+" Copyright 2004, 2005, 2008 Develer S.r.l. (http://www.develer.com/)
+" Copyright 2009-2022 Bernie Innocenti <bernie@codewiz.org>
+"
+" Author: Bernie Innocenti <bernie@codewiz.org>
+" Author: Simone Zinanni <s.zinanni@develer.com>
+" Author: Stefano Fedrigo <aleph@develer.com>
+" Author: Daniele Varrazzo <piro@develer.com>
+"
+" note: to reload this file after a change, use ':so %'
+
+set nocompatible        " Use Vim defaults (much better!)
+set bs=indent,eol,start " allow backspacing over everything in insert mode
+set history=1000
+set ruler               " show the cursor position all the time
+set laststatus=2        " Always show the status line at the bottom (neovim)
+set clipboard+=unnamed,unnamedplus
+
+augroup fedora
+  autocmd!
+  " In text files, always limit the width of text to 78 characters
+  autocmd BufRead *.txt set tw=78
+  " When editing a file, always jump to the last cursor position
+  autocmd BufReadPost *
+  \ if line("'\"") > 0 && line ("'\"") <= line("$") |
+  \   exe "normal! g'\"" |
+  \ endif
+  " don't write swapfile on most commonly used directories for NFS mounts or USB sticks
+  autocmd BufNewFile,BufReadPre /media/*,/run/media/*,/mnt/* set directory=~/tmp,/var/tmp,/tmp
+  " start with spec file template
+  autocmd BufNewFile *.spec 0r /usr/share/vim/vimfiles/template.spec
+augroup END
+
+" Switch syntax highlighting on, when the terminal has colors
+" Also switch on highlighting the last used search pattern.
+if &t_Co > 2 || has("gui_running")
+  syntax on
+  " bernie: hilighting long lines is very slow
+  set synmaxcol=320
+  set hlsearch
+  set incsearch
+  set background=dark
+
+  " bernie: Show matching parenthesis when writing
+  set showmatch
+  " bernie: add bottom horizontal scroll bar
+  set guioptions+=b
+  " aleph: remove useless luser toolbar
+  set guioptions-=T
+
+  " highlighting for embedded LUA in nvim
+  let g:vimsyn_embed='l'
+
+  " bernie: highlight cursor line
+  set cursorline
+  set colorcolumn=+1
+
+  " Limit modern terminal stuff to known-good terminals
+  if has("gui_running") || $KONSOLE_VERSION != '' || $VTE_VERSION != '' || $XTERM_VERSION != '' || $WEZTERM_EXECUTABLE != ''
+    if has('termguicolors')
+      set termguicolors
+    endif
+    colorscheme darkblue
+
+    highlight Normal ctermfg=248 ctermbg=NONE guibg=#000818 guifg=#eeeeee
+    highlight Visual                          guibg=fg      guifg=#4040d0 gui=reverse
+
+    " Make the splits look pretty
+    highlight VertSplit guibg=#001111 guifg=#224422
+
+    " bernie: blinky cursor!
+    " let &guicursor = &guicursor . ',a:blinkwait175-blinkoff10-blinkon20'
+
+    " Enable spelling for comments in various languates
+    " bernie: don't enable by default because has too many false positives
+    "autocmd FileType c,cpp,java,python,rust,vim,text  set spell
+  endif
+
+  " Make the wrap column and cursor line more discrete
+  highlight CursorLine   term=NONE cterm=NONE ctermbg=233 guibg=#001133
+  highlight CursorColumn term=NONE cterm=NONE ctermbg=233 guibg=#000820
+  highlight ColorColumn  term=NONE cterm=NONE ctermbg=233 guibg=#200818
+
+  " The autocomplete menu
+  highlight Pmenu       ctermfg=250    ctermbg=240 guifg=#ABB2BF guibg=#282C34
+  highlight PmenuSel    ctermfg=253    ctermbg=245 guifg=#353B45 guibg=#A3BE8C
+  highlight PmenuSbar   ctermbg=248                              guibg=#353b45
+  highlight PmenuThumb  ctermbg=15                               guibg=#81A1C1
+
+  highlight! CmpItemAbbrDeprecated guibg=NONE gui=strikethrough guifg=#808080
+  highlight! CmpItemAbbrMatch guibg=NONE guifg=#569CD6
+  highlight! CmpItemAbbrMatchFuzzy guibg=NONE guifg=#569CD6
+  highlight! CmpItemKindVariable guibg=NONE guifg=#9CDCFE
+  highlight! CmpItemKindInterface guibg=NONE guifg=#9CDCFE
+  highlight! CmpItemKindText guibg=NONE guifg=#9CDCFE
+  highlight! CmpItemKindFunction guibg=NONE guifg=#C586C0
+  highlight! CmpItemKindMethod guibg=NONE guifg=#C586C0
+  highlight! CmpItemKindKeyword guibg=NONE guifg=#D4D4D4
+  highlight! CmpItemKindProperty guibg=NONE guifg=#D4D4D4
+  highlight! CmpItemKindUnit guibg=NONE guifg=#D4D4D4
+
+  highlight DiagnosticVirtualTextHint guifg=#444444
+  highlight DiagnosticVirtualTextWarn guifg=#884400
+  highlight DiagnosticVirtualTextError guifg=#880000
+  highlight DiagnosticUnderlineHint gui=NONE
+  highlight DiagnosticUnderlineWarn cterm=undercurl ctermfg=Brown gui=undercurl guisp=#884400
+  highlight DiagnosticUnderlineError cterm=undercurl ctermfg=Red gui=undercurl guisp=#880000
+
+  sign define DiagnosticSignError text= linehl= texthl=DiagnosticSignError numhl=
+  sign define DiagnosticSignWarn text= linehl= texthl=DiagnosticSignWarn numhl=
+  sign define DiagnosticSignInfo text= linehl= texthl=DiagnosticSignInfo numhl=
+  sign define DiagnosticSignHint text=? linehl= texthl=DiagnosticSignHint numhl=
+  autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {scope = "line", focus = false})
+
+  " Undercurl speling erors in terminal and gui
+  " let &t_Cs = "\e[4:3m"
+  " let &t_Ce = "\e[4:0m"
+  highlight SpellBad   term=NONE cterm=undercurl ctermfg=Red    ctermbg=NONE guifg=NONE gui=undercurl guisp=Red
+  highlight SpellCap   term=NONE cterm=undercurl ctermfg=Yellow ctermbg=NONE guifg=NONE gui=undercurl guisp=Yellow
+  highlight SpellRare  term=NONE cterm=undercurl ctermfg=Blue   ctermbg=NONE guifg=NONE gui=undercurl guisp=Blue
+  highlight SpellLocal term=NONE cterm=undercurl ctermfg=Brown  ctermbg=NONE guifg=NONE gui=undercurl guisp=Brown
+
+  " Highlight extra whitespace in various languages
+  autocmd FileType c,cpp,rust highlight ExtraWhitespace ctermbg=DarkRed guibg=DarkRed
+endif
+
+" bernie: insensitive search
+set ignorecase
+" aleph: if pattern contains uppercase chars, the search is case _sensitive_
+set smartcase
+
+" bernie: horizontal and vertical scrolling
+set nowrap
+set sidescroll=1
+set sidescrolloff=3
+set scrolloff=3
+set listchars+=extends:»,precedes:«,trail:-,nbsp:_,tab:\|_
+" set fillchars+=vert:\▏
+set wildmenu
+
+" piro: fix broken Page Up/Down
+" http://vimrc-dissection.blogspot.com/2009/02/fixing-pageup-and-pagedown.html
+map <silent> <PageUp> 1000<C-U>
+map <silent> <PageDown> 1000<C-D>
+imap <silent> <PageUp> <C-O>1000<C-U>
+imap <silent> <PageDown> <C-O>1000<C-D>
+set nostartofline
+
+" bernie: enter in directory browser open files in previous window
+" let g:netrw_browse_split=4
+
+" bernie: write on :n, :r, etc.
+set autowriteall
+
+" aleph: dont't break softlinks (edit destination file), but break hardlinks
+set backupcopy=yes,breakhardlink
+
+" bernie: mouse everywhere!
+if has("mouse")
+  set mouse=a
+  if !has('nvim')
+    set ttymouse=xterm2
+  endif
+endif
+
+" bernie: do not create swap files all over the place
+set directory-=.
+
+" bernie: enable persistent undo
+"if has('persistent_undo')
+"  let &undodir=&directory
+"  set undofile
+"endif
+
+" aleph: per non rompere le p*** a chi sta attorno ogni volta che si sbaglia tasto
+set visualbell
+" aleph: riduce al minimo la dimensione dei buffer non attivi
+set winminheight=0
+" aleph: dopo split e close gli altri buffer non si ridimensionano
+set noequalalways
+" show (partial) command in status line
+set showcmd
+
+" bernie: status line
+set statusline=%<%f%h%m%r%=%b\ 0x%B\ \ %l,%c%V\ %P
+
+" informs sh syntax that /bin/sh is actually bash
+let is_bash=1
+
+" bernie: enable loading filetype specific plugins and indendation modes
+filetype plugin indent on
+set smarttab
+set matchpairs+=<:>
+set shiftround
+set shiftwidth=0  " 0 means same as ts
+
+" bernie: set default indents for various languages
+autocmd FileType c,cpp                  set ts=4|set expandtab|let c_space_errors=1
+autocmd FileType java                   set ts=4|set expandtab|let java_space_errors=1|let java_highlight_functions=1
+autocmd FileType rust                   set ts=4|set expandtab
+autocmd FileType python                 set ts=4|set expandtab
+autocmd FileType go,lua                 set ts=2|set expandtab
+autocmd FileType html,css               set ts=2|set expandtab
+autocmd FileType javascript,typescript  set ts=2|set expandtab
+autocmd FileType vim                    set ts=2|set expandtab
+
+" bernie: auxiliary named config files
+au BufNewFile,BufRead named.conf.*,named-*.conf setf named
+
+" piro: treat arduino projects as C++ files.
+autocmd BufRead *.pde set filetype=cpp
+
+" bernie: bind '#' to 'grep word under cursor' -- see: http://vim.wikia.com/wiki/Find_in_files_within_Vim
+:map # :execute "vimgrep /" . expand("<cword>") . "/j **" <Bar> cw<CR>
+
+" bernie: search for highlighted text -- see: http://rayninfo.co.uk/vimtips.html
+:vmap // y/<C-R>"<CR>
+
+" piro: no, I don't want your fucking help!
+inoremap <F1> <ESC>
+nnoremap <F1> <ESC>
+vnoremap <F1> <ESC>
+
+" what's ; for anyway?
+noremap ; :
+
+" w!! if you forget to sudo before saving
+cmap w!! w !sudo tee % >/dev/null
+
+" Repeat last command and put cursor at start of change -- http://vim.wikia.com/wiki/VimTip1142
+map . .`[
+
+" Go back to previous file
+map <C-p> <esc>:bp<CR>
+
+" bernie: see http://www.vim.org/scripts/script.php?script_id=3896
+map <F2> :Bufferlist<CR>
+
+" bernie: ex mode is useless and annoying
+map Q <Nop>
+
+" bernie: http://vim.wikia.com/wiki/Edit_gpg_encrypted_files#Comments
+augroup encrypted
+  au!
+  " Disable swap files, and set binary file format before reading the file
+  autocmd BufReadPre,FileReadPre *.gpg
+    \ setlocal noswapfile bin
+  " Decrypt the contents after reading the file, reset binary file format
+  " and run any BufReadPost autocmds matching the file name without the .gpg
+  " extension
+  autocmd BufReadPost,FileReadPost *.gpg
+    \ execute "'[,']!gpg --decrypt --default-recipient-self" |
+    \ setlocal nobin |
+    \ execute "doautocmd BufReadPost " . expand("%:r")
+  " Set binary file format and encrypt the contents before writing the file
+  autocmd BufWritePre,FileWritePre *.gpg
+    \ setlocal bin |
+    \ '[,']!gpg --encrypt --default-recipient-self
+  " After writing the file, do an :undo to revert the encryption in the
+  " buffer, and reset binary file format
+  autocmd BufWritePost,FileWritePost *.gpg
+    \ silent u |
+    \ setlocal nobin
+augroup END
+
+set updatetime=1000
+set shortmess+=c
+
+if has('persistent_undo')
+  let &undodir=&directory
+  set undofile
+endif
+
+let g:plug_url_format = 'git@github.com:%s.git'
+call plug#begin('~/.vim/plugged')
+  Plug 'wsdjeg/vim-fetch'
+  "Plug 'editorconfig/editorconfig-vim'
+  Plug 'junegunn/fzf'
+  Plug 'junegunn/fzf.vim'
+  Plug 'haya14busa/vim-asterisk'
+  Plug 'tikhomirov/vim-glsl'
+  Plug 'tpope/vim-fugitive'
+call plug#end()
+
+" == FZF ==
+nmap <C-P> :FZF<CR>
+
+
+" == vim-asterisk ==
+let g:asterisk#keeppos = 1
+map *  <Plug>(asterisk-*)
+map #  <Plug>(asterisk-#)
+map g* <Plug>(asterisk-g*)
+map g# <Plug>(asterisk-g#)
+map z*  <Plug>(asterisk-z*)
+map gz* <Plug>(asterisk-gz*)
+map z#  <Plug>(asterisk-z#)
+map gz# <Plug>(asterisk-gz#)
+
+
+" == rust.vim ==
+autocmd FileType rust noremap <C-I> gq
+autocmd FileType rust inoremap <C-K> <C-O>gq
+
+if has('nvim')
+  set inccommand=nosplit
+  set signcolumn=number
+endif " nvim
+
+" source user's local configuration file if available
+if filereadable($HOME . "/.vimrc.local")
+  source ~/.vimrc.local
+endif