Re: Extremely slow when using relativenumber syntax highlighting
[fullquote, since copying vim-dev] Am 2014-03-27 00:05, schrieb Dominique Pellé: patrick hemmer wrote: Whenever I have relative line number on (relativenumber), and syntax highlighting enabled (syntax on), moving the cursor is painfully slow. Not only moving between lines, but just moving the cursor left/right on the same line. I've tried removing my local .vim .vimrc files as well as the ones in /etc to have a completely default config. As soon as I `syntax on` and `set rnu`, it starts exhibiting the issue. It doesn't seem to do this on all files though, just most. As a reliable way to duplicate the issue, I can copy the http://yaml.org web page content into a .yaml file, and edit that. But I get it in multiple languages, perl, yaml, ruby, other. Version 7.4 with patches 1-193 (though I've had this behavior for years with older versions). I can reproduce the slowness using the yaml file copied from http://yaml.org Here are some timings with and without relativenumber when moving 50 times horizontally with l and h: $ time vim -u NONE foo.yaml \ -c 'set relativenumber' \ -c 'syntax on' +10 \ -c 'call feedkeys(llhhllhhll:q\CR)' real0m4.677s user0m1.447s sys0m3.226s -- slow! $ time vim -u NONE foo.yaml \ -c 'set norelativenumber' \ -c 'syntax on' +10 \ -c 'call feedkeys(llhhllhhll:q\CR)' real0m0.166s user0m0.086s sys0m0.077s -- fast If I use :syntime on and :syntime report, I see this: With relativenumber: TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN 3.706423 7752 73950.0025210.000478 yamlPlainScalar \%([\-?:,\[\]{}#*!|'%@`]\@!\%(\%([\n\r\uFEFF \t]\)\@!\p\)\|[?:\-]\%(\%(\%([\n\r\uFEFF \t]\)\@!\p\)\)\@= 1.105733 4029 20400.0007420.000274 yamlFloat \%([\[\]{}, \t]\@!\p\)\@!\%([+-]\=\%(\%(\d[0-9_]*\)\.[0-9_]*\%([eE][+-]\d\+\)\=\|\.[0-9_]\+\%([eE][-+][0- 0.711836 1224 0 0.0011740.000582 yamlBlockMappingKey \%#=1\s*\zs\%([\-?:,\[\]{}#*!|'%@`]\@!\%(\%([\n\r\uFEFF \t]\)\@!\p\)\|[?:\-]\%(\%(\%([\n\r\uFEFF \t]\)\ 0.481088 2703 153 0.0008150.000178 yamlInteger \%([\[\]{}, \t]\@!\p\)\@!\%([+-]\=\%(0\%(b[0-1_]\+\|[0-7_]\+\|x[0-9a-fA-F_]\+\)\=\|\%([1-9][0-9_]*\%(:[0- 0.044233 2601 0 0.420.17 yamlTimestamp \%([\[\]{}, \t]\@!\p\)\@!\%(\d\{4}-\d\d\=-\d\d\=\%(\%([Tt]\|\s\+\)\%(\d\d\=\):\%(\d\d\):\%(\d\d\)\%(\.\%( 0.038902 2652 408 0.560.15 yamlBlockMappingKey \%#=1^\s*\zs\%([\-?:,\[\]{}#*!|'%@`]\@!\%(\%([\n\r\uFEFF \t]\)\@!\p\)\|[?:\-]\%(\%(\%([\n\r\uFEFF \t]\) 0.023793 3825 24480.290.06 yamlComment \%\(^\|\s\)# 0.007552 3825 12240.090.02 yamlBlockCollectionItemStart ^\s*\zs-\%(\s\+-\)*\s 0.006340 2601 0 0.090.02 yamlBlockMappingMerge ^\s*\zs\ze:\%(\s\|$\) 0.004530 1224 12240.080.04 yamlComment$ 0.003572 2601 0 0.080.01 yamlDocumentEnd ^\.\.\.\ze\%(\s\|$\) 0.002253 2601 0 0.030.01 yamlFlowCollection \[ 0.002248 2601 51 0.310.01 yamlDirective ^\ze%\%(\%([\n\r\uFEFF \t]\)\@!\p\)\+\s\+ 0.002189 2601 51 0.040.01 yamlDocumentStart ^---\ze\%(\s\|$\) 0.001827 2601 0 0.250.01 yamlConstant \\~\ 0.001594 2601 0 0.190.01 yamlMappingKeyStart ?\ze\s 0.001468 2703 255 0.020.01 yamlFlowString 0.001446 2652 51 0.020.01 yamlFlowString ' 0.001407 2601 0 0.130.01 yamlAlias \*\%(\%([\n\r\uFEFF \t,\[\]{}]\)\@!\p\)\+ 0.001404 2601 0 0.020.01 yamlFlowMapping{ 0.001372 2601 0 0.020.01 yamlAnchor \%(\%([\n\r\uFEFF \t,\[\]{}]\)\@!\p\)\+ 0.001313 2601 0 0.020.01 yamlNodeTag !\%(%\x\x\|\%(\w\|-\)\|[#/;?:@=+$,.!~*''()\[\]]\)\+\|\%(!\%(\w\|-\)\+!\|!!\|!\)\%(%\x\x\|\%(\w\|-\)\|[# 0.000839 1224 0 0.020.01 yamlBlockMappingMerge \ze\s*:\%(\s\|$\) 0.000823 408408 0.050.02 yamlKeyValueDelimiter \s*: 0.000506 408408 0.030.01 yamlKeyValueDelimiter \s*: 0.000503 51 0 0.110.10 yamlReservedDirective %\%(\%(TAG\|YAML\)\s\)\@!\%(\%([\n\r\uFEFF \t]\)\@!\p\)\+ 0.000147 51 51 0.040.03 yamlYAMLVersion \d\+\.\d\+ 0.000128 51 51 0.030.03 yamlYAMLDirective %YAML\s\+ 0.000121 51 51 0.030.02 yamlDirective $ 0.78 51 0 0.020.02 yamlTAGDirective %TAG\s\+ 0.62 102102 0.010.01 yamlFlowString 0.52 1020 0.010.01 yamlFlowString \\ 0.28 51 0 0.010.01 yamlEscape
Patch 7.4.220
Patch 7.4.220 Problem:Test 105 does not work in a shadow dir. (James McCoy) Solution: Omit src/ from the checked path. Files: src/testdir/test105.in, src/testdir/test105.ok *** ../vim-7.4.219/src/testdir/test105.in 2014-02-23 23:38:58.812760280 +0100 --- src/testdir/test105.in 2014-03-27 12:31:45.052412146 +0100 *** *** 7,13 :set shellslash :let tab=\t :command -nargs=1 Put :let expr=q-args | $put =expr.tab.strtrans(string(eval(expr))) ! :let $HOME=fnamemodify('.', ':p:h:h:h') :Put fnamemodify('.', ':p' )[-1:] :Put fnamemodify('.', ':p:h')[-1:] :Put fnamemodify('test.out', ':p' )[-1:] --- 7,13 :set shellslash :let tab=\t :command -nargs=1 Put :let expr=q-args | $put =expr.tab.strtrans(string(eval(expr))) ! :let $HOME=fnamemodify('.', ':p:h:h') :Put fnamemodify('.', ':p' )[-1:] :Put fnamemodify('.', ':p:h')[-1:] :Put fnamemodify('test.out', ':p' )[-1:] *** *** 23,29 :Put fnamemodify('abc.fb2.tar.gz', ':r' ) :Put fnamemodify('abc.fb2.tar.gz', ':r:r') :Put fnamemodify('abc.fb2.tar.gz', ':r:r:r' ) ! :Put substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(src/testdir/.*\)', '\1', '') :Put fnamemodify('abc.fb2.tar.gz', ':e' ) :Put fnamemodify('abc.fb2.tar.gz', ':e:e') :Put fnamemodify('abc.fb2.tar.gz', ':e:e:e' ) --- 23,29 :Put fnamemodify('abc.fb2.tar.gz', ':r' ) :Put fnamemodify('abc.fb2.tar.gz', ':r:r') :Put fnamemodify('abc.fb2.tar.gz', ':r:r:r' ) ! :Put substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(testdir/.*\)', '\1', '') :Put fnamemodify('abc.fb2.tar.gz', ':e' ) :Put fnamemodify('abc.fb2.tar.gz', ':e:e') :Put fnamemodify('abc.fb2.tar.gz', ':e:e:e' ) *** ../vim-7.4.219/src/testdir/test105.ok 2014-02-23 23:38:58.812760280 +0100 --- src/testdir/test105.ok 2014-03-27 12:31:40.732412080 +0100 *** *** 3,10 fnamemodify('test.out', ':p' )[-1:]'t' fnamemodify('test.out', ':.' ) 'test.out' fnamemodify('../testdir/a', ':.' ) 'a' ! fnamemodify('test.out', ':~' ) '~/src/testdir/test.out' ! fnamemodify('../testdir/a', ':~' ) '~/src/testdir/a' fnamemodify('../testdir/a', ':t' ) 'a' fnamemodify('.', ':p:t') '' fnamemodify('test.out', ':p:t') 'test.out' --- 3,10 fnamemodify('test.out', ':p' )[-1:]'t' fnamemodify('test.out', ':.' ) 'test.out' fnamemodify('../testdir/a', ':.' ) 'a' ! fnamemodify('test.out', ':~' ) '~/testdir/test.out' ! fnamemodify('../testdir/a', ':~' ) '~/testdir/a' fnamemodify('../testdir/a', ':t' ) 'a' fnamemodify('.', ':p:t') '' fnamemodify('test.out', ':p:t') 'test.out' *** *** 13,19 fnamemodify('abc.fb2.tar.gz', ':r' ) 'abc.fb2.tar' fnamemodify('abc.fb2.tar.gz', ':r:r') 'abc.fb2' fnamemodify('abc.fb2.tar.gz', ':r:r:r' ) 'abc' ! substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(src/testdir/.*\)', '\1', '') 'src/testdir/abc.fb2' fnamemodify('abc.fb2.tar.gz', ':e' ) 'gz' fnamemodify('abc.fb2.tar.gz', ':e:e') 'tar.gz' fnamemodify('abc.fb2.tar.gz', ':e:e:e' ) 'fb2.tar.gz' --- 13,19 fnamemodify('abc.fb2.tar.gz', ':r' ) 'abc.fb2.tar' fnamemodify('abc.fb2.tar.gz', ':r:r') 'abc.fb2' fnamemodify('abc.fb2.tar.gz', ':r:r:r' ) 'abc' ! substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(testdir/.*\)', '\1', '') 'testdir/abc.fb2' fnamemodify('abc.fb2.tar.gz', ':e' ) 'gz' fnamemodify('abc.fb2.tar.gz', ':e:e') 'tar.gz' fnamemodify('abc.fb2.tar.gz', ':e:e:e' ) 'fb2.tar.gz' *** ../vim-7.4.219/src/version.c2014-03-27 12:11:43.888393741 +0100 --- src/version.c 2014-03-27 12:32:56.320413238 +0100 *** *** 736,737 --- 736,739 { /* Add new patch number below this line */ + /**/ + 220, /**/ -- If the Universe is constantly expanding, why can't I ever find a parking space? /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org/// \\\help me help AIDS victims -- http://ICCF-Holland.org/// -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com.
Re: Patch 7.4.191
James McCoy wrote: On Sun, Feb 23, 2014 at 11:39:29PM +0100, Bram Moolenaar wrote: Patch 7.4.191 Problem:Escaping a file name for shell commands can't be done without a function. Solution: Add the :S file name modifier. Test 105 doesn't work when a shadowdir is being used: # Check if the test.out file matches test.ok. 6,7c6,7 fnamemodify('test.out', ':~' ) '~/vim-nox/testdir/test.out' fnamemodify('../testdir/a', ':~' ) '~/vim-nox/testdir/a' --- fnamemodify('test.out', ':~' ) '~/src/testdir/test.out' fnamemodify('../testdir/a', ':~' ) '~/src/testdir/a' 16c16 substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(src/testdir/.*\)', '\1', '') '/path/to/vim/src/vim-nox/testdir/abc.fb2' --- substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(src/testdir/.*\)', '\1', '') 'src/testdir/abc.fb2' I'll make a patch to fix that, hopefully. Please try again after patch 7.4.220. -- I recommend ordering large cargo containers of paper towels to make up whatever budget underruns you have. Paper products are always useful and they have the advantage of being completely flushable if you need to make room in the storage area later. (Scott Adams - The Dilbert principle) /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org/// \\\help me help AIDS victims -- http://ICCF-Holland.org/// -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Extremely slow when using relativenumber syntax highlighting
[copying Zyx, as he is the maintainer of the syntax script] Am 2014-03-27 00:05, schrieb Dominique Pellé: I can reproduce the slowness using the yaml file copied from http://yaml.org [...] If I use :syntime on and :syntime report, I see this: With relativenumber: TOTAL COUNT MATCH SLOWEST AVERAGE NAME PATTERN 3.706423 7752 73950.0025210.000478 yamlPlainScalar \%([\-?:,\[\]{}#*!|'%@`]\@!\%(\%([\n\r\uFEFF \t]\)\@!\p\)\|[?:\-]\%(\%(\%([\n\r\uFEFF \t]\)\@!\p\)\)\@= 1.105733 4029 20400.0007420.000274 yamlFloat \%([\[\]{}, \t]\@!\p\)\@!\%([+-]\=\%(\%(\d[0-9_]*\)\.[0-9_]*\%([eE][+-]\d\+\)\=\|\.[0-9_]\+\%([eE][-+][0- 0.711836 1224 0 0.0011740.000582 yamlBlockMappingKey \%#=1\s*\zs\%([\-?:,\[\]{}#*!|'%@`]\@!\%(\%([\n\r\uFEFF \t]\)\@!\p\)\|[?:\-]\%(\%(\%([\n\r\uFEFF \t]\)\ 0.481088 2703 153 0.0008150.000178 yamlInteger \%([\[\]{}, \t]\@!\p\)\@!\%([+-]\=\%(0\%(b[0-1_]\+\|[0-7_]\+\|x[0-9a-fA-F_]\+\)\=\|\%([1-9][0-9_]*\%(:[0- 0.044233 2601 0 0.420.17 yamlTimestamp \%([\[\]{}, \t]\@!\p\)\@!\%(\d\{4}-\d\d\=-\d\d\=\%(\%([Tt]\|\s\+\)\%(\d\d\=\):\%(\d\d\):\%(\d\d\)\%(\.\%( 0.038902 2652 408 0.560.15 yamlBlockMappingKey \%#=1^\s*\zs\%([\-?:,\[\]{}#*!|'%@`]\@!\%(\%([\n\r\uFEFF \t]\)\@!\p\)\|[?:\-]\%(\%(\%([\n\r\uFEFF \t]\) Those patterns are crazy. Here is a patch, that deviates the performance issue slightly (mainly by making sure, the old 're' engine is used in place of those high performance syntax items and by limiting the look-around assertion). This fixes the performance penalties even more but might make syntax highlighting more inaccurate (although I used a conservative limit of 100 bytes). Also, I noticed, the syntax script is missing some :syn sync rules. I am not sure, what the default is, but some clever syn rules could also improve syntax performance slightly. Best, Christian -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. diff --git a/runtime/syntax/yaml.vim b/runtime/syntax/yaml.vim --- a/runtime/syntax/yaml.vim +++ b/runtime/syntax/yaml.vim @@ -11,11 +11,11 @@ endif let s:cpo_save = cpo set cpovim -let s:ns_char = '\%(\%([\n\r\uFEFF \t]\)\@!\p\)' +let s:ns_char = '\%(\%([\n\r\uFEFF \t]\)\@100!\p\)' let s:ns_word_char = '\%(\w\|-\)' let s:ns_uri_char = '\%(%\x\x\|'.s:ns_word_char.'\|[#/;?:@=+$,.!~*''()\[\]]\)' let s:ns_tag_char = '\%(%\x\x\|'.s:ns_word_char.'\|[#/;?:@=+$.~*''()]\)' -let s:c_ns_anchor_char = '\%(\%([\n\r\uFEFF \t,\[\]{}]\)\@!\p\)' +let s:c_ns_anchor_char = '\%(\%([\n\r\uFEFF \t,\[\]{}]\)\@100!\p\)' let s:c_indicator = '[\-?:,\[\]{}#*!|''%@`]' let s:c_flow_indicator = '[,\[\]{}]' @@ -44,16 +44,18 @@ let s:ns_tag_prefix = s:ns_local_tag_pre \'\|'.s:ns_global_tag_prefix let s:ns_plain_safe_out = s:ns_char -let s:ns_plain_safe_in = '\%('.s:c_flow_indicator.'\@!'.s:ns_char.'\)' +let s:ns_plain_safe_in = '\%('.s:c_flow_indicator.'\@100!'.s:ns_char.'\)' -let s:ns_plain_first_in = '\%('.s:c_indicator.'\@!'.s:ns_char.'\|[?:\-]\%('.s:ns_plain_safe_in.'\)\@=\)' -let s:ns_plain_first_out = '\%('.s:c_indicator.'\@!'.s:ns_char.'\|[?:\-]\%('.s:ns_plain_safe_out.'\)\@=\)' +let s:ns_plain_first_in = '\%('.s:c_indicator.'\@100!'.s:ns_char.'\|[?:\-]\%('.s:ns_plain_safe_in.'\)\@100=\)' +let s:ns_plain_first_out = '\%('.s:c_indicator.'\@100!'.s:ns_char.'\|[?:\-]\%('.s:ns_plain_safe_out.'\)\@100=\)' -let s:ns_plain_char_in = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_in.'\|[:#]\@!'.s:ns_plain_safe_in.'\)' -let s:ns_plain_char_out = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_out.'\|[:#]\@!'.s:ns_plain_safe_out.'\)' +let s:ns_plain_char_in = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_in.'\|[:#]\@100!'.s:ns_plain_safe_in.'\)' +let s:ns_plain_char_out = '\%('.s:ns_char.'#\|:'.s:ns_plain_safe_out.'\|[:#]\@100!'.s:ns_plain_safe_out.'\)' -let s:ns_plain_out = s:ns_plain_first_out . s:ns_plain_char_out.'*' -let s:ns_plain_in = s:ns_plain_first_in . s:ns_plain_char_in.'*' + Use old RE engine, to speed up syntax highlighting some, the new engine has + problems with look-around assertions +let s:ns_plain_out = '\%#=1'. s:ns_plain_first_out . s:ns_plain_char_out.'*' +let s:ns_plain_in = '\%#=1'. s:ns_plain_first_in . s:ns_plain_char_in.'*' syn keyword yamlTodocontained TODO FIXME XXX NOTE @@ -76,7 +78,7 @@ syn match yamlYAMLDirective '%YAML\s\+' syn match yamlYAMLVersion '\d\+\.\d\+' contained nextgroup=yamlComment execute 'syn match yamlReservedDirective contained nextgroup=yamlComment '. -
Patch 7.4.221
Patch 7.4.221 Problem:Quickfix doesn't resize on :copen 20. (issue 199) Solution: Resize the window when requested. (Christian Brabandt) Files: src/quickfix.c *** ../vim-7.4.220/src/quickfix.c 2014-03-23 15:12:29.931264336 +0100 --- src/quickfix.c 2014-03-27 16:56:25.316655478 +0100 *** *** 2358,2364 --- 2358,2379 win = qf_find_win(qi); if (win != NULL cmdmod.tab == 0) + { win_goto(win); + if (eap-addr_count != 0) + { + #ifdef FEAT_VERTSPLIT + if (cmdmod.split WSP_VERT) + { + if (height != W_WIDTH(win)) + win_setwidth(height); + } + else + #endif + if (height != win-w_height) + win_setheight(height); + } + } else { qf_buf = qf_find_buf(qi); *** ../vim-7.4.220/src/version.c2014-03-27 12:40:26.188420131 +0100 --- src/version.c 2014-03-27 16:54:38.864653847 +0100 *** *** 736,737 --- 736,739 { /* Add new patch number below this line */ + /**/ + 221, /**/ -- The fastest way to get an engineer to solve a problem is to declare that the problem is unsolvable. No engineer can walk away from an unsolvable problem until it's solved. (Scott Adams - The Dilbert principle) /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org/// \\\help me help AIDS victims -- http://ICCF-Holland.org/// -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Issue 199 in vim: resize the quickfix/location list window if given a new height (even if the window is already open)
Updates: Status: Fixed Comment #2 on issue 199 by brammool...@gmail.com: resize the quickfix/location list window if given a new height (even if the window is already open) http://code.google.com/p/vim/issues/detail?id=199 Submitted as patch 7.4.221 -- You received this message because this project is configured to send all issue notifications to this address. You may adjust your notification preferences at: https://code.google.com/hosting/settings -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 7.4.222
Patch 7.4.222 Problem:The Ruby directory is constructed from parts. Solution: Use 'rubyarchhdrdir' if it exists. (James McCoy) Files: src/configure.in, src/auto/configure *** ../vim-7.4.221/src/configure.in 2014-02-23 22:52:33.356764716 +0100 --- src/configure.in2014-03-27 17:13:09.624670867 +0100 *** *** 1692,1700 if test X$rubyhdrdir != X; then AC_MSG_RESULT($rubyhdrdir) RUBY_CFLAGS=-I$rubyhdrdir ! rubyarch=`$vi_cv_path_ruby -r rbconfig -e print $ruby_rbconfig::CONFIG[['arch']]` ! if test -d $rubyhdrdir/$rubyarch; then ! RUBY_CFLAGS=$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch fi rubyversion=`$vi_cv_path_ruby -r rbconfig -e print $ruby_rbconfig::CONFIG[['ruby_version']].gsub(/\./, '')[[0,2]]` if test X$rubyversion = X; then --- 1692,1700 if test X$rubyhdrdir != X; then AC_MSG_RESULT($rubyhdrdir) RUBY_CFLAGS=-I$rubyhdrdir ! rubyarchdir=`$vi_cv_path_ruby -r rbconfig -e print ($ruby_rbconfig::CONFIG.has_key? 'rubyarchhdrdir') ? $ruby_rbconfig::CONFIG[['rubyarchhdrdir']] : '$rubyhdrdir/'+$ruby_rbconfig::CONFIG[['arch']]` ! if test -d $rubyarchdir; then ! RUBY_CFLAGS=$RUBY_CFLAGS -I$rubyarchdir fi rubyversion=`$vi_cv_path_ruby -r rbconfig -e print $ruby_rbconfig::CONFIG[['ruby_version']].gsub(/\./, '')[[0,2]]` if test X$rubyversion = X; then *** ../vim-7.4.221/src/auto/configure 2014-02-23 22:52:33.364764715 +0100 --- src/auto/configure 2014-03-27 17:14:25.256672026 +0100 *** *** 6777,6785 { $as_echo $as_me:${as_lineno-$LINENO}: result: $rubyhdrdir 5 $as_echo $rubyhdrdir 6; } RUBY_CFLAGS=-I$rubyhdrdir ! rubyarch=`$vi_cv_path_ruby -r rbconfig -e print $ruby_rbconfig::CONFIG['arch']` ! if test -d $rubyhdrdir/$rubyarch; then ! RUBY_CFLAGS=$RUBY_CFLAGS -I$rubyhdrdir/$rubyarch fi rubyversion=`$vi_cv_path_ruby -r rbconfig -e print $ruby_rbconfig::CONFIG['ruby_version'].gsub(/\./, '')[0,2]` if test X$rubyversion = X; then --- 6777,6785 { $as_echo $as_me:${as_lineno-$LINENO}: result: $rubyhdrdir 5 $as_echo $rubyhdrdir 6; } RUBY_CFLAGS=-I$rubyhdrdir ! rubyarchdir=`$vi_cv_path_ruby -r rbconfig -e print ($ruby_rbconfig::CONFIG.has_key? 'rubyarchhdrdir') ? $ruby_rbconfig::CONFIG['rubyarchhdrdir'] : '$rubyhdrdir/'+$ruby_rbconfig::CONFIG['arch']` ! if test -d $rubyarchdir; then ! RUBY_CFLAGS=$RUBY_CFLAGS -I$rubyarchdir fi rubyversion=`$vi_cv_path_ruby -r rbconfig -e print $ruby_rbconfig::CONFIG['ruby_version'].gsub(/\./, '')[0,2]` if test X$rubyversion = X; then *** ../vim-7.4.221/src/version.c2014-03-27 17:02:22.084660944 +0100 --- src/version.c 2014-03-27 17:13:29.220671167 +0100 *** *** 736,737 --- 736,739 { /* Add new patch number below this line */ + /**/ + 222, /**/ -- Engineers are always delighted to share wisdom, even in areas in which they have no experience whatsoever. Their logic provides them with inherent insight into any field of expertise. This can be a problem when dealing with the illogical people who believe that knowledge can only be derived through experience. (Scott Adams - The Dilbert principle) /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org/// \\\help me help AIDS victims -- http://ICCF-Holland.org/// -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Patch to utilize undefined text-objects
On Friday, January 31, 2014 1:54:30 PM UTC-6, Daniel paradigm Thau wrote: On Thursday, January 30, 2014 9:07:19 PM UTC-5, Daniel paradigm Thau wrote: On Thursday, January 30, 2014 8:07:04 PM UTC-5, Marcin Szamotulski wrote: On 16:45 Wed 29 Jan , Daniel paradigm Thau wrote: Apologies for the delay. Review for those who have forgotten and/or don't care to backread: This patch adds a new text object, m, which will take one more character as input. That character will be used as bounds to the left and right for the object. For example, cim$ will change between dollar signs. This supports multi-line objects, so one could do cim' which, unlike ci', will search across lines; this way users have both. Thanks I'm really happy to see this patch. I compiled it now and there is one thing that does not work: the . command. For example di or ci can be repeated with . but dim, or cim, cannot. Best regards, Marcin Szamotulski Good catch. I can replicate that on my end. Will fix. Should be fixed in the attachment. As a bonus, it now supports things such as digraphs. I tried updating this patch for 7-4-220 and mostly succeeded, just by applying a couple hundred lines of fuzz, but visual mode is not selecting the full text inside the matched pairs. I don't have time to try to fix it further. I'm attaching the updated patch in case I just did something wrong. I know there have been some visual mode changes outside of this patch between now and the time the patch was created. -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout. diff -ur vim-7-4-220/runtime/doc/motion.txt vim-7-4-220_patched/runtime/doc/motion.txt --- vim-7-4-220/runtime/doc/motion.txt Thu Mar 27 06:40:30 2014 +++ vim-7-4-220_patched/runtime/doc/motion.txt Thu Mar 27 11:27:22 2014 @@ -662,6 +662,14 @@ Special case: With a count of 2 the quotes are included, but no extra white space as with a/a'/a`. +am{char} *v_am* *am* + a matched {char}. Selects the text from the + previous {char} until the next {char}. A count is + currently not used. + +im{char} *v_im* *im* + Like am{char} but exclude the {char}. + When used after an operator: For non-block objects: For the a commands: The operator applies to the object and the white diff -ur vim-7-4-220/runtime/doc/tags vim-7-4-220_patched/runtime/doc/tags --- vim-7-4-220/runtime/doc/tags Thu Mar 27 06:40:30 2014 +++ vim-7-4-220_patched/runtime/doc/tags Thu Mar 27 11:27:22 2014 @@ -4763,6 +4763,7 @@ alt intro.txt /*alt* alt-input debugger.txt /*alt-input* alternate-file editing.txt /*alternate-file* +am motion.txt /*am* amiga-window starting.txt /*amiga-window* and() eval.txt /*and()* anonymous-function eval.txt /*anonymous-function* @@ -6538,6 +6539,7 @@ if_sniff.txt if_sniff.txt /*if_sniff.txt* if_tcl.txt if_tcl.txt /*if_tcl.txt* ignore-errors eval.txt /*ignore-errors* +im motion.txt /*im* improved-autocmds-5.4 version5.txt /*improved-autocmds-5.4* improved-quickfix version5.txt /*improved-quickfix* improved-sessions version5.txt /*improved-sessions* @@ -8473,6 +8475,7 @@ v_a] motion.txt /*v_a]* v_a` motion.txt /*v_a`* v_ab motion.txt /*v_ab* +v_am motion.txt /*v_am* v_ap motion.txt /*v_ap* v_aquote motion.txt /*v_aquote* v_as motion.txt /*v_as* @@ -8520,6 +8523,7 @@ v_i] motion.txt /*v_i]* v_i` motion.txt /*v_i`* v_ib motion.txt /*v_ib* +v_im motion.txt /*v_im* v_ip motion.txt /*v_ip* v_iquote motion.txt /*v_iquote* v_is motion.txt /*v_is* diff -ur vim-7-4-220/src/normal.c vim-7-4-220_patched/src/normal.c --- vim-7-4-220/src/normal.c Thu Mar 27 06:40:30 2014 +++ vim-7-4-220_patched/src/normal.c Thu Mar 27 11:27:22 2014 @@ -942,7 +942,7 @@ cp = ca.nchar; } lang = (repl || (nv_cmds[idx].cmd_flags NV_LANG)); - +getchar: /* * Get a second or third character. */ @@ -1093,6 +1093,18 @@ } #endif } +#ifdef FEAT_TEXTOBJ + /* + * The im/am text object needs one more character to use as left/right + * bounds. + */ + if ((ca.cmdchar == 'a' || ca.cmdchar == 'i') ca.nchar == 'm' + ca.extra_char == NUL) + { + cp = ca.extra_char; + goto getchar; + } +#endif --no_mapping; --allow_keys; } @@ -1455,6 +1467,16 @@ prep_redo(oap-regname, cap-count0, get_op_char(oap-op_type), get_extra_op_char(oap-op_type), oap-motion_force, cap-cmdchar, cap-nchar); +#ifdef FEAT_TEXTOBJ + /* + * If using the am/im text object, there is one additional + * character
xmode instead of vmode mappings vim filetype plugin vim.vim and matchit.vim
Once hitting a printable character x in selection mode, the currently selected text is expected to be replaced by x. Under this maxim, it would be consistent to assign xmode instead of vmode mappings to the movement mappings in vim.vim and matchit.vim. -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [Patch] Add option to disable insert completion message in shortmess
Hope this is moving along, would be really nice to get this into master. On Saturday, January 11, 2014 5:00:55 PM UTC+1, Shougo wrote: 2014年1月12日日曜日 0時25分42秒 UTC+9 mattn: Thank you for Mr.Bram. I fixed my patch. Because, I had mistake line number in patch... This is minor fix. Probably, you forgot to attach the patch. Thanks. I forgot it... -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Patch 7.4.224
Patch 7.4.224 Problem:/usr/bin/grep on Solaris does not support -F. Solution: Add configure check to find a good grep. (Danek Duvall) Files: src/configure.in, src/auto/configure *** ../vim-7.4.223/src/configure.in 2014-03-27 17:40:53.384696360 +0100 --- src/configure.in2014-03-27 18:49:24.900759361 +0100 *** *** 14,19 --- 14,20 AC_PROG_CCdnl required by almost everything AC_PROG_CPP dnl required by header file checks AC_PROGRAM_EGREP dnl required by AC_EGREP_CPP + AC_PROG_FGREP dnl finds working grep -F AC_ISC_POSIX dnl required by AC_C_CROSS AC_PROG_AWK dnl required for make html in ../doc *** *** 936,942 PERL_CFLAGS=`echo $perlcppflags | sed -e 's/-pipe //' -e 's/-W[[^ ]]*//'` fi if test X$perlldflags != X; then ! if test X`echo \$LDFLAGS\ | grep -F -e \$perlldflags\` = X; then LDFLAGS=$perlldflags $LDFLAGS fi fi --- 937,943 PERL_CFLAGS=`echo $perlcppflags | sed -e 's/-pipe //' -e 's/-W[[^ ]]*//'` fi if test X$perlldflags != X; then ! if test X`echo \$LDFLAGS\ | $FGREP -e \$perlldflags\` = X; then LDFLAGS=$perlldflags $LDFLAGS fi fi *** *** 1727,1733 dnl configure, so strip these flags first (if present) rubyldflags=`echo $rubyldflags | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'` if test X$rubyldflags != X; then ! if test X`echo \$LDFLAGS\ | grep -F -e \$rubyldflags\` = X; then LDFLAGS=$rubyldflags $LDFLAGS fi fi --- 1728,1734 dnl configure, so strip these flags first (if present) rubyldflags=`echo $rubyldflags | sed -e 's/-arch\ ppc//' -e 's/-arch\ i386//' -e 's/-arch\ x86_64//'` if test X$rubyldflags != X; then ! if test X`echo \$LDFLAGS\ | $FGREP -e \$rubyldflags\` = X; then LDFLAGS=$rubyldflags $LDFLAGS fi fi *** ../vim-7.4.223/src/auto/configure 2014-03-27 17:40:53.396696361 +0100 --- src/auto/configure 2014-03-27 18:49:34.356759506 +0100 *** *** 719,724 --- 719,725 CPP_MM STRIP AWK + FGREP EGREP GREP CPP *** *** 3695,3701 fi rm -f conftest* ! { $as_echo $as_me:${as_lineno-$LINENO}: checking for library containing strerror 5 $as_echo_n checking for library containing strerror... 6; } if ${ac_cv_search_strerror+:} false; then : $as_echo_n (cached) 6 --- 3696,3768 fi rm -f conftest* ! { $as_echo $as_me:${as_lineno-$LINENO}: checking for fgrep 5 ! $as_echo_n checking for fgrep... 6; } ! if ${ac_cv_path_FGREP+:} false; then : ! $as_echo_n (cached) 6 ! else ! if echo 'ab*c' | $GREP -F 'ab*c' /dev/null 21 !then ac_cv_path_FGREP=$GREP -F !else ! if test -z $FGREP; then ! ac_path_FGREP_found=false ! # Loop through the user's path and test for each of PROGNAME-LIST ! as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ! for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin ! do ! IFS=$as_save_IFS ! test -z $as_dir as_dir=. ! for ac_prog in fgrep; do ! for ac_exec_ext in '' $ac_executable_extensions; do ! ac_path_FGREP=$as_dir/$ac_prog$ac_exec_ext ! as_fn_executable_p $ac_path_FGREP || continue ! # Check for GNU ac_path_FGREP and select it if it is found. ! # Check for GNU $ac_path_FGREP ! case `$ac_path_FGREP --version 21` in ! *GNU*) ! ac_cv_path_FGREP=$ac_path_FGREP ac_path_FGREP_found=:;; ! *) ! ac_count=0 ! $as_echo_n 0123456789 conftest.in ! while : ! do ! cat conftest.in conftest.in conftest.tmp ! mv conftest.tmp conftest.in ! cp conftest.in conftest.nl ! $as_echo 'FGREP' conftest.nl ! $ac_path_FGREP FGREP conftest.nl conftest.out 2/dev/null || break ! diff conftest.out conftest.nl /dev/null 21 || break ! as_fn_arith $ac_count + 1 ac_count=$as_val ! if test $ac_count -gt ${ac_path_FGREP_max-0}; then ! # Best one so far, save it but keep looking for a better one ! ac_cv_path_FGREP=$ac_path_FGREP ! ac_path_FGREP_max=$ac_count ! fi ! # 10*(2^10) chars as input seems more than enough ! test $ac_count -gt 10 break ! done ! rm -f conftest.in conftest.tmp conftest.nl conftest.out;; ! esac ! ! $ac_path_FGREP_found break 3 ! done ! done ! done ! IFS=$as_save_IFS ! if test -z $ac_cv_path_FGREP; then ! as_fn_error $? no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin $LINENO 5 ! fi ! else ! ac_cv_path_FGREP=$FGREP ! fi ! !fi ! fi ! { $as_echo $as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP 5 ! $as_echo $ac_cv_path_FGREP 6; } ! FGREP=$ac_cv_path_FGREP ! ! { $as_echo $as_me:${as_lineno-$LINENO}: checking for library containing strerror 5 $as_echo_n checking for library containing strerror... 6; } if ${ac_cv_search_strerror+:}
Patch 7.4.225
Patch 7.4.225 Problem:Dynamic Ruby doesn't work on Solaris. Solution: Always use the stubs. (Danek Duvall, Yukihiro Nakadaira) Files: src/if_ruby.c *** ../vim-7.4.224/src/if_ruby.c2014-02-23 22:52:33.352764716 +0100 --- src/if_ruby.c 2014-03-27 18:56:37.428765988 +0100 *** *** 88,95 # define rb_int2big rb_int2big_stub #endif ! #if defined(DYNAMIC_RUBY_VER) DYNAMIC_RUBY_VER = 20 \ !VIM_SIZEOF_INT VIM_SIZEOF_LONG /* Ruby 2.0 defines a number of static functions which use rb_fix2int and * rb_num2int if VIM_SIZEOF_INT VIM_SIZEOF_LONG (64bit) */ # define rb_fix2int rb_fix2int_stub --- 88,94 # define rb_int2big rb_int2big_stub #endif ! #if defined(DYNAMIC_RUBY_VER) VIM_SIZEOF_INT VIM_SIZEOF_LONG /* Ruby 2.0 defines a number of static functions which use rb_fix2int and * rb_num2int if VIM_SIZEOF_INT VIM_SIZEOF_LONG (64bit) */ # define rb_fix2int rb_fix2int_stub *** *** 203,210 # define rb_inspect dll_rb_inspect # define rb_int2inum dll_rb_int2inum # if VIM_SIZEOF_INT VIM_SIZEOF_LONG /* 64 bits only */ - # define rb_fix2int dll_rb_fix2int - # define rb_num2int dll_rb_num2int # define rb_num2uint dll_rb_num2uint # endif # define rb_lastline_get dll_rb_lastline_get --- 202,207 *** *** 392,399 { return dll_rb_int2big(x); } ! # if defined(DYNAMIC_RUBY_VER) DYNAMIC_RUBY_VER = 20 \ !VIM_SIZEOF_INT VIM_SIZEOF_LONG long rb_fix2int_stub(VALUE x) { return dll_rb_fix2int(x); --- 389,395 { return dll_rb_int2big(x); } ! # if defined(DYNAMIC_RUBY_VER) VIM_SIZEOF_INT VIM_SIZEOF_LONG long rb_fix2int_stub(VALUE x) { return dll_rb_fix2int(x); *** ../vim-7.4.224/src/version.c2014-03-27 18:51:06.612760919 +0100 --- src/version.c 2014-03-27 18:55:21.412764824 +0100 *** *** 736,737 --- 736,739 { /* Add new patch number below this line */ + /**/ + 225, /**/ -- Engineers are widely recognized as superior marriage material: intelligent, dependable, employed, honest, and handy around the house. (Scott Adams - The Dilbert principle) /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org/// \\\help me help AIDS victims -- http://ICCF-Holland.org/// -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Clojure runtime files update
Sung Pae wrote: Hello Bram, The Clojure runtime files have been updated to support the new Clojure language version, 1.6.0. Please include them at your leisure. This patch removes `formatoptions+=3Dcroql` from the ftplugin script, following the lead of the Lisp, Scheme, J, and Fortran filetypes. I have therefore taken the liberty of removing the following todo item: Update for Clojure ftplugin. (Sung Pae). Await discussion about formatting in ftplugins. I apologize if this is forward of me; I'm not aware of the protocol WRT patching the todo list. Finally, please ignore all previous patches for the Clojure files that you may have on hold (I believe the patch mentioned in the todo is the only one, but I am not sure) as this patch synchronizes all differences between the vim-clojure-static=C2=B9 project and Vim. Thank you for your continued work on our favorite text editor! Thanks for the update. Looks fine to me, I'll include it. -- For society, it's probably a good thing that engineers value function over appearance. For example, you wouldn't want engineers to build nuclear power plants that only _look_ like they would keep all the radiation inside. (Scott Adams - The Dilbert principle) /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org/// \\\help me help AIDS victims -- http://ICCF-Holland.org/// -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Clojure runtime files update
Hi Bram! On Do, 27 Mär 2014, Bram Moolenaar wrote: Thanks for the update. Looks fine to me, I'll include it. BTW: This: :noswap[file] {command} *:nos* *:noswapfile* Should be :nos[wapfile] {command} *:nos* *:noswapfile* Best, Christian -- Wie man sein Kind nicht nennen sollte: Don R. Wetter -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Clojure runtime files update
Christian Brabandt hijacked a thread and wrote: On Do, 27 Mär 2014, Bram Moolenaar wrote: Thanks for the update. Looks fine to me, I'll include it. BTW: This: :noswap[file] {command} *:nos* *:noswapfile* Should be :nos[wapfile] {command} *:nos* *:noswapfile* Thanks. -- EXPERIENCE - experience is a wonderful thing. It enables you to recognise a mistake when you make it again. /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net \\\ ///sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org/// \\\help me help AIDS victims -- http://ICCF-Holland.org/// -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Extremely slow when using relativenumber syntax highlighting
On an unrelated note, you may want to consider setting synmaxcol to a reasonable value as that can drastically improve performance if you regularly deal with very long lines (with syntax highlighting enabled for the current buffer). ~Adam~ -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: [patch] add sortuniq() function
On 27/03/14 06:42, Bram Moolenaar wrote: Since many plugins consist of several files, and we would like to check the dependencies before downloading all the files, the best place for these dependencies is to have them in a separate manifest file. Another advantage is that there would be one central place where plugin authors upload the newest manifest file. For the moment assume that's the script storage in vim.org. This also solves the problem of scripts on vim.org being one file. The manifest can specify any place, including git repo's, where to fetch the files. One could also fetch a manifest from elsewhere (e.g. by simply editing it) and then run the plugin installer/updater. The dependencies can be in the form of just a plugin ID, to be found in the central repository, but it could also be the URL of that dependency's manifest file. That way a plugin author can also publish alpha and beta versions, with yet unreleased dependencies, before making the fully tested plugin available at vim.org. Using URLs for the location is flexible and easy to debug. Using single files avoids problems with unpacking archives, the need to first install tools, etc. I believe all respositories support downloading individual files. What this does NOT support is further developing the plugin or merging local changes. Normal users won't need that. Have you ever had the opportunity of doing ruby programming and having to use bundle or some other gem manager? What you're proposing is very similar and I would recommend you install ruby, play with it, and get to know the gem managers before embarking down this path. Due to the fact that such systems give the impression that it is easy for the user to upgrade to the latest version, it engenders a cavalier attitude amongst plugin writers that proper test/release control is unnecessary; they just dump out the latest version without testing because if it contains a bug they can just fix it and dump out yet another version with the fix. Particularly in the workplace, and I speak from personal experience, these kinds of systems do waste more time than they save due to everything grinding to a halt due when one plug-in in a dependency hierarchy breaks, normally because the plug-in author couldn't be bothered to test their code adequately before releasing it. Add to this the usual system integrity problems that accompany network-based systems and we have more headaches in the making. If you do implement this system, may I strongly suggest that you invest more time in the backup/rollback features than the install/management features? That way when things go wrong we can be sure we can get back to where we want to get back to as quickly and as painlessly as possible. Cheers, -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Updated Russian translation
On Mon, Mar 24, 2014 at 12:33:32PM +0400, Sergey Alyoshin wrote: Updated Russian translation for Vim from hg repository. Would you be able to review the vimtutor translation, too? It's at least partially out of date, since line 563 in tutor.ru.utf-8 only mentions !del where as line 641 in tutor.utf-8 mentions both !del and !rm. Cheers, -- James GPG Key: 4096R/331BA3DB 2011-12-05 James McCoy james...@jamessan.com -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Patch to utilize undefined text-objects
On Thursday, March 27, 2014 1:05:08 PM UTC-4, Ben Fritz wrote: On Friday, January 31, 2014 1:54:30 PM UTC-6, Daniel paradigm Thau wrote: On Thursday, January 30, 2014 9:07:19 PM UTC-5, Daniel paradigm Thau wrote: On Thursday, January 30, 2014 8:07:04 PM UTC-5, Marcin Szamotulski wrote: On 16:45 Wed 29 Jan , Daniel paradigm Thau wrote: Apologies for the delay. Review for those who have forgotten and/or don't care to backread: This patch adds a new text object, m, which will take one more character as input. That character will be used as bounds to the left and right for the object. For example, cim$ will change between dollar signs. This supports multi-line objects, so one could do cim' which, unlike ci', will search across lines; this way users have both. Thanks I'm really happy to see this patch. I compiled it now and there is one thing that does not work: the . command. For example di or ci can be repeated with . but dim, or cim, cannot. Best regards, Marcin Szamotulski Good catch. I can replicate that on my end. Will fix. Should be fixed in the attachment. As a bonus, it now supports things such as digraphs. I tried updating this patch for 7-4-220 and mostly succeeded, just by applying a couple hundred lines of fuzz, but visual mode is not selecting the full text inside the matched pairs. I don't have time to try to fix it further. I'm attaching the updated patch in case I just did something wrong. I know there have been some visual mode changes outside of this patch between now and the time the patch was created. Thanks for staying on this! My schedule has hit a huge crunch for the next month or two, and I don't want to rush a fix out myself and risk causing new issues. I'd rather delay fixing this and ensure that when I do the patch is as clean and bug-free as is possible against the code base at that time. When my schedule clears I may also add functionality for adding a v:count to the text object calls, which currently does not work for the new functionality for either of my patches. I might change how my tests work as well in order to have them both be cleaner and more thorough. -- -- You received this message from the vim_dev maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups vim_dev group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.