A neovim/vim plugin for manipulating user configurable blocks of text. Allows users to configure delimeters for blocks for one command actions (selection/change/delete).
- Quickly select/edit/delete text inside delimiters (blocks)
- Properly handle nested delimeters
 
- Allow customization of blocks
- Handle blocks with special regex characters
 
" vim-plug
Plug 'simmsa/innerblock'require("lazy").setup({
    'simmsa/innerblock'
})In normal mode the following commands are available:
- Bracket blocks (()[],{})- 
cib: Change inside brackets
- 
dib: Delete inside brackets
- 
sib: Sort inside brackets
 
- 
- HTML tag blocks (<>,><)- 
cit: Change inside tag
- 
dit: Delete inside tag
 
- 
- String blocks ("",'', ``)- 
cis: Change inside string
- 
dis: Delete inside string
 
- 
- 
$\LaTeX$ blocks ($$)- 
cil: Change inside latex block
- 
dil: Delete inside latex block
 
- 
Define delimiters for blocks of text/code
" Inside Brackets
let g:inner_block_bracket_pairs = [
    \ ['(', ')'],
    \ ['{', '}'],
    \ ['[', ']'],
\]
let g:inner_block_html_tag_pairs = [
    \ ["<", ">"],
    \ ['<', '/>\|>'],
    \ ['>', '<'],
\]
let g:inner_block_string_pairs = [
    \ ["'", "'"],
    \ ['"', '"'],
    \ ['`', '`'],
\]
let g:inner_block_latex_pairs = [
    \ ['\$', '\$'],
\]Define the size/depth of bracket searches
" Search this many lines above and below the current window
let g:inner_block_limit = 50
" Search this many levels of nesting
let g:inner_block_max_level = 16
Map bracket pairs to InnerBlock functions
" Inside Brackets
nnoremap <silent> cib :call innerblock#DeleteInnerBlock(g:inner_block_bracket_pairs, "different", "c")<CR>
nnoremap <silent> dib :call innerblock#DeleteInnerBlock(g:inner_block_bracket_pairs, "different", "k")<CR>
nnoremap <silent> sib :call innerblock#SortInsideBlock(g:inner_block_bracket_pairs)<CR>
" Inside Tags
nnoremap <silent> cit :call innerblock#DeleteInnerBlock(g:inner_block_html_tag_pairs, "different", "c")<CR>
nnoremap <silent> dit :call innerblock#DeleteInnerBlock(g:inner_block_html_tag_pairs, "different", "k")<CR>
nnoremap <silent> sit :call innerblock#SortInsideBlock(g:inner_block_html_tag_pairs)<CR>
" Inside String
nnoremap <silent> cis :call innerblock#DeleteInnerBlock(g:inner_block_string_pairs, "different", "c")<CR>
nnoremap <silent> dis :call innerblock#DeleteInnerBlock(g:inner_block_string_pairs, "different", "k")<CR>
" Inside Latex
nnoremap <silent> cil :call innerblock#DeleteInnerBlock(g:inner_block_latex_pairs,  "same", "c")<CR>
nnoremap <silent> dil :call innerblock#DeleteInnerBlock(g:inner_block_latex_pairs, "same", "k")<CR>






