From 5bf92a89ece5ebf68c753de96e12bc90a87be695 Mon Sep 17 00:00:00 2001 From: Stefan Naewe Date: Thu, 17 Oct 2013 20:01:33 +0200 Subject: [PATCH] initial commit --- Notes.pdf | Bin 0 -> 191726 bytes additions_for_your_.vimrc | 158 ++++++++++++++++ intro.swtc | 74 ++++++++ plugin/SWTC.vim | 339 ++++++++++++++++++++++++++++++++++ plugin/autoswap_mac.vim | 111 +++++++++++ plugin/betterdigraphs.vim | 376 ++++++++++++++++++++++++++++++++++++++ plugin/dragvisuals.vim | 345 ++++++++++++++++++++++++++++++++++ plugin/hudigraphs.vim | 143 +++++++++++++++ plugin/listtrans.vim | 121 ++++++++++++ plugin/vmath.vim | 140 ++++++++++++++ spell/en-basic.latin1.spl | Bin 0 -> 18129 bytes 11 files changed, 1807 insertions(+) create mode 100644 Notes.pdf create mode 100644 additions_for_your_.vimrc create mode 100644 intro.swtc create mode 100644 plugin/SWTC.vim create mode 100644 plugin/autoswap_mac.vim create mode 100644 plugin/betterdigraphs.vim create mode 100644 plugin/dragvisuals.vim create mode 100644 plugin/hudigraphs.vim create mode 100644 plugin/listtrans.vim create mode 100644 plugin/vmath.vim create mode 100644 spell/en-basic.latin1.spl diff --git a/Notes.pdf b/Notes.pdf new file mode 100644 index 0000000000000000000000000000000000000000..92dcf799e9ce6098c4bd5d7245ecf3498840c052 GIT binary patch literal 191726 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

