Compare commits

..

15 Commits

Author SHA1 Message Date
d30553d2d2 Added words to custom dictionary 2025-06-09 14:35:48 -04:00
271aa3182b Removed autowrite section
I suspect it created a ton of sync-conflicts in my notes. Auto saving
isn't worth it if that's the result.
2025-05-28 12:31:33 -04:00
6a9ca5c23d Added vim-setcolor script
Must be sourced. Colorscheme browser. Use F8/Shift-F8 to browse
colorschemes.
2025-05-19 18:18:37 -04:00
0edac00442 Testing autowrite,autoread for md files
Will autosave Markdown files on exit. Should also read changes made
outside of Vim. Purpose: to minimize file conflicts in Syncthing.
2025-05-17 20:09:09 -04:00
cc9e42b469 Added more words to dictionary +abbreviations
Added some commonly misspelled words to my .vimrc abbreviations
2025-05-14 11:49:13 -04:00
1274eb0597 Removed filename from readinglist template 2025-05-12 21:50:47 -04:00
18ae6546e6 ExtractWikiLinks
Added a separate function to extract wiki links
It must be sourced on-demand, since it's not tested
2025-05-10 19:31:56 -04:00
7f94c04724 Removed extraneous comments, improved keybindings
Finally removed all the commented out lines that I was saving in case I
needed to roll them back. Switched some keybindings to keys that made
more sense.
2025-05-08 20:34:37 -04:00
9bc08347a8 Added vim-signify
and configured to show Git info in gutter. Updated config to show more
git info in statusline
2025-05-08 16:58:35 -04:00
b7ca4be5cf .vimrc with the custom colors mostly removed
relying on the colorscheme
2025-05-08 08:48:23 -04:00
fdc6ea1ef3 FZF wiki links
Added functions to use FZF to insert file links into current buffer.
- `<ctrl>-p` for wiki link
- `<ctrl>-l` for file name
2025-04-29 18:00:56 -04:00
08bf9e7354 Added if/then to ignore directive incompatible with nvim
Aiming to keep .vimrc compatible with nvim for testing.
2025-04-28 14:27:13 -04:00
81ac79f7b4 Fixed buffer navigation keybind.
<crtl>-<left> and <crtl>-<right> to navigate open buffers.
2025-04-28 09:45:08 -04:00
97bd1e0365 Added CHANGELOG.md
Created a function that will generate a CHANGELOG from my previous 25
commits, so I don't have to keep updating the README.md file
2025-04-24 19:34:29 -04:00
9dbe4a87c0 Disable folding for yaml
Disable fold for yaml files
2025-04-24 19:05:01 -04:00
7 changed files with 400 additions and 69 deletions

30
.vim/ExtractWikiLinks.vim Normal file
View File

@@ -0,0 +1,30 @@
function! ExtractWikiLinks()
let links = []
let pattern = '\v\[\[([^\]]+)\]\]'
let linenr = 1
while linenr <= line('$')
let line = getline(linenr)
let match = match(line, pattern)
while match != -1
let link_start = match + 2 " Start after '[['
let link_end = matchend(line, pattern) - 2 " End before ']]'
if link_end > link_start
let link = strpart(line, link_start, link_end - link_start)
call add(links, link)
endif
let match = match(line, pattern, matchend(line, pattern)) " Find next match
endwhile
let linenr = linenr + 1
endwhile
" Open a new buffer with the extracted links
new
" Make the buffer modifiable temporarily
set modifiable
call setline(1, links)
" Set the buffer options after writing
set nomodifiable buftype=nofile bufhidden=wipe nobuflisted noswapfile
echo "Extracted " . len(links) . " wiki links."
endfunction
command! ExtractLinks call ExtractWikiLinks()

View File

@@ -66,3 +66,24 @@ chawley
phansible
Abaddon
ChromeOS
TeachingBooks
NeuroSquad
Wormdingler
jinja
TODO
Neovim
Zettelkasten
Harpocrates
Weechat
Lorain
Meadowbrook
NotebookLLM
Satola
DeSha
Redis
hostname
Shawshank
Delly
tmux
freecycle
ReadEra

