From 4bcb50ce7f17ea2fb487a16dd24b66f50f3da8dc Mon Sep 17 00:00:00 2001 From: Matthew Lemon Date: Mon, 26 Feb 2024 15:58:16 +0000 Subject: Another basic vimrc - based on the default and building up --- vimrc-basic-desktop | 203 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 vimrc-basic-desktop (limited to 'vimrc-basic-desktop') diff --git a/vimrc-basic-desktop b/vimrc-basic-desktop new file mode 100644 index 0000000..0860c43 --- /dev/null +++ b/vimrc-basic-desktop @@ -0,0 +1,203 @@ +" The default vimrc file. +" +" Enabling filetype support provides filetype-specific indenting, +" syntax highlighting, omni-completion and other useful settings. +filetype plugin indent on +syntax on + +" Leaders {{{ +let maplocalleader = "\\" +let mapleader = "," + +" maps +nnoremap idate :.!date +"\%F"Ea +nnoremap w :!pandoc /home/lemon/Documents/Notes/MOD/Projects/weekly_planning.md --css /home/lemon/.local/share/pandoc/templates/mystyles.css -s -o /tmp/toss.html; firefox /tmp/toss.html & +nnoremap W :!pandoc /home/lemon/Documents/Notes/MOD/Projects/weekly_planning.md --css /home/lemon/.local/share/pandoc/templates/mystyles.css -s -o /tmp/toss.html + +" `matchit.vim` is built-in so let's enable it! +" Hit `%` on `if` to jump to `else`. +runtime macros/matchit.vim + +" various settings +set autoindent " Minimal automatic indenting for any filetype. +set backspace=indent,eol,start " Intuitive backspace behavior. +set hidden " Possibility to have more than one unsaved buffers. +set incsearch " Incremental search, hit `` to stop. +set ruler " Shows the current line number at the bottom-right + " of the screen. +set wildmenu " Great command-line completion, use `` to move + " around and `` to validate. +" +" Maintainer: The Vim Project +" Last change: 2023 Aug 10 +" Former Maintainer: Bram Moolenaar +" +" This is loaded if no vimrc file was found. +" Except when Vim is run with "-u NONE" or "-C". +" Individual settings can be reverted with ":set option&". +" Other commands can be reverted as mentioned below. + +" When started as "evim", evim.vim will already have done these settings. +if v:progname =~? "evim" + finish +endif + +" Bail out if something that ran earlier, e.g. a system wide vimrc, does not +" want Vim to use these default values. +if exists('skip_defaults_vim') + finish +endif + +" Use Vim settings, rather than Vi settings (much better!). +" This must be first, because it changes other options as a side effect. +" Avoid side effects when it was already reset. +if &compatible + set nocompatible +endif + +" When the +eval feature is missing, the set command above will be skipped. +" Use a trick to reset compatible only when the +eval feature is missing. +silent! while 0 + set nocompatible +silent! endwhile + +" Allow backspacing over everything in insert mode. +set backspace=indent,eol,start + +set history=200 " keep 200 lines of command line history +set ruler " show the cursor position all the time +set showcmd " display incomplete commands +set wildmenu " display completion matches in a status line + +set ttimeout " time out for key codes +set ttimeoutlen=100 " wait up to 100ms after Esc for special key + +" Show @@@ in the last line if it is truncated. +set display=truncate + +" Show a few lines of context around the cursor. Note that this makes the +" text scroll if you mouse-click near the start or end of the window. +set scrolloff=5 + +" Do incremental searching when it's possible to timeout. +if has('reltime') + set incsearch +endif + +" Do not recognize octal numbers for Ctrl-A and Ctrl-X, most users find it +" confusing. +set nrformats-=octal + +" For Win32 GUI: remove 't' flag from 'guioptions': no tearoff menu entries. +if has('win32') + set guioptions-=t +endif + +" Don't use Q for Ex mode, use it for formatting. Except for Select mode. +" Revert with ":unmap Q". +map Q gq +sunmap Q + +" CTRL-U in insert mode deletes a lot. Use CTRL-G u to first break undo, +" so that you can undo CTRL-U after inserting a line break. +" Revert with ":iunmap ". +inoremap u + +" In many terminal emulators the mouse works just fine. By enabling it you +" can position the cursor, Visually select and scroll with the mouse. +" Only xterm can grab the mouse events when using the shift key, for other +" terminals use ":", select text and press Esc. +if has('mouse') + if &term =~ 'xterm' + set mouse=a + else + set mouse=nvi + endif +endif + +" Only do this part when Vim was compiled with the +eval feature. +if 1 + + " Enable file type detection. + " Use the default filetype settings, so that mail gets 'tw' set to 72, + " 'cindent' is on in C files, etc. + " Also load indent files, to automatically do language-dependent indenting. + " Revert with ":filetype off". + filetype plugin indent on + + " Put these in an autocmd group, so that you can revert them with: + " ":autocmd! vimStartup" + augroup vimStartup + autocmd! + + " When editing a file, always jump to the last known cursor position. + " Don't do it when the position is invalid, when inside an event handler + " (happens when dropping a file on gvim), for a commit or rebase message + " (likely a different one than last time), and when using xxd(1) to filter + " and edit binary files (it transforms input files back and forth, causing + " them to have dual nature, so to speak) + autocmd BufReadPost * + \ let line = line("'\"") + \ | if line >= 1 && line <= line("$") && &filetype !~# 'commit' + \ && index(['xxd', 'gitrebase'], &filetype) == -1 + \ | execute "normal! g`\"" + \ | endif + + augroup END + + " Quite a few people accidentally type "q:" instead of ":q" and get confused + " by the command line window. Give a hint about how to get out. + " If you don't like this you can put this in your vimrc: + " ":autocmd! vimHints" + augroup vimHints + au! + autocmd CmdwinEnter * + \ echohl Todo | + \ echo gettext('You discovered the command-line window! You can close it with ":q".') | + \ echohl None + augroup END + +endif + +" Switch syntax highlighting on when the terminal has colors or when using the +" GUI (which always has colors). +if &t_Co > 2 || has("gui_running") + " Revert with ":syntax off". + syntax on + + " I like highlighting strings inside C comments. + " Revert with ":unlet c_comment_strings". + let c_comment_strings=1 +endif + +" Convenient command to see the difference between the current buffer and the +" file it was loaded from, thus the changes you made. +" Only define it when not defined already. +" Revert with: ":delcommand DiffOrig". +if !exists(":DiffOrig") + command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis + \ | wincmd p | diffthis +endif + +if has('langmap') && exists('+langremap') + " Prevent that the langmap option applies to characters that result from a + " mapping. If set (default), this may break plugins (but it's backward + " compatible). + set nolangremap +endif + +" Go linting +autocmd FileType go setlocal makeprg=go\ fmt + +colorscheme hipster +set grepprg=rg\ --vimgrep +function! Grep(...) + return system(join([&grepprg] + [expandcmd(join(a:000, ' '))], ' ')) +endfunction +command! -nargs=+ -complete=file_in_path -bar Grep cgetexpr Grep() +command! -nargs=+ -complete=file_in_path -bar LGrep lgetexpr Grep() +augroup quickfix + autocmd! + autocmd QuickFixCmdPost cgetexpr cwindow + autocmd QuickFixCmdPost lgetexpr lwindow +augroup END -- cgit v1.2.3