" Vim filetype plugin " Language: J " Maintainer: David Bürgin <676c7473@gmail.com> " URL: https://github.com/glts/vim-j " Last Change: 2014-04-05 if exists('b:did_ftplugin') finish endif let b:did_ftplugin = 1 let s:save_cpo = &cpo set cpo&vim setlocal iskeyword=48-57,A-Z,_,a-z setlocal comments=:NB. setlocal commentstring=NB.\ %s setlocal formatoptions-=t setlocal shiftwidth=2 softtabstop=2 expandtab setlocal matchpairs=(:) let b:undo_ftplugin = 'setlocal matchpairs< expandtab< softtabstop< shiftwidth< formatoptions< commentstring< comments< iskeyword<' " Section movement with ]] ][ [[ []. The start/end patterns below are amended " inside the function in order to avoid matching on the current cursor line. let s:sectionstart = '.\{-}\<\%([0-4]\|13\|noun\|adverb\|conjunction\|verb\|monad\|dyad\)\s\+\%(:\s*0\|def\s\+0\|define\)\>.*' let s:sectionend = '\s*)\s*' function! s:SearchSection(end, backwards, visualmode) abort if a:visualmode !=# '' normal! gv endif let flags = a:backwards ? 'bsW' : 'sW' if a:end call search('^' . s:sectionend . (a:backwards ? '\n\_.\{-}\%#' : '$'), flags) else call search('^' . s:sectionstart . (a:backwards ? '\n\_.\{-}\%#' : '$'), flags) endif endfunction noremap