Skip to content
Find file
Fetching contributors…
Cannot retrieve contributors at this time
79 lines (57 sloc) 2.11 KB

Heads up! I don't use this anymore. It ended up being too distracting and occasionally counterproductive. Here's what I use now:

Edit again: I don't even use this anymore. <cue deal-with-it gif>

" Matchparen is confusing in normal mode
"augroup insertMatch
"    au!
"    au BufReadPost * NoMatchParen
"    au InsertEnter * DoMatchParen
"    au InsertLeave * NoMatchParen
"augroup END</strike>

We now take you to your regularly scheduled program.

Ripped straight from an email I wrote to some friends, it's

Parentheses Crosshairs

Showing crosshairs on the cursor when it's on top of parentheses (or other elements of 'matchpairs').


Use pathogen or vundle, or copy plugin/paren_crosshairs.vim to ~.vim/plugin.


The matchparen plugin tries to do a good thing; namely, highlight the paren that matches the one under the cursor. However, my friends and I found that having two parentheses highlighted always confounds our intuition about where the cursor actually is.

This plugin deals with this problem by setting cursorline and cursorcolumn when the cursor is on a paren.

Screenshot time!


Demo of two highlighted parens

Where's the cursor?


Demo of paren crosshairs

There it is!


Here's the original text of the email. The current plugin just has a few niceties added:

func! TargetMatchpairs()
    if !exists('b:targetAcquired')
        let b:targetAcquired = 0
    if !exists('b:matchPairs')
        " '[:],{,},(,)' --> '[]{}()'
        let b:matchPairs = substitute(&matchpairs, "[,:]", "", "g")
    let curChar = getline('.')[col('.') - 1]
    let targetInReticule = stridx(b:matchPairs, curChar) >= 0
    if targetInReticule && !b:targetAcquired
        set cuc cul
        let b:targetAcquired = 1
    elseif !targetInReticule && b:targetAcquired
        set nocuc nocul
        let b:targetAcquired = 0

augroup TargetMatchpairs
    au CursorMoved,CursorMovedI * call TargetMatchpairs()
augroup END
Something went wrong with that request. Please try again.