diff options
-rw-r--r-- | vim/autoload/argument.vim | 8 | ||||
-rw-r--r-- | vim/autoload/option.vim | 6 | ||||
-rw-r--r-- | vim/vimrc | 14 |
3 files changed, 13 insertions, 15 deletions
diff --git a/vim/autoload/argument.vim b/vim/autoload/argument.vim deleted file mode 100644 index 85d75eb1..00000000 --- a/vim/autoload/argument.vim +++ /dev/null @@ -1,8 +0,0 @@ -" Escape a single argument for use on an Ex command line; essentially -" a backport of fnameescape() for versions before v7.1.299 -" -function! argument#Escape(argument) abort - return exists('*fnameescape') - \ ? fnameescape(a:argument) - \ : escape(a:argument, "\n\r\t".' *?[{`$\%#''"|!<') -endfunction diff --git a/vim/autoload/option.vim b/vim/autoload/option.vim index 5ff44ced..c44cf94b 100644 --- a/vim/autoload/option.vim +++ b/vim/autoload/option.vim @@ -9,3 +9,9 @@ function! option#Split(expr, ...) abort let parts = split(a:expr, '\\\@<!,[, ]*', keepempty) return map(parts, 'substitute(v:val, ''\\,'', '','', ''g'')') endfunction + +" Escape the right-hand side of a :set option value +" +function! option#Escape(expr) abort + return escape(a:expr, ' |"\') +endfunction @@ -99,7 +99,7 @@ scriptencoding utf-8 " list becomes MYVIM. " if exists('$MYVIM') && $MYVIM !=# '' - execute 'set runtimepath^='.argument#Escape(option#item#Escape($MYVIM, 1)) + execute 'set runtimepath^='.option#Escape(option#item#Escape($MYVIM, 1)) elseif &runtimepath !=# '' let $MYVIM = option#Split(&runtimepath)[0] endif @@ -133,7 +133,7 @@ command! -bang -bar -complete=dir -nargs=1 CreatePath " " <https://github.com/vim/vim/releases/tag/v8.1.0716> " -execute 'set viminfo+='.argument#Escape('n'.$MYVIM.'/viminfo') +execute 'set viminfo+='.option#Escape('n'.$MYVIM.'/viminfo') CreatePath $MYVIM " Speaking of recorded data in viminfo files, the default Vim limit of a mere @@ -179,7 +179,7 @@ set history=10000 " 'backupfullname', 'swapfilefullname' would have been clearer. " set backup -execute 'set backupdir^='.argument#Escape(option#item#Escape( +execute 'set backupdir^='.option#Escape(option#item#Escape( \ $MYVIM.'/backup'.(has#('patch-8.1.251') ? '//' : ''), \)) CreatePath! $MYVIM/backup @@ -219,7 +219,7 @@ endif " apply path#Create() to attempt to create the path, if needed. " execute 'set directory^=' - \.argument#Escape(option#item#Escape($MYVIM.'/swap//')) + \.option#Escape(option#item#Escape($MYVIM.'/swap//')) CreatePath! $MYVIM/swap " Keep tracked undo history for files permanently, in a dedicated cache @@ -238,7 +238,7 @@ CreatePath! $MYVIM/swap if has#('persistent_undo') set undofile execute 'set undodir^=' - \.argument#Escape(option#item#Escape($MYVIM.'/undo//')) + \.option#Escape(option#item#Escape($MYVIM.'/undo//')) CreatePath! $MYVIM/undo endif @@ -357,9 +357,9 @@ set dictionary^=/usr/share/dict/words let s:ref = $MYVIM.'/ref' try execute 'set dictionary^=' - \.argument#Escape(option#item#Escape(s:ref.'/dictionary.txt')) + \.option#Escape(option#item#Escape(s:ref.'/dictionary.txt')) execute 'set thesaurus^=' - \.argument#Escape(option#item#Escape(s:ref.'/thesaurus.txt')) + \.option#Escape(option#item#Escape(s:ref.'/thesaurus.txt')) catch /^Vim\%((\a\+)\)\=:E474:/ endtry |