View File

@@ -1,6 +1,5 @@
:insert
---
filename:
filecreated:
fileupdated:
filetags: [readinglist]

120
.vim/vim-setcolors.vim Normal file
View File

@@ -0,0 +1,120 @@
" Change the color scheme from a list of color scheme names.
" Version 2010-09-12 from http://vim.wikia.com/wiki/VimTip341
" Press key:
" F8 next scheme
" Shift-F8 previous scheme
" Alt-F8 random scheme
" Set the list of color schemes used by the above (default is 'all'):
" :SetColors all (all $VIMRUNTIME/colors/*.vim)
" :SetColors my (names built into script)
" :SetColors blue slate ron (these schemes)
" :SetColors (display current scheme names)
" Set the current color scheme based on time of day:
" :SetColors now
if v:version < 700 || exists('loaded_setcolors') || &cp
finish
endif
let loaded_setcolors = 1
let s:mycolors = ['slate', 'torte', 'darkblue', 'delek', 'murphy', 'elflord', 'pablo', 'koehler'] " colorscheme names that we use to set color
" Set list of color scheme names that we will use, except
" argument 'now' actually changes the current color scheme.
function! s:SetColors(args)
if len(a:args) == 0
echo 'Current color scheme names:'
let i = 0
while i < len(s:mycolors)
echo ' '.join(map(s:mycolors[i : i+4], 'printf("%-14s", v:val)'))
let i += 5
endwhile
elseif a:args == 'all'
let paths = split(globpath(&runtimepath, 'colors/*.vim'), "\n")
let s:mycolors = uniq(sort(map(paths, 'fnamemodify(v:val, ":t:r")')))
echo 'List of colors set from all installed color schemes'
elseif a:args == 'my'
let c1 = 'default elflord peachpuff desert256 breeze morning'
let c2 = 'darkblue gothic aqua earth black_angus relaxedgreen'
let c3 = 'darkblack freya motus impact less chocolateliquor'
let s:mycolors = split(c1.' '.c2.' '.c3)
echo 'List of colors set from built-in names'
elseif a:args == 'now'
call s:HourColor()
else
let s:mycolors = split(a:args)
echo 'List of colors set from argument (space-separated names)'
endif
endfunction
command! -nargs=* SetColors call s:SetColors('<args>')
" Set next/previous/random (how = 1/-1/0) color from our list of colors.
" The 'random' index is actually set from the current time in seconds.
" Global (no 's:') so can easily call from command line.
function! NextColor(how)
call s:NextColor(a:how, 1)
endfunction
" Helper function for NextColor(), allows echoing of the color name to be
" disabled.
function! s:NextColor(how, echo_color)
if len(s:mycolors) == 0
call s:SetColors('all')
endif
if exists('g:colors_name')
let current = index(s:mycolors, g:colors_name)
else
let current = -1
endif
let missing = []
let how = a:how
for i in range(len(s:mycolors))
if how == 0
let current = localtime() % len(s:mycolors)
let how = 1 " in case random color does not exist
else
let current += how
if !(0 <= current && current < len(s:mycolors))
let current = (how>0 ? 0 : len(s:mycolors)-1)
endif
endif
try
execute 'colorscheme '.s:mycolors[current]
break
catch /E185:/
call add(missing, s:mycolors[current])
endtry
endfor
redraw
if len(missing) > 0
echo 'Error: colorscheme not found:' join(missing)
endif
if (a:echo_color)
echo g:colors_name
endif
endfunction
nnoremap <F8> :call NextColor(1)<CR>
nnoremap <S-F8> :call NextColor(-1)<CR>
nnoremap <A-F8> :call NextColor(0)<CR>
" Set color scheme according to current time of day.
function! s:HourColor()
let hr = str2nr(strftime('%H'))
if hr <= 3
let i = 0
elseif hr <= 7
let i = 1
elseif hr <= 14
let i = 2
elseif hr <= 18
let i = 3
else
let i = 4
endif
let nowcolors = 'elflord morning desert evening pablo'
execute 'colorscheme '.split(nowcolors)[i]
redraw
echo g:colors_name
endfunction