-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 literal 0 HcmV?d00001 diff --git a/additions_for_your_.vimrc b/additions_for_your_.vimrc new file mode 100644 index 0000000..7a17147 --- /dev/null +++ b/additions_for_your_.vimrc @@ -0,0 +1,158 @@ +"====[ Make the 81st column stand out ]==================== + + " EITHER the entire 81st column, full-screen... + highlight ColorColumn ctermbg=magenta + set colorcolumn=81 + + " OR ELSE just the 81st column of wide lines... + highlight ColorColumn ctermbg=magenta + call matchadd('ColorColumn', '\%81v', 100) + + " OR ELSE on April Fools day... + highlight ColorColumn ctermbg=red ctermfg=blue + exec 'set colorcolumn=' . join(range(2,80,3), ',') + + +"=====[ Highlight matches when jumping to next ]============= + + " This rewires n and N to do the highlighing... + nnoremap n n:call HLNext(0.4) + nnoremap N N:call HLNext(0.4) + + + " EITHER blink the line containing the match... + function! HLNext (blinktime) + set invcursorline + redraw + exec 'sleep ' . float2nr(a:blinktime * 1000) . 'm' + set invcursorline + redraw + endfunction + + " OR ELSE ring the match in red... + function! HLNext (blinktime) + highlight RedOnRed ctermfg=red ctermbg=red + let [bufnum, lnum, col, off] = getpos('.') + let matchlen = strlen(matchstr(strpart(getline('.'),col-1),@/)) + echo matchlen + let ring_pat = (lnum > 1 ? '\%'.(lnum-1).'l\%>'.max([col-4,1]) .'v\%<'.(col+matchlen+3).'v.\|' : '') + \ . '\%'.lnum.'l\%>'.max([col-4,1]) .'v\%<'.col.'v.' + \ . '\|' + \ . '\%'.lnum.'l\%>'.max([col+matchlen-1,1]) .'v\%<'.(col+matchlen+3).'v.' + \ . '\|' + \ . '\%'.(lnum+1).'l\%>'.max([col-4,1]) .'v\%<'.(col+matchlen+3).'v.' + let ring = matchadd('RedOnRed', ring_pat, 101) + redraw + exec 'sleep ' . float2nr(a:blinktime * 1000) . 'm' + call matchdelete(ring) + redraw + endfunction + + " OR ELSE briefly hide everything except the match... + function! HLNext (blinktime) + highlight BlackOnBlack ctermfg=black ctermbg=black + let [bufnum, lnum, col, off] = getpos('.') + let matchlen = strlen(matchstr(strpart(getline('.'),col-1),@/)) + let hide_pat = '\%<'.lnum.'l.' + \ . '\|' + \ . '\%'.lnum.'l\%<'.col.'v.' + \ . '\|' + \ . '\%'.lnum.'l\%>'.(col+matchlen-1).'v.' + \ . '\|' + \ . '\%>'.lnum.'l.' + let ring = matchadd('BlackOnBlack', hide_pat, 101) + redraw + exec 'sleep ' . float2nr(a:blinktime * 1000) . 'm' + call matchdelete(ring) + redraw + endfunction + + " OR ELSE just highlight the match in red... + function! HLNext (blinktime) + let [bufnum, lnum, col, off] = getpos('.') + let matchlen = strlen(matchstr(strpart(getline('.'),col-1),@/)) + let target_pat = '\c\%#'.@/ + let ring = matchadd('WhiteOnRed', target_pat, 101) + redraw + exec 'sleep ' . float2nr(a:blinktime * 1000) . 'm' + call matchdelete(ring) + redraw + endfunction + + +"====[ Make tabs, trailing whitespace, and non-breaking spaces visible ]====== + + exec "set listchars=tab:\uBB\uBB,trail:\uB7,nbsp:~" + set list + + +"====[ Swap : and ; to make colon commands easier to type ]====== + + nnoremap ; : + nnoremap : ; + + +"====[ Swap v and CTRL-V, because Block mode is more useful that Visual mode "]====== + + nnoremap v + nnoremap v + + vnoremap v + vnoremap v + + +"====[ Always turn on syntax highlighting for diffs ]========================= + + " EITHER select by the file-suffix directly... + augroup PatchDiffHighlight + autocmd! + autocmd BufEnter *.patch,*.rej,*.diff syntax enable + augroup END + + " OR ELSE use the filetype mechanism to select automatically... + filetype on + augroup PatchDiffHighlight + autocmd! + autocmd FileType diff syntax enable + augroup END + + +"====[ Open any file with a pre-existing swapfile in readonly mode "]========= + + augroup NoSimultaneousEdits + autocmd! + autocmd SwapExists * let v:swapchoice = 'o' + autocmd SwapExists * echomsg ErrorMsg + autocmd SwapExists * echo 'Duplicate edit session (readonly)' + autocmd SwapExists * echohl None + autocmd SwapExists * sleep 2 + augroup END + + " Also consider the autoswap_mac.vim plugin (but beware its limitations) + + +"====[ Mappings to activate spell-checking alternatives ]================ + + nmap ;s :set invspell spelllang=en + nmap ;ss :set spell spelllang=en-basic + + " To create the en-basic (or any other new) spelling list: + " + " :mkspell ~/.vim/spell/en-basic basic_english_words.txt + " + " See :help mkspell + + +"====[ Make CTRL-K list diagraphs before each digraph entry ]=============== + + inoremap ShowDigraphs() + + function! ShowDigraphs () + digraphs + call getchar() + return "\" + endfunction + + " But also consider the hudigraphs.vim and betterdigraphs.vim plugins, + " which offer smarter and less intrusive alternatives + diff --git a/intro.swtc b/intro.swtc new file mode 100644 index 0000000..9ca290d --- /dev/null +++ b/intro.swtc @@ -0,0 +1,74 @@ +A long time ago in a terminal far, +far away.... + + + [ __ __ _____ _____ _____ ] + [ |* \/ *| /**_**\|**__*\|*____| ] + [ |*|\/|*||**/ \**|*|__|*|*__| ] + [ |*| |*|\**\_/**|**_**/|*|___ ] + [ |_| |_________/|_| \_\|_____| ] + [ __ __ _____ __ __ ] + [ \*\ /*/|_***_||* \/ *| ] + [ \*\/*/ |*| |*|\/|*| ] + [ \**/ _|*|__|*| |*| ] + [ \/ |________| |_| ] + + + [[ __ __ __ ____ ____ ]] + [[ |* \/ *| /**\|**_*\|*___| ]] + [[ |*|\/|*||*[]*|*|_|*|*_|_ ]] + [[ |_| |______/|_|\_\|____| ]] + [[ __ __ _____ __ __ ]] + [[ \*\/*/|_***_|* \/ *| ]] + [[ \**/ _|*|_|*|\/|*| ]] + [[ \/ |_______| |_| ]] + + + + [[[ _ _ __ ___ ___ ]]] + [[[ ||\/||/**\|*_*>|*__| ]]] + [[[ || |____/|_|\\|___| ]]] + [[[ _ _ ___ _ _ ]]] + [[[ \\//|_*_| \/ | ]]] + [[[ \/ |____|\/|| ]]] + + + + [[[[ |\/|/\|<>>|*_| ]]]] + [[[[ ||||\/||\\|__| ]]]] + [[[[ \\//|||\/| ]]]] + [[[[ \/ |||||| ]]]] + + + +> Episode IV < +> < +> A NEW HOPE < +> < +> < +|It is a period of software war.| +|Agile dev teams, checking out from| +|a distributed codebase, have won| +|their first symbolic victories| +|against the fanatical GNU Empire.| +| | +|During the battle, Open Source| +|hackers have managed to clone an| +|unauthorized source archive of the| +|Empire's new ultimate weapon, the| +|EMACS TAR: a fully operational| +|operating system with sufficient| +|Alt-Meta-Ctrl-commands to destroy| +|the carpal tunnels of an entire| +|planet. | +| | +|Evading GNU's copy-sinister agenda| +|the mysterious Vimlord, Con Wei,| +|dashes off new Vimscript tools in| +|his heavily fortified text-editor,| +|custodian of the latest tips and| +|plugins that may save his people| +|effort, and restore efficiency to| +|the keyboard.... | + + diff --git a/plugin/SWTC.vim b/plugin/SWTC.vim new file mode 100644 index 0000000..05d7b4b --- /dev/null +++ b/plugin/SWTC.vim @@ -0,0 +1,339 @@ +" Vim global plugin for Star Wars crawls +" Maintainer: Damian Conway +" License: This file is placed in the public domain. + +"###################################################################### +"## ## +"## To use: ## +"## ## +"## :SWTC ## +"## ## +"## See file 'intro.swtc' for the crawl-specification syntax ## +"## ## +"###################################################################### + + +" If already loaded, we're done... +if exists("loaded_SWcrawl") + finish +endif +let loaded_SWcrawl = 1 + +" Preserve external compatibility options, then enable full vim compatibility... +let s:save_cpo = &cpo +set cpo&vim + +" Set up the actual colon command... +command! -nargs=1 -complete=file SWTC call SWcrawl() + + +" Implementation.... + +let s:CRAWL_SPEED = 1 "(lines per second) +let s:STAR_DENSITY = 50 "(pixels per star, i.e. 1 star per STAR_DENSITY pixels) +let s:STARFIELD_HEIGHT = 2 "(screens deep) + +let s:LOGO_LINE1 = '^\s*\[\zs.*\ze\]\s*$' +let s:LOGO_LINE2 = '^\s*\[\[\zs.*\ze\]\]\s*$' +let s:LOGO_LINE3 = '^\s*\[\[\[\zs.*\ze\]\]\]\s*$' +let s:LOGO_LINE4 = '^\s*\[\[\[\[\zs.*\ze\]\]\]\]\s*$' +let s:CENTRED_CRAWL_LINE = '^\s*[>]\s*\zs.\{-}\ze\s*[<]\s*$' +let s:CRAWL_LINE = '^\s*[|]\s*\zs.\{-}\ze\s*[|]\s*$' +let s:PREFACE_LINE = '^\s*\zs.\{-}\ze\s*$' + +highlight SWC_PREFACE ctermfg=cyan +highlight SWC_FADE_LIGHT ctermfg=cyan +highlight SWC_FADE_DARK ctermfg=blue +highlight SWC_LOGO ctermfg=yellow cterm=bold +highlight SWC_CRAWL ctermfg=yellow +highlight SWC_STAR ctermfg=white +highlight SWC_BLACK ctermfg=black ctermbg=black + +let s:PREFACE_POS = { 'x': 10, 'y': 5 } + +function! SWcrawl (textsource) + " Load preface, logo, and text to be crawled... + let preface = [] + let logo1 = [] + let logo2 = [] + let logo3 = [] + let logo4 = [] + let crawl = [] + let centred = [] + let max_crawl_width = 0 + for nextline in readfile(a:textsource) + " Ignore blank lines... + if nextline =~ '^\s*$' + continue + + " Lines in [...] are logo components... + elseif nextline =~ s:LOGO_LINE4 + let logo4 += [ matchstr(nextline, s:LOGO_LINE4) ] + elseif nextline =~ s:LOGO_LINE3 + let logo3 += [ matchstr(nextline, s:LOGO_LINE3) ] + elseif nextline =~ s:LOGO_LINE2 + let logo2 += [ matchstr(nextline, s:LOGO_LINE2) ] + elseif nextline =~ s:LOGO_LINE1 + let logo1 += [ matchstr(nextline, s:LOGO_LINE1) ] + + " Lines in |...| are crawl components... + elseif nextline =~ s:CRAWL_LINE + let next_crawl = matchstr(nextline, s:CRAWL_LINE) + if strlen(next_crawl) > max_crawl_width + let max_crawl_width = strlen(substitute(next_crawl,'\s\+',' ','g')) + endif + let crawl += [ next_crawl ] + let centred += [ 0 ] + + " Lines in >...< are centred crawl components... + elseif nextline =~ s:CENTRED_CRAWL_LINE + let next_crawl = matchstr(nextline, s:CENTRED_CRAWL_LINE) + if strlen(next_crawl) > max_crawl_width + let max_crawl_width = strlen(substitute(next_crawl,'\s\+',' ','g')) + endif + let crawl += [ next_crawl ] + let centred += [ 1 ] + + " Anything else is preface... + else + let preface += [ substitute(matchstr(nextline, s:PREFACE_LINE), "^\s*", repeat(" ",s:PREFACE_POS.x), '') ] + + endif + endfor + + " Ensure all logos available... + let logo1 = len(logo1) ? logo1 : ["YOUR", "LOGO", "HERE"] + let logo2 = len(logo2) ? logo2 : copy(logo1) + let logo3 = len(logo3) ? logo3 : copy(logo2) + let logo4 = len(logo4) ? logo4 : copy(logo3) + + " Save current buffer for final transition effect... + let original_buffer = getline(1,'$') + + " Switch to a new buffer... + let prev_matches = getmatches() + enew! + let b:WIN = { 'x' : winwidth(0), 'y' : winheight(0) } + call setline(1, repeat([""], b:WIN.y + 1)) + + " And hide annoyances... + set lcs= + let old_rulerformat = &rulerformat + let &rulerformat="%#SWC_BLACK#%l" + echo "" + + " Generate starfield... + let stars = SWC_gen_stars() + + " Clear screen... + call setline(1, repeat([""], s:STARFIELD_HEIGHT * b:WIN.y) + original_buffer) + redraw + sleep 2 + + " Start with preface... + call matchadd('SWC_PREFACE', '.', 100) + call setline(s:PREFACE_POS.y, preface) + echo "" + redraw + sleep 5 + + " Clean up... + call clearmatches() + call setline(s:PREFACE_POS.y, repeat([""], len(preface))) + echo "" + redraw + sleep 1 + + " Then show logo receding at centre of screen... + call clearmatches() + call matchadd('SWC_BLACK', '*', 102) + call matchadd('SWC_STAR', '\s\zs[.]\ze\s', 101) + call matchadd('SWC_LOGO', '.', 100) + call SWC_draw_logo(logo1) + call SWC_paint_stars(stars) + echo "" + redraw + sleep 3 + + " Push it away... + call setline(1, repeat([""], b:WIN.y)) + call SWC_draw_logo(logo2) + call SWC_paint_stars(stars) + echo "" + redraw + sleep 500m + + call setline(1, repeat([""], b:WIN.y)) + call SWC_draw_logo(logo3) + call SWC_paint_stars(stars) + echo "" + redraw + sleep 500m + + call setline(1, repeat([""], b:WIN.y)) + call SWC_draw_logo(logo4) + call SWC_paint_stars(stars) + echo "" + redraw + sleep 500m + + + " Clean up... + call clearmatches() + call matchadd('SWC_STAR', '\s\zs[.]\ze\s', 101) + call setline(1, repeat([""], b:WIN.y)) + call SWC_paint_stars(stars) + echo "" + redraw + sleep 2 + + " Run crawl... + call clearmatches() + call matchadd('SWC_CRAWL', '.', 100) + call matchadd('SWC_STAR', '\s\zs[.]\ze\s', 101) + for offset_from_bottom in range(1, len(crawl) + b:WIN.y) + let crawl_line = offset_from_bottom < b:WIN.y ? 0 : offset_from_bottom - b:WIN.y + 1 + for screen_line in range(1, b:WIN.y) + if screen_line >= b:WIN.y - offset_from_bottom && crawl_line < len(crawl) + let padded_line = SWC_pad(crawl[crawl_line], screen_line, centred[crawl_line], max_crawl_width) + call setline(screen_line, padded_line) + let crawl_line += 1 + else + call setline(screen_line, "") + endif + endfor + call SWC_paint_stars(stars) + echo "" + redraw + exec 'sleep ' . s:trunc(1000/s:CRAWL_SPEED) . 'm' + if getchar(0) || offset_from_bottom > len(crawl) && padded_line !~ '\S' + break + endif + endfor + + " Pan starfield down... + call matchadd('SWC_FADE_DARK', '[^.]', 200) + sleep 200m + for offset_from_top in range(1, s:STARFIELD_HEIGHT * b:WIN.y) + 1delete + redraw + exec 'sleep ' . (200 - 2 * offset_from_top) . 'm' + endfor + sleep 200m + + + " Switch back to previous buffer and restore normal highlighting... + edit! # + call setmatches(prev_matches) + let &rulerformat = old_rulerformat + redraw + +endfunction + +function s:trunc (n) + return str2nr(string( a:n )) +endfunction + +function! SWC_draw_logo (logo) + let logo = copy(a:logo) + + " Find centre for logo... + let logo_width = 0 + for line in logo + if strlen(line) > logo_width + let logo_width = strlen(line) + endif + endfor + let logo_pos_x = (b:WIN.x - logo_width) / 2 + let logo_pos_y = (b:WIN.y - len(logo)) / 2 + + " Move logo to centre... + call map(logo, "repeat(' ', logo_pos_x) . v:val") + + " Draw logo + call setline(logo_pos_y, logo) + +endfunction + +function! SWC_pad (text, y_pos, centred, max_text_width) + + " Does this need padding??? + let words = split(a:text, '\s\+') + if len(words) < 1 + return a:text + endif + + " How many unpadded characters are there??? + let unpadded_width = 0 + for word in words + let unpadded_width += strlen(word) + endfor + + " How much padding is needed??? + let rel_y = (2.0 * a:y_pos / b:WIN.y) - 1.0 + let stretched_width = s:trunc( a:max_text_width + rel_y * (b:WIN.x - a:max_text_width) ) + let required_padding = max([ 0, stretched_width - unpadded_width ]) + let indent = (b:WIN.x - stretched_width) / 2 + let gap_count = len(words) - 1 + + " Is this a last line??? + let tight = a:centred || strlen(a:text) < 0.9 * a:max_text_width + + " Insert padding... + if a:y_pos >= b:WIN.y/2 + let min_padding_needed_for = gap_count + if tight + let min_pad_per_gap = max([ 1, s:trunc(rel_y * 6.0) ]) + else + let min_pad_per_gap = max([ 1, required_padding / gap_count ]) + let leftover_padding = required_padding - gap_count * min_pad_per_gap + let min_padding_needed_for = min([ gap_count, gap_count - leftover_padding ]) + endif + let padded_text = join(words[0 : min_padding_needed_for], repeat(" ", min_pad_per_gap)) + \ . repeat(" ", min_pad_per_gap+1) + \ . join(words[min_padding_needed_for+1 : -1], repeat(" ", min_pad_per_gap+1)) + let padded_text = substitute(padded_text, '\s*$', '', '') + + " Or remove chars (in the distance)... + elseif a:text =~ '\S' +" let delta = s:trunc( 8.0 * (b:WIN.y/2 - a:y_pos) ) +" let greeked_len = max([ 0, strlen(substitute(a:text, '^\s*\|\s*$', '', 'g')) - delta ]) + let greeked_len = tight ? stretched_width * (unpadded_width + gap_count) / a:max_text_width : stretched_width + let padded_text = repeat('~', greeked_len) + + " Or ignore it... + else + let padded_text = "" + + endif + + " Indent to centre... + let padded_text = substitute(padded_text, '\s*$', '', '') + let max_ever_padding = b:WIN.x - a:max_text_width + let indent = a:centred ? (b:WIN.x - strlen(padded_text))/2 + \ : indent + return repeat(" ", indent) . padded_text +endfunction + +function! SWC_gen_stars () + let star_count = b:WIN.x * s:STARFIELD_HEIGHT * b:WIN.y / s:STAR_DENSITY + let stars = [] + for n in range(star_count) + let x = RandomNumber(b:WIN.x) + 1 + let y = RandomNumber(s:STARFIELD_HEIGHT * b:WIN.y) + 1 + let stars += [{'y':y,'x':x}] + endfor + return stars +endfunction + +function! SWC_paint_stars (stars) + let max_x = b:WIN.x + for star in a:stars + let line = strpart(getline(star.y) . repeat(" ", max_x), 0, max_x) + let line = substitute(line, '\s\zs\%'.(star.x-1).'c\s\ze\s', '.', '') + call setline(star.y, line) + endfor +endfunction + +" Restore previous external compatibility options +let &cpo = s:save_cpo diff --git a/plugin/autoswap_mac.vim b/plugin/autoswap_mac.vim new file mode 100644 index 0000000..75a0e18 --- /dev/null +++ b/plugin/autoswap_mac.vim @@ -0,0 +1,111 @@ +" Vim global plugin for automating response to swapfiles +" Maintainer: Damian Conway +" License: This file is placed in the public domain. + +"############################################################# +"## ## +"## Note that this plugin only works for Vim sessions ## +"## running in Terminal on MacOS X. And only if your ## +"## Vim configuration includes: ## +"## ## +"## set title titlestring= ## +"## ## +"## See below for the two functions that would have to be ## +"## rewritten to port this plugin to other OS's. ## +"## ## +"############################################################# + + +" If already loaded, we're done... +if exists("loaded_autoswap_mac") + finish +endif +let loaded_autoswap_mac = 1 + +" Preserve external compatibility options, then enable full vim compatibility... +let s:save_cpo = &cpo +set cpo&vim + +" Invoke the behaviour whenever a swapfile is detected... +" +augroup AutoSwap_Mac + autocmd! + autocmd SwapExists * call AS_M_HandleSwapfile(expand(':p')) +augroup END + + +" The automatic behaviour... +" +function! AS_M_HandleSwapfile (filename) + + " Is file already open in another Vim session in some other Terminal window??? + let active_window = AS_M_DetectActiveWindow(a:filename) + + " If so, go there instead and terminate this attempt to open the file... + if (strlen(active_window) > 0) + call AS_M_DelayedMsg('Switched to existing session in another window') + call AS_M_SwitchToActiveWindow(active_window) + let v:swapchoice = 'q' + + " Otherwise, if swapfile is older than file itself, just get rid of it... + elseif getftime(v:swapname) < getftime(a:filename) + call AS_M_DelayedMsg("Old swapfile detected...and deleted") + call delete(v:swapname) + let v:swapchoice = 'e' + + " Otherwise, open file read-only... + else + call AS_M_DelayedMsg("Swapfile detected...opening read-only") + let v:swapchoice = 'o' + endif +endfunction + + +" Print a message after the autocommand completes +" (so you can see it, but don't have to hit to continue)... +" +function! AS_M_DelayedMsg (msg) + " A sneaky way of injecting a message when swapping into the new buffer... + augroup AutoSwap_Mac_Msg + autocmd! + " Print the message on finally entering the buffer... + autocmd BufWinEnter * echohl WarningMsg + exec 'autocmd BufWinEnter * echon "\r'.printf("%-60s", a:msg).'"' + autocmd BufWinEnter * echohl NONE + + " And then remove these autocmds, so it's a "one-shot" deal... + autocmd BufWinEnter * augroup AutoSwap_Mac_Msg + autocmd BufWinEnter * autocmd! + autocmd BufWinEnter * augroup END + augroup END +endfunction + + +"################################################################# +"## ## +"## Rewrite the following two functions to port this plugin ## +"## to other operating systems. ## +"## ## +"################################################################# + +" Return an identifier for a terminal window already editing the named file +" (Should either return a string identifying the active window, +" or else return an empty string to indicate "no active window")... +" +function! AS_M_DetectActiveWindow (filename) + let shortname = fnamemodify(a:filename,":t") + let active_window = system('osascript -e ''tell application "Terminal" to every window whose (name begins with "'.shortname.' " and name ends with "VIM")''') + let active_window = substitute(active_window, '^window id \d\+\zs\_.*', '', '') + return (active_window =~ 'window' ? active_window : "") +endfunction + + +" Switch to terminal window specified... +" +function! AS_M_SwitchToActiveWindow (active_window) + call system('osascript -e ''tell application "Terminal" to set frontmost of '.a:active_window.' to true''') +endfunction + + +" Restore previous external compatibility options +let &cpo = s:save_cpo diff --git a/plugin/betterdigraphs.vim b/plugin/betterdigraphs.vim new file mode 100644 index 0000000..6cea405 --- /dev/null +++ b/plugin/betterdigraphs.vim @@ -0,0 +1,376 @@ +" Vim global plugin for better digraph interactions... +" Maintainer: Damian Conway +" License: This file is placed in the public domain. + +"############################################################################## +"## ## +"## To use: ## +"## ## +"## inoremap BDG_GetDigraph() ## +"## ## +"############################################################################## +"## ## +"## Digraph naming scheme: ## +"## ## +"## 1. Accented characters ## +"## ## +"## Always the letter itself, followed by ## +"## the first character of the accent's name: ## +"## ## +"## A/a --> acute (e.g. aa --> á YA --> Ý ) ## +"## G/g --> grave (e.g. ag --> à og --> ò ) ## +"## C/c --> circumflex or cedilla (e.g. AC --> Â cc --> ç ) ## +"## U/u --> umlaut (e.g. au --> ä UU --> Ü ) ## +"## T/t --> tilde (e.g. at --> ã nt --> ñ ) ## +"## S/s --> slash (e.g. os --> ø OS --> Ø ) ## +"## R/r --> ring (e.g. AR --> Å ) ## +"## ## +"## ## +"## 2. Unaccented characters ## +"## ## +"## AE --> "[AE] diphthong" --> Æ ## +"## ae --> "[ae] diphthong" --> æ ## +"## TH --> "[TH]ORN] --> Þ ## +"## th --> "[th]orn] --> þ ## +"## EH --> "[E]T[H] --> Ð ## +"## eh --> "[e]t[h] --> ð ## +"## ss --> "long e[ss]" --> ß ## +"## ## +"## ## +"## 3. Non-alphabetics ## +"## (Usually the first letter(s) of each word, except where ambiguous, ## +"## in which case: the first and last letters are used instead.) ## +"## ## +"## ce --> "[ce]nt" --> ¢ ## +"## ci --> "[ci]rcumflex" --> ^ ## +"## co --> "[co]pyright" --> © ## +"## de --> "[de]gree" --> ° ## +"## mu --> "[mu]" --> µ ## +"## no --> "[no]t" --> ¬ ## +"## nu --> "[nu]mber" --> # ## +"## pa --> "[pa]ragraph" --> ¶ ## +"## po --> "[po]und" --> £ ## +"## re --> "[re]gistered" --> ® ## +"## se --> "[se]ction" --> § ## +"## sp --> "[sp]ace" --> ## +"## ti --> "[ti]lde" --> ~ ## +"## ye --> "[ye]n" --> ¥ ## +"## ## +"## as --> "[a]t [s]ign" --> @ ## +"## bb --> "[b]roken [b]ar" --> ¦ ## +"## bs --> "[b]ack [s]lash --> \ ## +"## bt --> "[b]ack [t]ick" --> ` ## +"## ds --> "[d]ivide [s]ign" --> ÷ ## +"## ft --> "[f]orward [t]ick" --> ´ ## +"## ms --> "[m]ultiply [s]ign" --> × ## +"## pm --> "[p]lus or [m]inus" --> ± ## +"## vb --> "[v]ertical [b]ar" --> | ## +"## ## +"## dr --> "[d]olla[r]" --> $ ## +"## dt --> "[d]o[t]" --> · ## +"## ## +"## ## +"## 4. Brackets ## +"## ('l/r' for left/right; 's/c/d' for square/curly/double-angle) ## +"## ## +"## ls --> [ rs --> ] ## +"## lc --> { rc --> } ## +"## ld --> « rd --> » ## +"## ## +"## ## +"## 3. Inverted punctuation ## +"## (Always the character followed by 'i' for inverted) ## +"## ## +"## !i --> ¡ ## +"## ?i --> ¿ ## +"## ## +"## ## +"## 3. Ordinals ## +"## (Always the character followed by 'o') ## +"## ## +"## ao --> ª ## +"## oo --> º ## +"## 1o --> ¹ ## +"## 2o --> ² ## +"## 3o --> ³ ## +"## ## +"## ## +"## 5. Some obvious pictographic alternatives ## +"## (Generally, doubling the letter produces the common variant) ## +"## ## +"## ++ --> ± ## +"## +- --> ± ## +"## xx --> × ## +"## ## +"## << --> « ## +"## >> --> » ## +"## ## +"## !! --> ¡ ## +"## ?? --> ¿ ## +"## ## +"## 11 --> ¹ ## +"## 22 --> ² ## +"## 33 --> ³ ## +"## ## +"## 14 --> ¼ ## +"## 12 --> ½ ## +"## 34 --> ¾ ## +"## ## +"## ## +"############################################################################## + + +" If already loaded, we're done... +if exists("loaded_betterdigraphs") + finish +endif +let loaded_betterdigraphs = 1 + +" Preserve external compatibility options, then enable full vim compatibility... +let s:save_cpo = &cpo +set cpo&vim + +" Highlight group that emulates cursor appearance during digraph insertion... +highlight BDG_Cursor_Emulation ctermfg=blue ctermbg=white + +" Highlight group to display hints... +highlight default link BDG_Digraph_Table SpecialKey + + +" How many entries per line in the displayed table??? +let s:ENTRIES_PER_LINE = 6 +let s:INTER_ENTRY_GAP = 2 + + +" Precompute spacings... +let s:ENTRY_SPACING = repeat(" ", 9) +let s:GAP_SPACING = repeat(" ", s:INTER_ENTRY_GAP) +let s:BLANK_LINE = [repeat(s:ENTRY_SPACING . s:GAP_SPACING, s:ENTRIES_PER_LINE) ] + +" This elaboration intercepts the timeouts on regular getchar()... +function! s:active_getchar () + let char = 0 + while !char + let char = getchar() + endwhile + return nr2char(char) +endfunction + +" Retrieve the digraph list (should be called in a :silent)... +function! s:get_digraphs () + redir => digraphs + digraphs + redir END + return substitute(digraphs,'\%d173', '-?','') " Translate invisible soft-hyphen +endfunction + +function! s:show_digraphs (digraphs, cursor_char, context) + " Pad digraph table to fill screen + let digraphs = copy(a:digraphs) + repeat([""], winheight(0)) + + " Display first half of digraph table... + echohl BDG_Digraph_Table + echon join(digraphs[0 : a:context.line-2], "\n") . "\n" + + " Display cursor line with emulated digraph marker... + echohl Normal + echon strpart(a:context.text, 0, a:context.col-1) + echohl BDG_Cursor_Emulation + echon a:cursor_char + echohl Normal + echon strpart(a:context.text, a:context.col-1) . "\n" + + " Display remainder of digraph table... + echohl BDG_Digraph_Table + echon join(digraphs[a:context.line-1 : winheight(0)-2], "\n") . "\n" + echohl None +endfunction + +let g:BDG_filtering = 1 + +" Filter out digraphs that don't start or end with the specified character... +function! s:filter_digraphs (digraphs, char) + if !g:BDG_filtering + return a:digraphs + endif + let digraphs = copy(a:digraphs) + + for line in range(len(digraphs)) + let filtered_line = [] + for digraph_spec in split(digraphs[line], '.\{9}\zs ') + let filtered_spec = substitute(digraph_spec, '\C^.. --> [^'.a:char.'].\s*$', repeat(' ',9), '') + let filtered_spec = substitute(filtered_spec, '\C^.. --> \zs['.a:char.']\ze\S\s*$', ' ', '') + let filtered_line += [filtered_spec] + endfor + let digraphs[line] = join(filtered_line, s:GAP_SPACING) . s:GAP_SPACING + endfor + + return digraphs +endfunction + +" Emulate a more helpful ^K... +function! BDG_GetDigraph () + " Locate cursor... + let context = { 'line': winline(), 'col': wincol(), 'text': getline('.') } + + " Grab list of digraphs... + let digraphs = s:digraph_table + + " Simulate first char of two-character digraph code (with or to escape)... + call s:show_digraphs(digraphs, '?', context) + let char1 = s:active_getchar() + + " Simulate second char of two-character digraph code (with or to escape)... + if (char1 == "\" || char1 == "\") + call feedkeys("\") + return "\\ " + else + call s:show_digraphs(s:filter_digraphs(digraphs, char1), char1, context) + let char2 = s:active_getchar() + endif + + " Return the digraph-constructing sequence... + return get(g:BDG_digraphs, char1.char2, "") + +endfunction + + +" Set up default set of characters if user hasn't specified... +if !exists('g:BDG_digraphs') + let g:BDG_digraphs = { + \ + \ 'sp' : ' ', + \ 'nu' : '#', + \ 'dr' : '$', + \ 'as' : '@', + \ 'bs' : '\', + \ 'ci' : '^', + \ 'bt' : '`', + \ 'vb' : '|', + \ 'ti' : '~', + \ 'ft' : '´', + \ "''" : '´', + \ + \ 'ls' : '[', 'rs' : ']', + \ 'lc' : '{', 'rc' : '}', + \ 'ld' : '«', 'rd' : '»', + \ '<<' : '«', '>>' : '»', + \ + \ '!!' : '¡', '??' : '¿', + \ 'i!' : '¡', 'i?' : '¿', + \ '!i' : '¡', '?i' : '¿', + \ + \ 'ce' : '¢', + \ 'po' : '£', + \ 'ye' : '¥', + \ + \ 'bb' : '¦', + \ 'se' : '§', + \ 'pa' : '¶', + \ 'co' : '©', + \ 're' : '®', + \ 'sh' : '­', + \ + \ 'mu' : 'µ', + \ 'no' : '¬', + \ 'dt' : '·', + \ 'do' : '·', + \ '+-' : '±', + \ 'pm' : '±', + \ 'ms' : '×', + \ 'xx' : '×', + \ 'ds' : '÷', + \ 'di' : '÷', + \ 'de' : '°', + \ + \ 'ao' : 'ª', + \ 'oo' : 'º', + \ '11' : '¹', + \ '22' : '²', + \ '33' : '³', + \ + \ '14' : '¼', + \ '12' : '½', + \ '34' : '¾', + \ + \ 'AG' : 'À', 'EG' : 'È', 'IG' : 'Ì', 'OG' : 'Ò', 'UG' : 'Ù', + \ 'AA' : 'Á', 'EA' : 'É', 'IA' : 'Í', 'OA' : 'Ó', 'UA' : 'Ú', 'YA' : 'Ý', + \ 'AC' : 'Â', 'EC' : 'Ê', 'IC' : 'Î', 'OC' : 'Ô', 'UC' : 'Û', + \ 'AU' : 'Ä', 'EU' : 'Ë', 'IU' : 'Ï', 'OU' : 'Ö', 'UU' : 'Ü', + \ 'AT' : 'Ã', 'OT' : 'Õ', + \ 'AR' : 'Å', + \ 'AE' : 'Æ', 'OS' : 'Ø', + \ + \ 'ag' : 'à', 'eg' : 'è', 'ig' : 'ì', 'og' : 'ò', 'ug' : 'ù', + \ 'aa' : 'á', 'ea' : 'é', 'ia' : 'í', 'oa' : 'ó', 'ua' : 'ú', 'ya' : 'ý', + \ 'ac' : 'â', 'ec' : 'ê', 'ic' : 'î', 'oc' : 'ô', 'uc' : 'û', + \ 'au' : 'ä', 'eu' : 'ë', 'iu' : 'ï', 'ou' : 'ö', 'uu' : 'ü', 'yu' : 'ÿ', + \ 'at' : 'ã', 'ot' : 'õ', + \ 'ar' : 'å', + \ 'ae' : 'æ', 'os' : 'ø', + \ + \ 'CC' : 'Ç', + \ 'cc' : 'ç', + \ + \ 'NT' : 'Ñ', + \ 'NN' : 'Ñ', + \ 'nt' : 'ñ', + \ 'nn' : 'ñ', + \ + \ 'ss' : 'ß', + \ + \ 'TH' : 'Þ', + \ 'th' : 'þ', + \ 'DH' : 'Ð', + \ 'dh' : 'ð', + \} +endif + + +function! s:by_value (v1, v2) + return a:v1[1] < a:v2[1] ? -1 + \ : a:v1[1] > a:v2[1] ? 1 + \ : 0 +endfunction + +" Remove any digraphs that were specified as unwanted... +if exists('g:BDG_remove') + if type(g:BDG_remove) == type([]) + for char in g:BDG_remove + call filter(g:BDG_digraphs, 'v:val != char') + endfor + else + call filter(g:BDG_digraphs, 'v:val !~ g:BDG_remove') + endif +endif + +" Add any extra digraphs that were requested... +if exists('g:BDG_add') + call extend(g:BDG_digraphs, g:BDG_add) +endif + +" Create the display table components... +let s:digraph_table = [] +let current_line = [] +for digraph in sort(items(g:BDG_digraphs), "\by_value") + " Make soft hyphens printable... + let digraph[1] = (digraph[1] == '­') ? '-?' : digraph[1] + + " Construct next entry in table... + let current_line += [printf('%2s', digraph[1]) . ' --> ' . digraph[0]] + + " When next line of table is full, construct the line... + if len(current_line) == s:ENTRIES_PER_LINE + let s:digraph_table += [join(current_line, s:GAP_SPACING) . s:GAP_SPACING] + let current_line = [] + endif +endfor +if len(current_line) + let current_line += repeat([s:ENTRY_SPACING], s:ENTRIES_PER_LINE - len(current_line)) + let s:digraph_table += [join(current_line, s:GAP_SPACING) . s:GAP_SPACING] +endif +let s:digraph_table = s:BLANK_LINE + s:digraph_table + s:BLANK_LINE + + +" Restore previous external compatibility options +let &cpo = s:save_cpo diff --git a/plugin/dragvisuals.vim b/plugin/dragvisuals.vim new file mode 100644 index 0000000..12c4f5d --- /dev/null +++ b/plugin/dragvisuals.vim @@ -0,0 +1,345 @@ +" Vim global plugin for dragging virtual blocks +" Last change: Tue Jul 24 07:19:35 EST 2012 +" Maintainer: Damian Conway +" License: This file is placed in the public domain. + +"######################################################################### +"## ## +"## Add the following (uncommented) to your .vimrc... ## +"## ## +"## runtime plugin/dragvisuals.vim ## +"## ## +"## vmap DVB_Drag('left') ## +"## vmap DVB_Drag('right') ## +"## vmap DVB_Drag('down') ## +"## vmap DVB_Drag('up') ## +"## vmap D DVB_Duplicate() ## +"## ## +"## " Remove any introduced trailing whitespace after moving... ## +"## let g:DVB_TrimWS = 1 ## +"## ## +"## Or, if you use the arrow keys for normal motions, choose ## +"## four other keys for block dragging. For example: ## +"## ## +"## vmap h DVB_Drag('left') ## +"## vmap l DVB_Drag('right') ## +"## vmap j DVB_Drag('down') ## +"## vmap k DVB_Drag('up') ## +"## ## +"## Or: ## +"## ## +"## vmap DVB_Drag('left') ## +"## vmap DVB_Drag('right') ## +"## vmap DVB_Drag('down') ## +"## vmap DVB_Drag('up') ## +"## ## +"## Or even: ## +"## ## +"## vmap DVB_Drag('left') ## +"## vmap DVB_Drag('right') ## +"## vmap DVB_Drag('down') ## +"## vmap DVB_Drag('up') ## +"## ## +"######################################################################### + + +" If already loaded, we're done... +if exists("loaded_dragvirtualblocks") + finish +endif +let loaded_dragvirtualblocks = 1 + +" Preserve external compatibility options, then enable full vim compatibility... +let s:save_cpo = &cpo +set cpo&vim + +"====[ Implementation ]==================================== + +" Toggle this to stop trimming on drags... +if !exists('g:DVB_TrimWS') + let g:DVB_TrimWS = 1 +endif + +function! DVB_Drag (dir) + " No-op in Visual mode... + if mode() ==# 'v' + return "\gv" + + " Do Visual Line drag indirectly via temporary nmap + " (to ensure we have access to block position data)... + elseif mode() ==# 'V' + " Set up a temporary convenience... + exec "nnoremap M \Drag_Lines('".a:dir."')" + + " Return instructions to implement the move and reset selection... + return '"vyM' + + " Otherwise do Visual Block drag indirectly via temporary nmap + " (to ensure we have access to block position data)... + else + " Set up a temporary convenience... + exec "nnoremap M \Drag_Block('".a:dir."')" + + " Return instructions to implement the move and reset selection... + return '"vyM' + endif +endfunction + +" Duplicate selected block and place to the right... +function! DVB_Duplicate () + exec "nnoremap M \DuplicateBlock()" + return '"vyM' +endfunction + +function! s:DuplicateBlock () + nunmap M + " Locate block boundaries... + let [buf_left, line_left, col_left, offset_left ] = getpos("'<") + let [buf_right, line_right, col_right, offset_right] = getpos("'>") + + " Identify special '$' blocks... + let dollar_block = 0 + let start_col = min([col_left+offset_left, col_right+offset_right]) + let end_col = max([col_left+offset_left, col_right+offset_right]) + let visual_width = end_col - start_col + 1 + for visual_line in split(getreg("v"),"\n") + if strlen(visual_line) > visual_width + let dollar_block = 1 + let visual_width = strlen(visual_line) + endif + endfor + let square_up = (dollar_block ? (start_col+visual_width-2).'|' : '') + + set virtualedit=all + return 'gv'.square_up.'yPgv' + \. (visual_width-dollar_block) . 'lo' . (visual_width-dollar_block) . 'l' + \. "y:set virtualedit=block\gv" + \. (dollar_block ? 'o$' : '') +endfunction + + +" Kludge to hide change reporting inside implementation... +let s:NO_REPORT = ":let b:DVB_report=&report\:let &report=1000000000\" +let s:PREV_REPORT = ":let &report = b:DVB_report\" + + +" Drag in specified direction in Visual Line mode... +function! s:Drag_Lines (dir) + " Clean up the temporary convenience... + nunmap M + + " Locate block being shifted... + let [buf_left, line_left, col_left, offset_left ] = getpos("'<") + let [buf_right, line_right, col_right, offset_right] = getpos("'>") + + " Drag entire lines left if possible... + if a:dir == 'left' + " Are all lines indented at least one space??? + let lines = getline(line_left, line_right) + let all_indented = match(lines, '^[^ ]') == -1 + nohlsearch + + " If can't trim one space from start of each line, be a no-op... + if !all_indented + return 'gv' + + " Otherwise drag left by removing one space from start of each line... + else + return s:NO_REPORT + \ . "gv:s/^ //\" + \ . s:PREV_REPORT + \ . "gv" + endif + + " To drag entire lines right, add a space in column 1... + elseif a:dir == 'right' + return s:NO_REPORT + \ . "gv:s/^/ /\:nohlsearch\" + \ . s:PREV_REPORT + \ . "gv" + + " To drag entire lines upwards... + elseif a:dir == 'up' + let EOF = line('$') + + " Can't drag up if at first line... + if line_left == 1 || line_right == 1 + return 'gv' + + " Needs special handling at EOF (because cursor moves up on delete)... + elseif line_left == EOF || line_right == EOF + let height = line_right - line_left + let select_extra = height ? height . 'j' : "" + return s:NO_REPORT + \ . 'gvxP' + \ . s:PREV_REPORT + \ . 'V' . select_extra + + " Otherwise just cut-move-paste-reselect... + else + let height = line_right - line_left + let select_extra = height ? height . 'j' : "" + return s:NO_REPORT + \ . 'gvxkP' + \ . s:PREV_REPORT + \ . 'V' . select_extra + endif + + " To drag entire lines downwards... + elseif a:dir == 'down' + let EOF = line('$') + + " This is how much extra we're going to have to reselect... + let height = line_right - line_left + let select_extra = height ? height . 'j' : "" + + " Needs special handling at EOF (to push selection down into new space)... + if line_left == EOF || line_right == EOF + return "O\gv" + + " Otherwise, just cut-move-paste-reselect... + else + return s:NO_REPORT + \ . 'gvxp' + \ . s:PREV_REPORT + \ . 'V' . select_extra + endif + + endif +endfunction + +" Drag in specified direction in Visual Block mode... +function! s:Drag_Block (dir) + " Clean up the temporary convenience... + nunmap M + + " Locate block being shifted... + let [buf_left, line_left, col_left, offset_left ] = getpos("'<") + let [buf_right, line_right, col_right, offset_right] = getpos("'>") + + " Identify special '$' blocks... + let dollar_block = 0 + let start_col = min([col_left+offset_left, col_right+offset_right]) + let end_col = max([col_left+offset_left, col_right+offset_right]) + let visual_width = end_col - start_col + 1 + for visual_line in split(getreg("v"),"\n") + if strlen(visual_line) > visual_width + let dollar_block = 1 + let visual_width = strlen(visual_line) + endif + endfor + let square_up = (dollar_block ? (start_col+visual_width-2).'|' : '') + + " Drag left... + if a:dir == 'left' + "Can't drag left at left margin... + if col_left == 1 || col_right == 1 + return 'gv' + + " Otherwise reposition one column left (and optionally trim any whitespace)... + elseif g:DVB_TrimWS + " May need to be able to temporarily step past EOL... + let prev_ve = &virtualedit + set virtualedit=all + + " Are we moving past other text??? + let square_up_final = "" + if dollar_block + let lines = getline(line_left, line_right) + if match(lines, '^.\{'.(start_col-2).'}\S') >= 0 + let dollar_block = 0 + let square_up_final = (start_col+visual_width-3).'|' + endif + endif + + let vcol = start_col - 2 + return 'gv'.square_up.'xhP' + \ . s:NO_REPORT + \ . "gvhoho:s/\\s*$//\gv\" + \ . ':set virtualedit=' . prev_ve . "\" + \ . s:PREV_REPORT + \ . ":nohlsearch\gv" + \ . (dollar_block ? '$' : square_up_final ) + else + return 'gv'.square_up.'xhPgvhoho' + endif + + " Drag right... + elseif a:dir == 'right' + " May need to be able to temporarily step past EOL... + let prev_ve = &virtualedit + set virtualedit=all + + " Reposition block one column to the right... + if g:DVB_TrimWS + let vcol = start_col + return 'gv'.square_up.'xp' + \ . s:NO_REPORT + \ . "gvlolo" + \ . ":s/\\s*$//\gv\" + \ . ':set virtualedit=' . prev_ve . "\" + \ . s:PREV_REPORT + \ . (dollar_block ? 'gv$' : 'gv') + else + return 'gv'.square_up.'xp:set virtualedit=' . prev_ve . "\gvlolo" + endif + + " Drag upwards... + elseif a:dir == 'up' + " Can't drag upwards at top margin... + if line_left == 1 || line_right == 1 + return 'gv' + endif + + " May need to be able to temporarily step past EOL... + let prev_ve = &virtualedit + set virtualedit=all + + " If trimming whitespace, jump to just below block to do it... + if g:DVB_TrimWS + let height = line_right - line_left + 1 + return 'gv'.square_up.'xkPgvkoko"vy' + \ . height + \ . 'j:s/\s*$//' + \ . "\:nohlsearch\:set virtualedit=" + \ . prev_ve + \ . "\gv" + \ . (dollar_block ? '$' : '') + + " Otherwise just move and reselect... + else + return 'gv'.square_up.'xkPgvkoko"vy:set virtualedit=' + \ . prev_ve + \ . "\gv" + \ . (dollar_block ? '$' : '') + endif + + " Drag downwards... + elseif a:dir == 'down' + " May need to be able to temporarily step past EOL... + let prev_ve = &virtualedit + set virtualedit=all + + " If trimming whitespace, move to just above block to do it... + if g:DVB_TrimWS + return 'gv'.square_up.'xjPgvjojo"vyk:s/\s*$//' + \ . "\:nohlsearch\:set virtualedit=" + \ . prev_ve + \ . "\gv" + \ . (dollar_block ? '$' : '') + + " Otherwise just move and reselect... + else + return 'gv'.square_up.'xjPgvjojo"vy' + \ . "\:set virtualedit=" + \ . prev_ve + \ . "\gv" + \ . (dollar_block ? '$' : '') + endif + endif +endfunction + + +" Restore previous external compatibility options +let &cpo = s:save_cpo + diff --git a/plugin/hudigraphs.vim b/plugin/hudigraphs.vim new file mode 100644 index 0000000..7270cd5 --- /dev/null +++ b/plugin/hudigraphs.vim @@ -0,0 +1,143 @@ +" Vim global plugin for heads-up digraph interactions... +" Maintainer: Damian Conway +" License: This file is placed in the public domain. + +"############################################################################## +"## ## +"## To use: ## +"## ## +"## inoremap HUDG_GetDigraph() ## +"## ## +"############################################################################## + + +" If already loaded, we're done... +if exists("loaded_hudigraphs") + finish +endif +let loaded_hudigraphs = 1 + +" Preserve external compatibility options, then enable full vim compatibility... +let s:save_cpo = &cpo +set cpo&vim + + +" Highlight group that emulates cursor appearance during digraph insertion... +highlight HUDG_Cursor_Emulation ctermfg=blue ctermbg=white + + +" This elaboration intercepts the timeouts on regular getchar()... +function! s:active_getchar () + let char = 0 + while !char + let char = getchar() + endwhile + return nr2char(char) +endfunction + +" Retrieve the digraph list (should be called in a :silent)... +function! s:get_digraphs () + redir => digraphs + digraphs + redir END + return substitute(digraphs,'\%d173', '-?','') " Translate invisible soft-hyphen +endfunction + +function! s:show_digraphs (digraphs, cursor_char, context) + " Pad digraph table to fill screen + let digraphs = copy(a:digraphs) + repeat(['~'], winheight(0)) + + " Display first half of digraph table... + echon "\n" + echohl SpecialKey + echon join(digraphs[0 : a:context.line-2], "\n") . "\n" + + " Display cursor line with emulated digraph marker... + echohl Normal + echon strpart(a:context.text, 0, a:context.col-1) + echohl HUDG_Cursor_Emulation + echon a:cursor_char + echohl Normal + echon strpart(a:context.text, a:context.col-1) . "\n" + + " Display remainder of digraph table... + echohl SpecialKey + echon join(digraphs[a:context.line-1 : winheight(0)-2], "\n") . "\n" + echohl None +endfunction + +let g:HUDG_filtering = 1 + +" Filter out digraphs that don't start or end with the specified character... +function! s:filter_digraphs (digraphs, char) + if !g:HUDG_filtering + return a:digraphs + endif + let digraphs = copy(a:digraphs) + + for line in range(len(digraphs)) + let filtered_line = [] + for digraph_spec in split(digraphs[line], '.\{9}\zs ') + let filtered_spec = substitute(digraph_spec, '\C^.. --> [^'.a:char.']\{2}\s*$', repeat(' ',9), '') + let filtered_spec = substitute(filtered_spec, '\C^.. --> \S\zs['.a:char.']\ze\s*$', ' ', '') + let filtered_spec = substitute(filtered_spec, '\C^.. --> \zs['.a:char.']\ze\S\s*$', ' ', '') + let filtered_line += [filtered_spec] + endfor + let digraphs[line] = join(filtered_line, ' ') + endfor + + return digraphs +endfunction + +" Rearrange digraph table more usefully... +function! s:get_retabulated_digraphs () + " Get raw data... + silent let digraphs_list = split(s:get_digraphs(), "\n") + + " Convert to table... + let digraphs_table = [] + for line in range(len(digraphs_list)) + let table_line = [] + for digraph_spec in split(digraphs_list[line], '.\{9}\zs ') + let match_parts = matchlist(digraph_spec, '^\(..\) \(\S\{1,2}\)') + if !len(match_parts) + let match_parts = ['','??','?'] + endif + let table_line += [printf("%2s",match_parts[2]) . ' --> ' . match_parts[1]] + endfor + let digraphs_table += [join(table_line, ' ')] + endfor + + return digraphs_table +endfunction + +" Emulate a more helpful ^K... +function! HUDG_GetDigraph () + " Locate cursor... + let context = { 'line': winline(), 'col': wincol(), 'text': getline('.') } + + " Grab list of digraphs... + let digraphs = s:get_retabulated_digraphs() + + " Simulate first char of two-character digraph code (with or to escape)... + call s:show_digraphs(digraphs, '?', context) + let char1 = s:active_getchar() + + " Simulate second char of two-character digraph code (with or to escape)... + if (char1 == "\" || char1 == "\") + let char2 = "" + else + call s:show_digraphs(s:filter_digraphs(digraphs, char1), char1, context) + let char2 = s:active_getchar() + endif + + " Return the digraph-constructing sequence... + return "\".char1.char2 +endfunction + + + + + +" Restore previous external compatibility options +let &cpo = s:save_cpo diff --git a/plugin/listtrans.vim b/plugin/listtrans.vim new file mode 100644 index 0000000..16ef9f8 --- /dev/null +++ b/plugin/listtrans.vim @@ -0,0 +1,121 @@ +" Vim global plugin for list format translations +" Maintainer: Damian Conway +" License: This file is placed in the public domain. + +"###################################################################### +"## ## +"## To use: ## +"## ## +"## nmap :call ListTrans_toggle_format() ## +"## vmap :call ListTrans_toggle_format('visual') ## +"## ## +"## For example: ## +"## ## +"## nmap ;l :call ListTrans_toggle_format() ## +"## vmap ;l :call ListTrans_toggle_format('visual') ## +"## ## +"###################################################################### + + +" If already loaded, we're done... +if exists("loaded_listtrans") + finish +endif +let loaded_listtrans = 1 + +" Preserve external compatibility options, then enable full vim compatibility... +let s:save_cpo = &cpo +set cpo&vim + +" Useful constants... +let g:LT_DEF_LIST_CONJ = 'and' +let g:LT_CONJUNCTIONS = [ +\ 'and\s\+not', 'and', 'plus', 'with', +\ 'or\s\+else', 'or\s\+otherwise', +\ 'or', 'nor', 'but\s\+not', 'but', +\ 'else', 'otherwise' +\] + +" Build the necessary pattern... +let s:LT_CONJ_PAT = join(g:LT_CONJUNCTIONS, '\|') + +" This is the entire interface... +function! ListTrans_toggle_format (...) range + " Extract the target text... + if a:0 + silent normal gvy + else + silent normal vipy + endif + let text = getreg("") + + " Remember the indent and any bullet... + let [match, indent, bullet; etc] = matchlist(text, '^\(\s*\)\([^A-Za-z \t]*\s*\)') + + " If it starts with a bullet, are there more bullets??? + if strlen(bullet) > 0 + let items = split(substitute(text,'^\s*\V'.bullet,'',''), '\n\s*\V'.bullet) + call map(items, 'substitute(v:val,''[[:space:]]\+''," ","g")') + call map(items, 'substitute(v:val,''[[:space:]]$'',"","")') + + " If two or more bulleted items, it's bullet list --> text list... + if len(items) >= 2 + " Infer the correct conjunction... + let has_conj = matchlist(items[-2], '^\(\_.\{-}\)[,;]\?\s*\('.s:LT_CONJ_PAT.'\)\s*$') + let [items[-2], conj] = len(has_conj) ? has_conj[1:2] : [items[-2], g:LT_DEF_LIST_CONJ] + + " Conjoin the various items (using Oxford rules)... + if len(items) == 2 + let sep = len(filter(copy(items), 'v:val =~ ","')) ? ', ' : ' ' + let reformatted_text = indent . join(items, sep.conj.' ') + else + let sep = len(filter(copy(items), 'v:val =~ ","')) ? '; ' : ', ' + let reformatted_text = indent . join(items[0:-2], sep) + \ . sep . conj . ' ' + \ . items[-1] + endif + + " Paste back into buffer in place of original... + call setreg("", reformatted_text, mode()) + silent normal gvp + return + endif + endif + + " Otherwise, it's text list --> bullet list... + + " Identify and remove initial indent... + let [match, indent, text; etc] = matchlist(text, '^\(\s*\)\(\_.*\)') + + " Minimize whitespace... + let text = substitute(text,'[[:space:]]\+'," ",'g') + let text = substitute(text,'[[:space:]]\+$','','') + + " Identify most likely separator... + let sep = text =~ ';' ? '\s*;\s*' + \ : text =~ ',' ? '\s*,\s*' + \ : '\s\+\(' . s:LT_CONJ_PAT . '\)\s\+' + + " Separate... + let items = split(text, sep) + + " Check for an extra conjunction in the last item... + let last_item = remove(items, -1) + let last_sep = matchstr(last_item, '^\s*\(' . s:LT_CONJ_PAT . '\)\>\s*') + if strlen(last_sep) + let [last_item] = split(last_item, '\s*\(' . s:LT_CONJ_PAT . '\)\s\+') + if last_sep !~ '^\s*\(and\|plus\)' + let items[-1] .= ', ' . last_sep + endif + endif + let items += [last_item] + + " Rejoin and paste back into buffer in place of original... + let reformatted_text = join(map(items, 'indent."- ".v:val."\n"'), "") + call setreg("", reformatted_text, mode()) + silent normal gvp + +endfunction + +" Restore previous external compatibility options +let &cpo = s:save_cpo diff --git a/plugin/vmath.vim b/plugin/vmath.vim new file mode 100644 index 0000000..d289795 --- /dev/null +++ b/plugin/vmath.vim @@ -0,0 +1,140 @@ +" Vim global plugin for math on visual regions +" Maintainer: Damian Conway +" License: This file is placed in the public domain. + +"###################################################################### +"## ## +"## To use: ## +"## ## +"## vmap ++ VMATH_YankAndAnalyse() ## +"## nmap ++ vip++ ## +"## ## +"## (or whatever keys you prefer to remap these actions to) ## +"## ## +"###################################################################### + + +" If already loaded, we're done... +if exists("loaded_vmath") + finish +endif +let loaded_vmath = 1 + +" Preserve external compatibility options, then enable full vim compatibility... +let s:save_cpo = &cpo +set cpo&vim + +" Grab visual selection and do simple math on it... +function! VMATH_YankAndAnalyse () + return "y:call VMATH_Analyse()\gv" +endfunction + +" What to consider a number... +let s:NUM_PAT = '^[+-]\?\d\+\%([.]\d\+\)\?\([eE][+-]\?\d\+\)\?$' + +" How widely to space the report components... +let s:REPORT_GAP = 5 "spaces between components + +" Do simple math on current yank buffer... +function! VMATH_Analyse () + " Extract data from selection... + let selection = getreg('') + let raw_numbers = filter(split(selection), 'v:val =~ s:NUM_PAT') + let numbers = map(copy(raw_numbers), 'str2float(v:val)') + + " Results include a newline if original selection did... + let newline = selection =~ "\n" ? "\n" : "" + + " Calculate and en-register various interesting metrics... + let summation = len(numbers) ? join( numbers, ' + ') : '0' + call setreg('s', s:tidy( eval( summation ) )) " Sum --> register s + call setreg('a', s:average(raw_numbers) ) " Average --> register a + call setreg('x', s:tidy( s:max(numbers) )) " Max --> register x + call setreg('n', s:tidy( s:min(numbers) )) " Min --> register n + call setreg('r', @n . ' to ' . @x ) " Range --> register r + + " Default paste buffer should depend on original contents (TODO) + call setreg('', @s ) + + " Report... + let gap = repeat(" ", s:REPORT_GAP) + highlight NormalUnderlined term=underline cterm=underline gui=underline + echohl NormalUnderlined + echo 's' + echohl NONE + echon 'um: ' . @s . gap + echohl NormalUnderlined + echon 'a' + echohl NONE + echon 'vg: ' . @a . gap + echon 'mi' + echohl NormalUnderlined + echon 'n' + echohl NONE + echon ': ' . @n . gap + echon 'ma' + echohl NormalUnderlined + echon 'x' + echohl NONE + echon ': ' . @x . gap + +endfunction + +" Prettify numbers... +function! s:tidy (number) + let tidied = printf('%g', a:number) + return substitute(tidied, '[.]0\+$', '', '') +endfunction + +" Compute average with meaningful number of decimal places... +function! s:average (numbers) + " Compute average... + let summation = eval( len(a:numbers) ? join( a:numbers, ' + ') : '0' ) + let avg = 1.0 * summation / s:max([len(a:numbers), 1]) + + " Determine significant figures... + let min_decimals = 15 + for num in a:numbers + let decimals = strlen(matchstr(num, '[.]\d\+$')) - 1 + if decimals < min_decimals + let min_decimals = decimals + endif + endfor + + " Adjust answer... + return min_decimals > 0 ? printf('%0.'.min_decimals.'f', avg) + \ : string(avg) +endfunction + +" Reimplement these because the builtins don't handle floats (!!!) +function! s:max (numbers) + if !len(a:numbers) + return 0 + endif + let numbers = copy(a:numbers) + let maxnum = numbers[0] + for nextnum in numbers[1:] + if nextnum > maxnum + let maxnum = nextnum + endif + endfor + return maxnum +endfunction + +function! s:min (numbers) + if !len(a:numbers) + return 0 + endif + let numbers = copy(a:numbers) + let minnum = numbers[0] + for nextnum in numbers[1:] + if nextnum < minnum + let minnum = nextnum + endif + endfor + return minnum +endfunction + + +" Restore previous external compatibility options +let &cpo = s:save_cpo diff --git a/spell/en-basic.latin1.spl b/spell/en-basic.latin1.spl new file mode 100644 index 0000000000000000000000000000000000000000..61f4004978f3bd24b706a7a8c27ca84da5d12eb7 GIT binary patch literal 18129 zcmbuHdyrh!edq7FkM5p_Gzf{89pR$10=pa>Dr3A|DX=ONTneTfS*v15VJgM#$8?0PjAm*oA;zAy5-cpEu-YMsGuTOpz`+80y#&W5YnO30#&~Kmh^kfD$Us;V#tO+Q zV2AO3zQ1#4BwWc~E0^!wzV|$S=l6bH#;^ZSce>ha{<3pH;G)}u|IdHXzx^-B9=m_% zU$Fi>xc&Cu{pcMZ`}pF2{=~uG`~5pVdFZZB9scy)NB-cR|8n%dF5UZwfAq(n`IF`Q zKKr>p{j)#6|1XX`@ZjhF@}VyrfB2Cve(Aq``M*Eu>zzr~mrq+V}sR_y3Z;|Jl!i;2n>@EiIKR)rnfY zaoc2bs@0y}-|6=HGqVTg=C=mC(i@&nXHTPMyX&f9&~ZW7pK-k~0Gq|Ga9XT})wXNt zcC73=Zrb%+!?o>ID=s%Wy{Ot~N6l##;5Ebcq^=ihf!%4f9cqb+F7}RVm&yKq&Q+Mx z(sor_uj2atXTxt;thtJT(yKDbgVT+JM!TQ}A8hF4QPAoEq#u|fn?3Nv9g=6rjSkW1Z9UW((tlJ)I zRSkN>+K~nifyf4VEFDZ;$0pk`jx?q@xWO^j8Z6hEQ*F_7mhAcPS-IR{W{|#xy zDZj|_Ts}xkQ|)QSztVT}VmED5(E@wKQQ|RoQzPQHkrrMFf~Wc%udz;nvC42@XsT3e zjmcKK+ncjvc5E%^-3@~tPpa#X70X(#S8Z}#=(wsKdYvCdXa~3QZmbCab7#2&ylWks z>tX5`;)9%e`iTxSbi^94V>-ech8ewW{?3!Z*%uzMM0gvM;Z|fWq&m=lTq%BHQj0UF#hDv$`z~}JloH3;!aKF zHss4VwAa?)t}b()><3$6no04iCIzE2ppA2F*4|5#B1lh4XI<=;+uVCKFl}_W7WT_T z@}r(@m#e)ft#<6xED=g9_O#GQS}_yGJ>{sz&lQ9bWK{cMUBr>#@pQp3dtGS?WVjd7 zHe$ie>xjCB7$b}tut%ZXq%bx%$%Qk``nLzOg%-PowAyI4JAHdSptVb$G4-I8amSO%;Ao;fXCQmxe}+Eb2Z#)yuS)*4NP=IReXC6QF;*sa%;6o!;NXSBMnmn z*?q_3eP!B6Q>=K>YR;rrFTyw?B^0|8O_a7@%I|^X+rkIE=nIOws;+*np6RT^y*RZw zNU<&u^Bvd`h8}5X@w;^BSgTLMXKt-0`H#jca81KaXxlygFg1%XHf6eDOe#IRYD$Jj zCwEJ2Q+-Plg4L@=ud<6sn$f3tKxDZw)deCo+zg8w))q~yjBL|KuFI$v8Ibd`FmqE(XSdL*Mw-iiCXf+szE8YR;l(lqbYc= zEOÕ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 literal 0 HcmV?d00001