More neovim config changes
diff --git a/modules/neovim/coc/default.nix b/modules/neovim/coc/default.nix
index cfdfda9..80c2c6a 100644
--- a/modules/neovim/coc/default.nix
+++ b/modules/neovim/coc/default.nix
@@ -48,6 +48,7 @@
             tables = false;
           };
           MD024.siblings_only = true;
+          MD037 = false;
         };
         languageserver = {
           nix = {
@@ -85,9 +86,6 @@
       # Snippet completion
       vim-snippets
       coc-snippets
-
-      # General utilities
-      coc-pairs
     ];
     extraConfig = lib.pipe [./keybinds.vim ./theme.vim] [
       (map builtins.readFile)
diff --git a/modules/neovim/coc/keybinds.vim b/modules/neovim/coc/keybinds.vim
index ae7e174..bbc1694 100644
--- a/modules/neovim/coc/keybinds.vim
+++ b/modules/neovim/coc/keybinds.vim
@@ -11,25 +11,47 @@
 let g:UltiSnipsExpandTrigger="<NUL>"
 let g:UltiSnipsJumpForwardTrigger="<NUL>"
 let g:UltiSnipsJumpBackwardTrigger="<NUL>"
-inoremap <silent><expr> <CR> coc#pum#visible() ? coc#pum#confirm() : "\<CR>"
+inoremap <silent><expr> <CR> coc#pum#visible() ? "\<C-g>u" . coc#pum#confirm() :
+      \ coc#jumpable() ? "\<C-g>u<Esc>:call coc#snippet#next()\<CR>" :
+      \ "\<Plug>(PearTreeExpand)"
 inoremap <silent><expr> <Tab> coc#pum#visible() ? coc#pum#next(0) :
-      \ coc#expandableOrJumpable() ? "\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
-      \ CheckBackSpace() ? "\<TAB>" :
-      \ coc#refresh()
+      \ coc#expandableOrJumpable() ? "\<C-g>u\<C-r>=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\<CR>" :
+      \ (pear_tree#GetSurroundingPair() != [] ? pear_tree#insert_mode#JumpOut() : (CheckBackSpace() ? "\<TAB>" :
+      \ coc#refresh()))
 
 function! CheckBackSpace() abort
   let col = col('.') - 1
   return !col || getline('.')[col - 1]  =~# '\s'
 endfunction
 
-let g:coc_snippet_next = '<tab>'
-inoremap <silent><expr> <S-Tab> coc#pum#visible() ? coc#pum#prev(0) : "\<S-Tab>"
+inoremap <silent><expr> <S-Tab> coc#pum#visible() ? coc#pum#prev(0) : 
+      \ coc#jumpable() ? "\<C-g>u<Esc>:call coc#snippet#prev()\<CR>" :
+      \ "\<S-Tab>"
 xnoremap <silent> <Tab> <Plug>(coc-snippets-select)
 
+nnoremap <silent><expr> <CR> coc#jumpable() ?
+      \ ":call coc#snippet#next()\<CR>" :
+      \ "\<CR>"
 
-snoremap <nowait><silent> <Tab> <Esc>:call UltiSnips#JumpForwards()<cr>
-snoremap <nowait><silent> <S-Tab> <Esc>:call UltiSnips#JumpForwards()<cr>
+nnoremap <silent><expr> <Tab> coc#jumpable() ?
+      \ ":call coc#snippet#next()\<CR>" :
+      \ (pear_tree#GetSurroundingPair() != [] ? pear_tree#insert_mode#JumpOut() : "\<Tab>")
 
+nnoremap <silent><expr> <S-Tab> coc#jumpable() ?
+      \ ":call coc#snippet#prev()\<CR>" :
+      \ "\<S-Tab>"
+
+snoremap <silent><expr> <CR> coc#jumpable() ?
+      \ "\<C-g>u<Esc>:call coc#snippet#next()\<CR>" :
+      \ "\<CR>"
+
+snoremap <silent><expr> <Tab> coc#jumpable() ?
+      \ "\<C-g>u<Esc>:call coc#snippet#next()\<CR>" :
+      \ (pear_tree#GetSurroundingPair() != [] ? pear_tree#insert_mode#JumpOut() : "\<Tab>")
+
+snoremap <silent><expr> <S-Tab> coc#jumpable() ?
+      \ "\<C-g>u<Esc>:call coc#snippet#prev()\<CR>" :
+      \ "\<S-Tab>"
 
 function! s:show_documentation()
 if (index(['vim','help'], &filetype) >= 0)
@@ -42,6 +64,3 @@
 nnoremap <silent> K :call <SID>show_documentation()<CR>
 
 command Snippets CocFzfList snippets
-
-autocmd FileType tex let b:coc_pairs = [["$", "$"]]
-autocmd FileType markdown let b:coc_pairs = [["$", "$"]]
diff --git a/modules/neovim/coc/snippets/all.snippets b/modules/neovim/coc/snippets/all.snippets
index 2ed085b..cb64ed3 100644
--- a/modules/neovim/coc/snippets/all.snippets
+++ b/modules/neovim/coc/snippets/all.snippets
@@ -1,3 +1,3 @@
-snippet visual "Get back the visual selection without any extra trimmings"
+snippet visual "Get back the visual selection without any extra trimmings" i
 ${VISUAL}
 endsnippet
diff --git a/modules/neovim/coc/snippets/markdown.snippets b/modules/neovim/coc/snippets/markdown.snippets
index 041cddc..b6e7af8 100644
--- a/modules/neovim/coc/snippets/markdown.snippets
+++ b/modules/neovim/coc/snippets/markdown.snippets
@@ -40,7 +40,7 @@
 endsnippet
 
 snippet intd "Integrate definitely" i
-\int{${1}}{${2}}${3} \text{ d}${4:x}${0}
+\int^{${1}}_{${2}}${3} \text{ d}${4:x}${0}
 endsnippet
 
 snippet ihat "The I vector" i
@@ -80,3 +80,7 @@
 snippet 2x2matrix "A 2 by 2 matrix" i
 \begin{bmatrix} ${1} & ${2} \\\\ ${3} & ${4} \end{bmatrix}${0}
 endsnippet
+
+snippet sum "A sum" i
+\sum^{${1:n}}_{${2:r}=${3:1}}${4}${0}
+endsnippet