--- /dev/null
+" 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