From b22d79313503a56fc65bb56d1246ea35edf28bdc Mon Sep 17 00:00:00 2001 From: Dhruva Sagar Date: Fri, 25 Apr 2014 18:18:19 +0530 Subject: [PATCH] Improved fix for #20 Instead of relying on a /g or /gg flag based on gdefault, I temporarily disable gdefault and set it back to the old value aftwards. --- autoload/tablemode.vim | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/autoload/tablemode.vim b/autoload/tablemode.vim index 0897c2a..a5f0668 100644 --- a/autoload/tablemode.vim +++ b/autoload/tablemode.vim @@ -51,13 +51,13 @@ function! s:SetActive(bool) "{{{2 endfunction function! s:ConvertDelimiterToSeparator(line, ...) "{{{2 - let gflag = 'g' - if &gdefault | let gflag = 'gg' | endif + let old_gdefault = &gdefault + set nogdefault let delim = g:table_mode_delimiter if a:0 | let delim = a:1 | endif if delim ==# ',' - silent! execute a:line . 's/' . "[\'\"][^\'\"]*\\zs,\\ze[^\'\"]*[\'\"]/__COMMA__/" . gflag + silent! execute a:line . 's/' . "[\'\"][^\'\"]*\\zs,\\ze[^\'\"]*[\'\"]/__COMMA__/g" endif let [cstart, cend] = [tablemode#table#GetCommentStart(), tablemode#table#GetCommentEnd()] @@ -67,11 +67,13 @@ function! s:ConvertDelimiterToSeparator(line, ...) "{{{2 silent! execute a:line . 's/' . tablemode#table#StartExpr() . '\zs\ze' . match_char_start . \ '\|' . delim . '\|' . match_char_end . '\zs\ze' . tablemode#table#EndExpr() . '/' . - \ g:table_mode_separator . '/' . gflag + \ g:table_mode_separator . '/g' if delim ==# ',' - silent! execute a:line . 's/' . "[\'\"][^\'\"]*\\zs__COMMA__\\ze[^\'\"]*[\'\"]/,/" . gflag + silent! execute a:line . 's/' . "[\'\"][^\'\"]*\\zs__COMMA__\\ze[^\'\"]*[\'\"]/,/g" endif + + let &gdefault=old_gdefault endfunction function! s:Tableizeline(line, ...) "{{{2