136
.vimrc
View File

@@ -24,8 +24,11 @@ set ruler " show cursor poition
set scrolloff=10 " number of lines to keep above and below the cursor
set showmatch " show matching brackets when text indicator is over them
set splitright " Split to right by default
if !has('nvim')
set term=xterm-256color " LOTS of colors
endif
set wildmenu " enhanced command line completion
set fillchars=vert:\|,fold:.,diff:-
" Text Wrapping
set colorcolumn= " disable colorzing <textwidth> column
@@ -66,7 +69,7 @@ set omnifunc=syntaxcomplete#Complete
" Personal Notes settings
" export NOTES_DIR=<your notes directory> before use
" Go to index of notes and set working directory
nnoremap <leader>nn :e $NOTES_DIR/Index.md<CR>:cd $NOTES_DIR<CR>
nnoremap <leader>nn :e $NOTES_DIR/index.md<CR>:cd $NOTES_DIR<CR>
" <leader>[ to grep inside Notes files
" I got the idea from here [step 6: search contents of your notes](https://www.edwinwenink.xyz/posts/42-vim_notetaking/#step-6-search-contents-of-your-notes)
@@ -129,6 +132,9 @@ Plug 'bullets-vim/bullets.vim'
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
" vim-signify
" https://github.com/mhinz/vim-signify
Plug 'mhinz/vim-signify'
call plug#end()
@@ -163,51 +169,82 @@ let g:bullets_enabled_file_types = [ 'markdown', 'gitcommit' ]
let g:bullets_outline_levels = ['num', 'abc', 'std*', 'std+', 'std-']
"vim-airline
let g:airline#extensions#tabline#enabled = 1
let g:airline_extensions = ['hunks', 'branch', 'tabline']
let g:airline_detect_theme_from_guicolors = 1
"let g:airline_theme = 'angr'
let g:airline_powerline_fonts = 1
" ---------------------------------------------------------------------------------------------------------------------
" ==> FZF Helper Functions
"
" Configure FZF default key bindings (actions) within the FZF window
" 'ctrl-x': Open in horizontal split
" 'ctrl-v': Open in vertical split
" 'ctrl-t': Open in new tab (optional, common)
" 'ctrl-p': Paste raw filename(s) at cursor
" 'ctrl-l': Paste formatted [[wiki link]] at cursor
" NOTE: Define these functions BEFORE they are used in g:fzf_action below.
" Function to paste FZF selection(s) at the current cursor position
function! PasteFzfSelection(lines)
if type(a:lines) != type([]) || empty(a:lines)
echoerr "FZF Paste Error: No selection passed to function PasteFzfSelection."
return
endif
" Join multiple selections with a space
let text_to_paste = join(a:lines, ' ')
" Insert the text
call feedkeys('i' . text_to_paste . "\<esc>", 'ni')
endfunction
" Function to paste FZF selection as a formatted wiki link
function! PasteFzfWikiLink(lines)
if type(a:lines) != type([]) || empty(a:lines)
echoerr "FZF Paste Error: No selection passed to function PasteFzfWikiLink."
return
endif
" Typically you only link one file at a time
let filename = a:lines[0]
" --- CHOOSE YOUR LINK FORMAT ---
" Option 1: Wiki format [[filename_without_extension]]
"let filename_base = fnamemodify(filename, ':r') " Removes the extension
"let link_text = '[[' . filename_base . ']]'
" Option 2: Wiki format [[filename_with_extension]]
let link_text = '[[' . filename . ']]'
" Option 3: Markdown format [filename](filename)
" let link_text = '[' . filename . '](' . filename . ')'
" --- End Formatting Options ---
" Insert the formatted link
call feedkeys('i' . link_text . "\<esc>", 'ni')
endfunction
" FZF Actions
" <c-x> to open FZF result in a split
" <c-v> to open FZF result in a vsplit
" <c-o> to copy FZF result as text into current buffer
let g:fzf_action = {
\ 'ctrl-x': 'split',
\ 'ctrl-v': 'vsplit',
\ 'ctrl-p': ':r !echo'}
" ---------------------------------------------------------------------------------------------------------------------
" ==> Colors
" Term GUI Colors
" colorscheme replaced by ~/.vimcustom
" If there is a file at ~/.vimcustom, the colorscheme defined in that file
" will be applied. If not, colorscheme defaults to 'darkburn'
" cursorcolumn
hi cursorcolumn cterm=NONE ctermbg=black ctermfg=white
" visual mode colors
hi visual cterm=NONE ctermbg=lightyellow ctermfg=black
set fillchars=vert:\|,fold:.,diff:-
" In split windows - active buffer status bar is green, inactive is yellow
hi StatusLine ctermfg=white ctermbg=darkgreen cterm=bold
hi StatusLineNC ctermfg=darkgray ctermbg=gray cterm=none
\ 'ctrl-t': 'tab split',
\ 'ctrl-p': function('PasteFzfSelection'),
\ 'ctrl-l': function('PasteFzfWikiLink')
\ }
" ---------------------------------------------------------------------------------------------------------------------
" => Keymaps: Highlights
" <leader><space> to turn off search highlight
nnoremap <leader><space> :nohls <enter>
" <F6> to toggle search highlight
nnoremap <F6> :nohls <enter>
" <leader>C to toggle row/column highlight
nnoremap <leader>C :set cursorline! cursorcolumn!<CR>
" <F7> to toggle row/column highlight
nnoremap <F7> :set cursorline! cursorcolumn!<CR>
" ---------------------------------------------------------------------------------------------------------------------
" ==> Keymaps: Buffers & Panes
" <ctrl>-arrow left/right to navigate BUFFERS
map <esc>[1;5D :bp <enter>
map <esc>[1;5C :bp <enter>
map <esc>[1;5C :bn <enter>
" <leader>b to open FZF buffers
map <leader>b :Buffers<CR>
@@ -224,9 +261,6 @@ nnoremap <leader>c :bd <enter>
" <c-s> to save buffer
nnoremap <c-s> :w<CR>
" <c-x> to bring up the copy buffer
noremap <c-x> "+
" <alt>-arrow keys to navigate panes
" UP
map <esc>[1;3A <c-w><c-k>
@@ -324,18 +358,15 @@ hi clear SpellBad
hi clear SpellCap
hi clear SpellLocal
hi clear SpellRare
hi SpellCap cterm=underline ctermbg=none ctermfg=magenta
hi SpellBad cterm=underline ctermbg=none ctermfg=red
hi SpellLocal cterm=underline ctermbg=none ctermfg=gray
hi SpellRare cterm=underline ctermbg=none ctermfg=gray
hi SpellCap cterm=underline ctermbg=none
hi SpellBad cterm=underline ctermbg=none
hi SpellLocal cterm=underline ctermbg=none
hi SpellRare cterm=underline ctermbg=none
" ---------------------------------------------------------------------------------------------------------------------
" ==> Templates: markdown documents with frontmatter (.md)
autocmd BufNewFile *.md so $HOME/.vim/templates/mdfm
"autocmd BufNewFile *.md %s/filename:.*/s//filename:\=expand('%:t:r')
"autocmd BufNewFile *.md %s/filename:.*/\='filename: '.expand('%:t:r')
"autocmd BufNewFile *.md exe "g/^filename:.*/s//filename: " .expand('%:t:r')
autocmd BufNewFile *.md exe "g/^filecreated:.*/s//filecreated: " .strftime("%Y-%m-%d")
autocmd BufNewFile *.md exe "normal Go"
autocmd BufWritePre,filewritepre *.md execute "normal! ma"
@@ -366,13 +397,9 @@ nnoremap ,begend :-1read $HOME/.vim/templates/begend<CR>jA
nnoremap ,sh :0read $HOME/.vim/templates/sh<CR> <bar> :1<CR>dd <bar> :4%s/filename/\=expand('%:t')/g<CR>
" section readinglist header
"nnoremap ,rl :0read $HOME/.vim/templates/readinglist<CR> <bar> :1<CR>dd $
"nnoremap ,rl :0read $HOME/.vim/templates/rlfm<CR> <bar>zR<CR> <bar> :1<CR>dd :%s/^filename:/\="filename: " . expand('%:t:r')/g<CR>
nnoremap ,rl :0read $HOME/.vim/templates/rlfm<CR> <bar>zR<CR> <bar> :1<CR>dd
" section markdown file header
"nnoremap ,md :0read $HOME/.vim/templates/md<CR> <bar> :1<CR>dd <bar> :%s/filename/\=expand('%:t:r')/g<CR>
"nnoremap ,md :0read $HOME/.vim/templates/mdfm<CR> <bar>zR<CR> <bar> :1<CR>dd :%s/^filename:/\="filename: " . expand('%:t:r')/g<CR>
nnoremap ,md :0read $HOME/.vim/templates/mdfm<CR> <bar>zR<CR> <bar> :1<CR>dd
" ---------------------------------------------------------------------------------------------------------------------
@@ -385,9 +412,28 @@ autocmd FileType netrw setl bufhidden=delete
" ---------------------------------------------------------------------------------------------------------------------
" ==> yaml stuff (https://lornajane.net/posts/2018/vim-settings-for-working-with-yaml)
"
autocmd BufNewFile,BufReadPost *.{yaml,yml} set filetype=yaml foldmethod=indent
autocmd BufNewFile,BufReadPost *.{yaml,yml} set filetype=yaml foldmethod=manual
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab
" Abbreviations
" Correcting common misspellings
iab couljd could
iab wouljd would
iab monring morning
iab teh the
iab adn and
iab form from
iab wiht with
iab becuase because
iab definately definitely
iab seperate separate
" ---------------------------------------------------------------------------------------------------------------------
" ==> Colors
" Term GUI Colors
" colorscheme replaced by ~/.vimcustom
" If there is a file at ~/.vimcustom, the colorscheme defined in that file
" will be applied. If not, colorscheme defaults to 'darkburn'
" ---------------------------------------------------------------------------------------------------------------------
" ==> Source Local Customizations and Set Colorscheme

133
CHANGELOG.md Normal file
View File

@@ -0,0 +1,133 @@
# Last 25 Commits
## 9dbe4a8 (chawley (penguin), 2025-04-24) - Disable folding for yaml
Disable fold for yaml files
## b052f7f (chawley (overlook), 2025-04-23) - Added line number toggle and colorscheme customization
- <leader>n to toggle line numbers
- source ~/.vimcustom (if exists) for custom colorscheme
- disable airline theme (let it inherit from colorscheme
-
## fe39e86 (chawley (penguin), 2025-04-20) - added words to dictionary
## aaf5d31 (chawley (overlook), 2025-04-15) - Reworked Spell Check Section
Removed the global nospell autocommands:
The lines `autocmd BufRead,BufNewFile * setlocal nospell` and
`autocmd BufRead,BufNewFile *.* setlocal nospell` have been removed.
These were turning off spell checking for all files.
## d2821c7 (chawley (overlook), 2025-04-14) - .vimrc changes
- Theme: darkburn
- ASCII foldchars
- Changed keybinding for notes to `<leader>nn`
-
## 750376d (phansible, 2025-04-14) - Added no line break to wrap toggle
## 0793816 (chawley (tfadmin), 2025-04-14) - Updated README
## 063e68f (chawley (tfadmin), 2025-04-14) - Added marks list
Keybinding (`<leader>m`) to open mark list
## c63cb6a (chawley (overlook), 2025-04-14) - Added keybinding for datestamp
Added additional keybinding to mimic datestamp entry from VS Code (<crtl><shift>-i)
## a2c808e (chawley (overlook), 2025-04-14) - Added words to custom dictionary
## 41a036f (chawley (overlook), 2025-04-14) - Updated README
## 48dd076 (chawley (overlook), 2025-04-14) - Upgraded vim-plug plugin
via :PlugUpgrade
## b2bacfa (chawley (overlook), 2025-04-14) - .vimrc and rm old templates
Removed unused templates, added word-wrap to .vimrc
## 6db5468 (chawley (tfadmin), 2024-10-28) - Updated vim-plug plugin
## 6372ff4 (chawley, 2024-05-21) - text width = 135
Increased text width to 135 by default.
## 89fdfb9 (chawley, 2024-05-09) - Changed keybinding for FZF paste
Press <ctrl>-p to paste the filename of the file selected by FZF
## f4f82ad (chawley, 2024-05-03) - .vimrc - removed reference to filenames in markdown frontmatter
## 97f7d50 (chawley, 2024-05-03) - Markdown Frontmatter
I removed the filename from markdown frontmatter. I've renamed file and
the filename in the frontmatter doesn't update. That's a recipe for
confusion later
## 244c5ed (chawley, 2024-04-24) - Added words to custom dictionary
## 67569b9 (chawley, 2024-04-23) - Added link to ref for
## 91e5cd5 (chawley, 2024-04-23) - Leader-f to fuzzy search word under cursor
`<leader>-f` to open FZF window with word under cursor pre-populated
## 0fa0c06 (chawley, 2024-04-16) - Frontmatter for readinglist
Reverted readinglist frontmatter to standard format with yaml delimiters
and bracketed tags
## d0cfda7 (chawley, 2024-04-15) - Frontmatter tag format
Frontmatter tags should be a list (in brackets). If I'm going to do
this, I may as well do it right.
## 5669fb2 (chawley, 2024-04-15) - Re-added proper frontmatter to markdown template
I'd removed the hashmarks from the markdown frontmatte tempplate so I
could use tags in SilverBullet, but decided against using SilverBullet
regularly. Not enough to break proper formatting.
## 2784a69 (chawley, 2024-04-10) - Removed timestamps from Markdown Files
I removed the time from markdown `fileupdated` datestamps. I don't need
that level of reference. The date a file was updated is fine.

View File

@@ -1,6 +1,6 @@
---
filecreated:
fileupdated: 2025-04-14
fileupdated: 2025-04-24
filetags: [readme]
---
@@ -20,22 +20,4 @@ Then open vim and install (or update) the plugins with `:PlugInstall` (or `:Plug
## Changelog
- 2025-04-14: Removed textwidth and added a word-wrap toggle (`<leader>w`). Removed old and unused templates for markdown and readinglist. Added keybinding (`<leader>m`) for marks list and (`crtl><shift>i`) for datestamp.
- 2024-02-13: Several changes:
- Included more comments and links about what each entry does
- Removed `polyglot` plugin
- Removed `ALE` plugin
- Removed `tpope/vim-markdown` plugin
- Removed netrw customizations
- Removed auto templates, changed them to snippets:
- Insert markdown header with `,md`
- Insert shell header with `,sh`
- 2024-02-22: Replaced Vimwiki with Vim Markdown
- Suggestions from [Writing Markdown in Vim](https://codeinthehole.com/tips/writing-markdown-in-vim/)
- Added
- `godlygeek/tabular`
- `preservim/vim-markdown`
- 2024-02-25:
- Added [vim-spellsync](https://github.com/micarmst/vim-spellsync) plugin and made the needed changes to accommodate
- Reworked markdown and shell script templates to update dates in headers automatically.
- Started making better commit messages in order to avoid having to document details in README :)
Moved to CHANGELOG.md