diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000..0ef9f57216 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,41 @@ +language: c + +compiler: + - clang + - gcc + +env: + - COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge + "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'" + - COVERAGE=no FEATURES=small CONFOPT= + - COVERAGE=no FEATURES=tiny CONFOPT= + +sudo: false + +branches: + except: + - /^v[0-9]/ + +addons: + apt: + packages: + - lcov + - libperl-dev + - python-dev + - python3-dev + - liblua5.1-0-dev + - lua5.1 + +before_install: + - pip install --user cpp-coveralls + +script: + - NPROC=$(getconf _NPROCESSORS_ONLN) + - ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && make -j$NPROC + - ./src/vim --version + - make test + +after_success: + - if [ x"$COVERAGE" = "xyes" ]; then ~/.local/bin/coveralls -b src -x .xs -e src/xxd -e src/if_perl.c --encodings utf-8 latin-1 EUC-KR; fi + +# vim:set sts=2 sw=2 tw=0 et: diff --git a/Filelist b/Filelist index 166e2f4fa6..2440a0cc8f 100644 --- a/Filelist +++ b/Filelist @@ -4,6 +4,8 @@ # source files for all source archives SRC_ALL = \ .hgignore \ + .travis.yml \ + appveyor.yml \ src/README.txt \ src/arabic.c \ src/arabic.h \ diff --git a/README.md b/README.md index 384c4ec8d7..e66e8b549f 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,9 @@ Which one you need depends on the system you want to run it on and whether you want or must compile it yourself. Check http://www.vim.org/download.php for an overview of currently available distributions. +[![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim) +[![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master) + ## Documentation ## @@ -89,6 +92,11 @@ See one of these files for system-specific instructions: There are more `README_*.txt` files, depending on the distribution you used. +## Contributing ## + +If you would like to help making Vim better, see the `CONTRIBUTING.md` file. + + ## Information ## The latest news about Vim can be found on the Vim home page: diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000000..3bda489a47 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,15 @@ +version: "{build}" + +before_build: + - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release' + +build_script: + - cd src + - sed -e "s/\$(LINKARGS2)/\$(LINKARGS2) | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak + - nmake -f Make_mvc2.mak CPU=AMD64 GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 PYTHON3_VER=34 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python34-x64 + - .\gvim -u NONE -c "redir @a | ver | 0put a | wq!" ver.txt + - type ver.txt + +test_script: + - cd testdir + - nmake -f Make_dos.mak VIMPROG=..\gvim diff --git a/runtime/autoload/python3complete.vim b/runtime/autoload/python3complete.vim index b02200be7f..f0f3aaddb3 100644 --- a/runtime/autoload/python3complete.vim +++ b/runtime/autoload/python3complete.vim @@ -1,7 +1,7 @@ "python3complete.vim - Omni Completion for python " Maintainer: Aaron Griffin " Version: 0.9 -" Last Updated: 18 Jun 2009 +" Last Updated: 18 Jun 2009 (small fix 2015 Sep 14 from Debian) " " Roland Puntaier: this file contains adaptations for python3 and is parallel to pythoncomplete.vim " @@ -359,6 +359,7 @@ class PyParser: def __init__(self): self.top = Scope('global',0) self.scope = self.top + self.parserline = 0 def _parsedotname(self,pre=None): #returns (dottedname, nexttoken) diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt index 63caeff914..0983aa8686 100644 --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -1,4 +1,4 @@ -*change.txt* For Vim version 7.4. Last change: 2015 Aug 04 +*change.txt* For Vim version 7.4. Last change: 2015 Sep 06 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1135,7 +1135,7 @@ Rationale: In Vi the "y" command followed by a backwards motion would With a linewise yank command the cursor is put in the first line, but the column is unmodified, thus it may not be on the first yanked character. -There are nine types of registers: *registers* *E354* +There are ten types of registers: *registers* *E354* 1. The unnamed register "" 2. 10 numbered registers "0 to "9 3. The small delete register "- diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt index 94fe977cc7..6197171023 100644 --- a/runtime/doc/cmdline.txt +++ b/runtime/doc/cmdline.txt @@ -1,4 +1,4 @@ -*cmdline.txt* For Vim version 7.4. Last change: 2015 Jul 28 +*cmdline.txt* For Vim version 7.4. Last change: 2015 Sep 25 VIM REFERENCE MANUAL by Bram Moolenaar @@ -511,6 +511,8 @@ followed by another Vim command: :argdo :autocmd :bufdo + :cdo + :cfdo :command :cscope :debug @@ -521,6 +523,8 @@ followed by another Vim command: :help :helpfind :lcscope + :ldo + :lfdo :make :normal :perl @@ -814,12 +818,12 @@ Note: these are typed literally, they are not special keys! (for FileType, Syntax and SpellFileMissing events). When executing a ":source" command, is replaced with the file name of the sourced file. *E498* - When executing a function, is replaced with - "function {function-name}"; function call nesting is - indicated like this: - "function {function-name1}..{function-name2}". Note that - filename-modifiers are useless when is used inside - a function. + When executing a function, is replaced with: + "function {function-name}[{lnum}]" + function call nesting is indicated like this: + "function {function-name1}[{lnum}]..{function-name2}[{lnum}]" + Note that filename-modifiers are useless when is + used inside a function. When executing a ":source" command, is replaced with the line number. *E842* When executing a function it's the line number relative to diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt index 49a96f6a66..5666e68b5a 100644 --- a/runtime/doc/editing.txt +++ b/runtime/doc/editing.txt @@ -868,7 +868,8 @@ USING THE ARGUMENT LIST each file. {not in Vi} {not available when compiled without the |+listcmds| feature} - Also see |:windo|, |:tabdo| and |:bufdo|. + Also see |:windo|, |:tabdo|, |:bufdo|, |:cdo|, |:ldo|, + |:cfdo| and |:lfdo| Example: > :args *.c diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index a105477ab8..78c2455d9d 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1,4 +1,4 @@ -*eval.txt* For Vim version 7.4. Last change: 2015 Jul 21 +*eval.txt* For Vim version 7.4. Last change: 2015 Sep 19 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1747,7 +1747,7 @@ bufexists( {expr}) Number TRUE if buffer {expr} exists buflisted( {expr}) Number TRUE if buffer {expr} is listed bufloaded( {expr}) Number TRUE if buffer {expr} is loaded bufname( {expr}) String Name of the buffer {expr} -bufnr( {expr}) Number Number of the buffer {expr} +bufnr( {expr} [, {create}]) Number Number of the buffer {expr} bufwinnr( {expr}) Number window number of buffer {expr} byte2line( {byte}) Number line number at byte count {byte} byteidx( {expr}, {nr}) Number byte index of {nr}'th char in {expr} @@ -5419,7 +5419,7 @@ setbufvar({expr}, {varname}, {val}) *setbufvar()* :call setbufvar("todo", "myvar", "foobar") < This function is not available in the |sandbox|. -setcharsearch() *setcharsearch()* +setcharsearch({dict}) *setcharsearch()* Set the current character search information to {dict}, which contains one or more of the following entries: @@ -5861,7 +5861,8 @@ split({expr} [, {pattern} [, {keepempty}]]) *split()* :let words = split(getline('.'), '\W\+') < To split a string in individual characters: > :for c in split(mystring, '\zs') -< If you want to keep the separator you can also use '\zs': > +< If you want to keep the separator you can also use '\zs' at + the end of the pattern: > :echo split('abc:def:ghi', ':\zs') < ['abc:', 'def:', 'ghi'] ~ Splitting a table where the first element can be empty: > @@ -6121,6 +6122,9 @@ synID({lnum}, {col}, {trans}) *synID()* {col} is 1 for the leftmost column, {lnum} is 1 for the first line. 'synmaxcol' applies, in a longer line zero is returned. + Note that when the position is after the last character, + that's where the cursor can be in Insert mode, synID() returns + zero. When {trans} is non-zero, transparent items are reduced to the item that they reveal. This is useful when wanting to know diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt index c901d9272b..4f805cef3a 100644 --- a/runtime/doc/farsi.txt +++ b/runtime/doc/farsi.txt @@ -1,4 +1,4 @@ -*farsi.txt* For Vim version 7.4. Last change: 2010 Aug 07 +*farsi.txt* For Vim version 7.4. Last change: 2015 Aug 29 VIM REFERENCE MANUAL by Mortaza Ghassab Shiran @@ -59,7 +59,7 @@ o Toggling between Farsi ISIR-3342 standard encoding and Vim Farsi via F9 right-to-left mode, this function is also supported only in right-to-left mode. -Farsi Fonts *farsi fonts* +Farsi Fonts *farsi-fonts* ----------- The following files are found in the subdirectories of the '$VIM/farsi/fonts' diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt index 4635673984..f8f045e75d 100644 --- a/runtime/doc/index.txt +++ b/runtime/doc/index.txt @@ -1,4 +1,4 @@ -*index.txt* For Vim version 7.4. Last change: 2015 Feb 12 +*index.txt* For Vim version 7.4. Last change: 2015 Sep 08 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1138,6 +1138,8 @@ tag command action ~ |:cc| :cc go to specific error |:cclose| :ccl[ose] close quickfix window |:cd| :cd change directory +|:cdo| :cdo execute command in each valid error list entry +|:cfdo| :cfd[o] execute command in each file in error list |:center| :ce[nter] format lines at the center |:cexpr| :cex[pr] read errors from expr and jump to first |:cfile| :cf[ile] read file with error messages and jump to first @@ -1296,6 +1298,8 @@ tag command action ~ |:lchdir| :lch[dir] change directory locally |:lclose| :lcl[ose] close location window |:lcscope| :lcs[cope] like ":cscope" but uses location list +|:ldo| :ld[o] execute command in valid location list entries +|:lfdo| :lfd[o] execute command in each file in location list |:left| :le[ft] left align lines |:leftabove| :lefta[bove] make split window appear left or above |:let| :let assign a value to a variable or option diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt index b0eae9fee1..787d6115a6 100644 --- a/runtime/doc/insert.txt +++ b/runtime/doc/insert.txt @@ -1,4 +1,4 @@ -*insert.txt* For Vim version 7.4. Last change: 2015 Jun 20 +*insert.txt* For Vim version 7.4. Last change: 2015 Sep 15 VIM REFERENCE MANUAL by Bram Moolenaar @@ -152,7 +152,7 @@ CTRL-R CTRL-R {0-9a-z"%#*+/:.-=} *i_CTRL-R_CTRL-R* CTRL-R a results in "ac". CTRL-R CTRL-R a results in "ab^Hc". < Options 'textwidth', 'formatoptions', etc. still apply. If - you also want to avoid these, use "r", see below. + you also want to avoid these, use CTRL-R CTRL-O, see below. The '.' register (last inserted text) is still inserted as typed. {not in Vi} diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 1e601815f1..fcb174a5a8 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 7.4. Last change: 2015 Aug 25 +*options.txt* For Vim version 7.4. Last change: 2015 Sep 15 VIM REFERENCE MANUAL by Bram Moolenaar @@ -801,7 +801,8 @@ A jump table for the options with a short description can be found at |Q_op|. line. When 'smartindent' or 'cindent' is on the indent is changed in a different way. - The 'autoindent' option is reset when the 'paste' option is set. + The 'autoindent' option is reset when the 'paste' option is set and + restored when 'paste' is reset. {small difference from Vi: After the indent is deleted when typing or , the cursor position when moving up or down is after the deleted indent; Vi puts the cursor somewhere in the deleted indent}. @@ -2848,6 +2849,8 @@ A jump table for the options with a short description can be found at |Q_op|. . Spaces are used in indents with the '>' and '<' commands and when 'autoindent' is on. To insert a real tab when 'expandtab' is on, use CTRL-V. See also |:retab| and |ins-expandtab|. + This option is reset when the 'paste' option is set and restored when + the 'paste' option is reset. NOTE: This option is reset when 'compatible' is set. *'exrc'* *'ex'* *'noexrc'* *'noex'* @@ -5535,19 +5538,21 @@ A jump table for the options with a short description can be found at |Q_op|. When the 'paste' option is switched on (also when it was already on): - mapping in Insert mode and Command-line mode is disabled - abbreviations are disabled - - 'textwidth' is set to 0 - - 'wrapmargin' is set to 0 - 'autoindent' is reset - - 'smartindent' is reset - - 'softtabstop' is set to 0 + - 'expandtab' is reset + - 'formatoptions' is used like it is empty - 'revins' is reset - 'ruler' is reset - 'showmatch' is reset - - 'formatoptions' is used like it is empty + - 'smartindent' is reset + - 'smarttab' is reset + - 'softtabstop' is set to 0 + - 'textwidth' is set to 0 + - 'wrapmargin' is set to 0 These options keep their value, but their effect is disabled: - - 'lisp' - - 'indentexpr' - 'cindent' + - 'indentexpr' + - 'lisp' NOTE: When you start editing another file while the 'paste' option is on, settings from the modelines or autocommands may change the settings again, causing trouble when pasting text. You might want to @@ -5980,7 +5985,9 @@ A jump table for the options with a short description can be found at |Q_op|. Inserting characters in Insert mode will work backwards. See "typing backwards" |ins-reverse|. This option can be toggled with the CTRL-_ command in Insert mode, when 'allowrevins' is set. - NOTE: This option is reset when 'compatible' or 'paste' is set. + NOTE: This option is reset when 'compatible' is set. + This option is reset when 'paste' is set and restored when 'paste' is + reset. *'rightleft'* *'rl'* *'norightleft'* *'norl'* 'rightleft' 'rl' boolean (default off) @@ -6036,7 +6043,8 @@ A jump table for the options with a short description can be found at |Q_op|. separated with a dash. For an empty line "0-1" is shown. For an empty buffer the line number will also be zero: "0,0-1". - This option is reset when the 'paste' option is set. + This option is reset when 'paste' is set and restored when 'paste' is + reset. If you don't want to see the ruler all the time but want to know where you are, use "g CTRL-G" |g_CTRL-G|. NOTE: This option is reset when 'compatible' is set. @@ -6675,7 +6683,9 @@ A jump table for the options with a short description can be found at |Q_op|. jump is only done if the match can be seen on the screen. The time to show the match can be set with 'matchtime'. A Beep is given if there is no match (no matter if the match can be - seen or not). This option is reset when the 'paste' option is set. + seen or not). + This option is reset when 'paste' is set and restored when 'paste' is + reset. When the 'm' flag is not included in 'cpoptions', typing a character will immediately move the cursor back to where it belongs. See the "sm" field in 'guicursor' for setting the cursor shape and @@ -6784,8 +6794,9 @@ A jump table for the options with a short description can be found at |Q_op|. mapping: ":inoremap # X^H#", where ^H is entered with CTRL-V CTRL-H. When using the ">>" command, lines starting with '#' are not shifted right. - NOTE: 'smartindent' is reset when 'compatible' is set. When 'paste' - is set smart indenting is disabled. + NOTE: 'smartindent' is reset when 'compatible' is set. + This option is reset when 'paste' is set and restored when 'paste' is + reset. *'smarttab'* *'sta'* *'nosmarttab'* *'nosta'* 'smarttab' 'sta' boolean (default off) @@ -6801,6 +6812,8 @@ A jump table for the options with a short description can be found at |Q_op|. What gets inserted (a or spaces) depends on the 'expandtab' option. Also see |ins-expandtab|. When 'expandtab' is not set, the number of spaces is minimized by using s. + This option is reset when 'paste' is set and restored when 'paste' is + reset. NOTE: This option is reset when 'compatible' is set. *'softtabstop'* *'sts'* @@ -6815,7 +6828,8 @@ A jump table for the options with a short description can be found at |Q_op|. commands like "x" still work on the actual characters. When 'sts' is zero, this feature is off. When 'sts' is negative, the value of 'shiftwidth' is used. - 'softtabstop' is set to 0 when the 'paste' option is set. + 'softtabstop' is set to 0 when the 'paste' option is set and restored + when 'paste' is reset. See also |ins-expandtab|. When 'expandtab' is not set, the number of spaces is minimized by using s. The 'L' flag in 'cpoptions' changes how tabs are used when 'list' is @@ -7577,8 +7591,10 @@ A jump table for the options with a short description can be found at |Q_op|. {not in Vi} Maximum width of text that is being inserted. A longer line will be broken after white space to get this width. A zero value disables - this. 'textwidth' is set to 0 when the 'paste' option is set. When - 'textwidth' is zero, 'wrapmargin' may be used. See also + this. + 'textwidth' is set to 0 when the 'paste' option is set and restored + when 'paste' is reset. + When 'textwidth' is zero, 'wrapmargin' may be used. See also 'formatoptions' and |ins-textwidth|. When 'formatexpr' is set it will be used to break the line. NOTE: This option is set to 0 when 'compatible' is set. @@ -8611,6 +8627,8 @@ A jump table for the options with a short description can be found at |Q_op|. Options that add a margin, such as 'number' and 'foldcolumn', cause the text width to be further reduced. This is Vi compatible. When 'textwidth' is non-zero, this option is not used. + This option is set to 0 when 'paste' is set and restored when 'paste' + is reset. See also 'formatoptions' and |ins-textwidth|. {Vi: works differently and less usefully} diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt index 22d99b908b..9858d4eb76 100644 --- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -1,4 +1,4 @@ -*quickfix.txt* For Vim version 7.4. Last change: 2014 Mar 27 +*quickfix.txt* For Vim version 7.4. Last change: 2015 Sep 08 VIM REFERENCE MANUAL by Bram Moolenaar @@ -299,6 +299,75 @@ use this code: > au QuickfixCmdPost make call QfMakeConv() +EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST: + *:cdo* +:cdo[!] {cmd} Execute {cmd} in each valid entry in the quickfix list. + It works like doing this: > + :cfirst + :{cmd} + :cnext + :{cmd} + etc. +< When the current file can't be |abandon|ed and the [!] + is not present, the command fails. + When an error is detected excecution stops. + The last buffer (or where an error occurred) becomes + the current buffer. + {cmd} can contain '|' to concatenate several commands. + + Only valid entries in the quickfix list are used. + A range can be used to select entries, e.g.: > + :10,$cdo cmd +< To skip entries 1 to 9. + + Note: While this command is executing, the Syntax + autocommand event is disabled by adding it to + 'eventignore'. This considerably speeds up editing + each buffer. + {not in Vi} {not available when compiled without the + |+listcmds| feature} + Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|, + |:ldo|, |:cfdo| and |:lfdo|. + + *:cfdo* +:cfdo[!] {cmd} Execute {cmd} in each file in the quickfix list. + It works like doing this: > + :cfirst + :{cmd} + :cnfile + :{cmd} + etc. +< Otherwise it works the same as `:cdo`. + {not in Vi} {not available when compiled without the + |+listcmds| feature} + + *:ldo* +:ld[o][!] {cmd} Execute {cmd} in each valid entry in the location list + for the current window. + It works like doing this: > + :lfirst + :{cmd} + :lnext + :{cmd} + etc. +< Only valid entries in the location list are used. + Otherwise it works the same as `:cdo`. + {not in Vi} {not available when compiled without the + |+listcmds| feature} + + *:lfdo* +:lfdo[!] {cmd} Execute {cmd} in each file in the location list for + the current window. + It works like doing this: > + :lfirst + :{cmd} + :lnfile + :{cmd} + etc. +< Otherwise it works the same as `:ldo`. + {not in Vi} {not available when compiled without the + |+listcmds| feature} + ============================================================================= 2. The error window *quickfix-window* diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt index 46e0a8fde2..b98c18b02c 100644 --- a/runtime/doc/tabpage.txt +++ b/runtime/doc/tabpage.txt @@ -248,7 +248,8 @@ LOOPING OVER TAB PAGES: {cmd} must not open or close tab pages or reorder them. {not in Vi} {not available when compiled without the |+listcmds| feature} - Also see |:windo|, |:argdo| and |:bufdo|. + Also see |:windo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|, |:cfdo| + and |:lfdo| ============================================================================== 3. Other items *tab-page-other* diff --git a/runtime/doc/tags b/runtime/doc/tags index 51b37bb815..6feb363139 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -2032,11 +2032,13 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME* :cclose quickfix.txt /*:cclose* :cd editing.txt /*:cd* :cd- editing.txt /*:cd-* +:cdo quickfix.txt /*:cdo* :ce change.txt /*:ce* :center change.txt /*:center* :cex quickfix.txt /*:cex* :cexpr quickfix.txt /*:cexpr* :cf quickfix.txt /*:cf* +:cfdo quickfix.txt /*:cfdo* :cfile quickfix.txt /*:cfile* :cfir quickfix.txt /*:cfir* :cfirst quickfix.txt /*:cfirst* @@ -2383,6 +2385,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME* :lclose quickfix.txt /*:lclose* :lcs if_cscop.txt /*:lcs* :lcscope if_cscop.txt /*:lcscope* +:ldo quickfix.txt /*:ldo* :le change.txt /*:le* :left change.txt /*:left* :lefta windows.txt /*:lefta* @@ -2401,6 +2404,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME* :lex quickfix.txt /*:lex* :lexpr quickfix.txt /*:lexpr* :lf quickfix.txt /*:lf* +:lfdo quickfix.txt /*:lfdo* :lfile quickfix.txt /*:lfile* :lfir quickfix.txt /*:lfir* :lfirst quickfix.txt /*:lfirst* @@ -5710,6 +5714,7 @@ external-editor gui_mac.txt /*external-editor* f motion.txt /*f* faq intro.txt /*faq* farsi farsi.txt /*farsi* +farsi-fonts farsi.txt /*farsi-fonts* farsi.txt farsi.txt /*farsi.txt* fasm.vim syntax.txt /*fasm.vim* fcs_choice-variable eval.txt /*fcs_choice-variable* @@ -6599,6 +6604,7 @@ i_CTRL-G_ insert.txt /*i_CTRL-G_* i_CTRL-G_ insert.txt /*i_CTRL-G_* i_CTRL-G_CTRL-J insert.txt /*i_CTRL-G_CTRL-J* i_CTRL-G_CTRL-K insert.txt /*i_CTRL-G_CTRL-K* +i_CTRL-G_U insert.txt /*i_CTRL-G_U* i_CTRL-G_j insert.txt /*i_CTRL-G_j* i_CTRL-G_k insert.txt /*i_CTRL-G_k* i_CTRL-G_u insert.txt /*i_CTRL-G_u* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index 85192836d2..fe75e59406 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.4. Last change: 2015 Aug 25 +*todo.txt* For Vim version 7.4. Last change: 2015 Sep 25 VIM REFERENCE MANUAL by Bram Moolenaar @@ -91,20 +91,17 @@ Perhaps we can use ":silent window"? Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28) -Crash when changing the 'tags' option from a remote command. -(Benjamin Fritz, 2015 Mar 18, stack trace Mar 20) - Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab. -Updated Breton spell script. (pull request 396, Dominique) +Unexpected delay when using CTRL-O u. It's not timeoutlen. +(Gary Johnson, 2015 Aug 28) Can src/GvimExt/Make_cyg.mak be removed? Same for src/xxd/Make_cyg.mak Python: ":py raw_input('prompt')" doesn't work. (Manu Hack) -Patch to add CTRL-g U to not break undo for the following cursor movement -command. (Christian Brabandt, 2015 Aug 4) +2html update. (Ben Fritz, 2015 Sep 9) MS-Windows: When editing a file with a leading space, writing it uses the wrong name. (Aram, 2014 Nov 7) Vim 7.4. @@ -115,8 +112,6 @@ specifically? First try with the parens, then without. Value returned by virtcol() changes depending on how lines wrap. This is inconsistent with the documentation. -Better greek spell checking. Issue 299. - Add bzl filetype support. (David Barnett, 2015 Aug 11) When complete() first argument is before where insert started and 'backspace' @@ -131,11 +126,8 @@ Goes away when disabling the swap file. (might1, Feb 16) MS-Windows: Crash opening very long file name starting with "\\". (Christian Brock, 2012 Jun 29) -Patch to improve IME handling in the MS-Windows console. -(Ken Takata, 2015 Aug 8) - -Patch to support Unicode I/O in the MS-Windows console. -(Ken Takata, 2015 Aug 8) Also by Yasuhiro Matsumoto. +The OptionSet autocommand event is not always triggered. (Rick Howe, 2015 Sep +24): setwinvar(), :diffthis, :diffoff. The argument for "-S" is not taken literally, the ":so" command expands wildcards. Add a ":nowild" command modifier? (ZyX, 2015 March 4) @@ -146,6 +138,12 @@ effects for when set by the user, on init and when reset to default. Proposal to make options.txt easier to read. (Arnaud Decara, 2015 Aug 5) Update Aug 14. +Patch for problem with restoring screen on Windows. (Nobuhiro Takasaki, 2015 +Sep 10) + +Patch to be able to use hex numbers with :digraph. (Lcd, 2015 Sep 6) +Update Sep 7. Update by Christian Brabandt, 2015 Sep 8. + Build with Python on Mac does not always use the right library. (Kazunobu Kuriyama, 2015 Mar 28) @@ -156,10 +154,6 @@ inserts a slash when needed? pathconcat(dir, path) (Thilo Six, 2015 Aug 12) ml_updatechunk() is slow when retrying for another encoding. (John Little, 2014 Sep 11) -Patch to fix that "zt" in diff mode doesn't always work properly. -(Christian Brabandt, 2015 Aug 6) Need to uncomment a line to not have filler -lines. - Patch to fix checking global option value when not using it. (Arnaud Decara, 2015 Jul 23) @@ -217,11 +211,17 @@ Patch on Issue 72: 'autochdir' causes problems for :vimgrep. When 'balloonexpr' returns a list the result has a trailing newline. Just remove one trailing newline. (lcd, 2014 Oct 17) +When two SIGWINCH arrive very quickly, the second one may be lost. +(Josh Triplett, 2015 Sep 17) + Make comments in the test Makefile silent. (Kartik Agaram, 2014 Sep 24) Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan 26, update 2013 Dec 14, another 2014 Nov 22) +Patch to improve behavior of dead keys on MS-Windows. (John Wellesz, 2015 Aug +25) https://github.com/vim/vim/pull/399.diff + Result of systemlist() does not show whether text ended in line break. (Bjorn Linse, 2014 Nov 27) @@ -238,11 +238,6 @@ Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19) Should be easy to highlight all matches with 'incsearch'. Idea by Itchyny, 2015 Feb 6. -Patch to add ":ldo" and ":cdo", execute commands over quickfix list and -location list. (Yegappan Lakshmanan, 2013 Jun 2, update 2015 Mar 21) -Update by Florian Walch, 2015 Jul 1. -Update by Yegappan, 2015 Jul 24. - Plugins need to make a lot of effort, lots of mappings, to know what happened before pressing the key that triggers a plugin action. How about keeping the last N pressed keys, so that they do not need to be mapped? @@ -289,6 +284,9 @@ Delete old code in os_msdos.c, mch_FullName(). Patch: On MS-Windows shellescape() may have to triple double quotes. (Ingo Karkat, 2015 Jan 16) +Patch for variable tabstops. On github (Christian Brabandt, 2014 May 15) +Update 2015 Jul 25 (email). + Redo only remembers the last change. Could use "{count}g." to redo an older change. How does the user know which change? At least have a way to list them: ":repeats". @@ -829,9 +827,6 @@ Patch to make "z=" work when 'spell' is off. Does this have nasty side effects? (Christian Brabandt, 2012 Aug 5, Update 2013 Aug 12) Would also need to do this for spellbadword() and spellsuggest(). -Patch for variable tabstops. On github (Christian Brabandt, 2014 May 15) -Update 2015 Jul 25 (email). - On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a 64 bits value. Change all number options to use nropt_T and define it to the right type. diff --git a/runtime/doc/windows.txt b/runtime/doc/windows.txt index a7db69c520..020f32d50f 100644 --- a/runtime/doc/windows.txt +++ b/runtime/doc/windows.txt @@ -1,4 +1,4 @@ -*windows.txt* For Vim version 7.4. Last change: 2015 Jul 21 +*windows.txt* For Vim version 7.4. Last change: 2015 Aug 29 VIM REFERENCE MANUAL by Bram Moolenaar @@ -715,7 +715,8 @@ can also get to them with the buffer list commands, like ":bnext". {cmd} must not open or close windows or reorder them. {not in Vi} {not available when compiled without the |+listcmds| feature} - Also see |:tabdo|, |:argdo| and |:bufdo|. + Also see |:tabdo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|, + |:cfdo| and |:lfdo| *:bufdo* :[range]bufdo[!] {cmd} Execute {cmd} in each buffer in the buffer list or if @@ -743,7 +744,8 @@ can also get to them with the buffer list commands, like ":bnext". each buffer. {not in Vi} {not available when compiled without the |+listcmds| feature} - Also see |:tabdo|, |:argdo| and |:windo|. + Also see |:tabdo|, |:argdo|, |:windo|, |:cdo|, |:ldo|, + |:cfdo| and |:lfdo| Examples: > @@ -1115,13 +1117,13 @@ list of buffers. |unlisted-buffer| the current buffer remains being edited. See |:buffer-!| for [!]. This will also edit a buffer that is not in the buffer list, without setting the 'buflisted' flag. - Also see ||+cmd|. + Also see |+cmd|. :[N]b[uffer][!] [+cmd] {bufname} Edit buffer for {bufname} from the buffer list. See |:buffer-!| for [!]. This will also edit a buffer that is not in the buffer list, without setting the 'buflisted' flag. - Also see ||+cmd|. + Also see |+cmd|. :[N]sb[uffer] [+cmd] [N] *:sb* *:sbuffer* Split window and edit buffer [N] from the buffer list. If [N] @@ -1129,7 +1131,7 @@ list of buffers. |unlisted-buffer| "useopen" setting of 'switchbuf' when splitting. This will also edit a buffer that is not in the buffer list, without setting the 'buflisted' flag. - Also see ||+cmd|. + Also see |+cmd|. :[N]sb[uffer] [+cmd] {bufname} Split window and edit buffer for {bufname} from the buffer @@ -1138,13 +1140,13 @@ list of buffers. |unlisted-buffer| Note: If what you want to do is split the buffer, make a copy under another name, you can do it this way: > :w foobar | sp # -< Also see ||+cmd|. +< Also see |+cmd|. :[N]bn[ext][!] [+cmd] [N] *:bn* *:bnext* *E87* Go to [N]th next buffer in buffer list. [N] defaults to one. Wraps around the end of the buffer list. See |:buffer-!| for [!]. - Also see ||+cmd|. + Also see |+cmd|. If you are in a help buffer, this takes you to the next help buffer (if there is one). Similarly, if you are in a normal (non-help) buffer, this takes you to the next normal buffer. @@ -1157,21 +1159,21 @@ list of buffers. |unlisted-buffer| :[N]sbn[ext] [+cmd] [N] Split window and go to [N]th next buffer in buffer list. Wraps around the end of the buffer list. Uses 'switchbuf' - Also see ||+cmd|. + Also see |+cmd|. :[N]bN[ext][!] [+cmd] [N] *:bN* *:bNext* *:bp* *:bprevious* *E88* :[N]bp[revious][!] [+cmd] [N] Go to [N]th previous buffer in buffer list. [N] defaults to one. Wraps around the start of the buffer list. See |:buffer-!| for [!] and 'switchbuf'. - Also see ||+cmd|. + Also see |+cmd|. :[N]sbN[ext] [+cmd] [N] *:sbN* *:sbNext* *:sbp* *:sbprevious* :[N]sbp[revious] [+cmd] [N] Split window and go to [N]th previous buffer in buffer list. Wraps around the start of the buffer list. Uses 'switchbuf'. - Also see ||+cmd|. + Also see |+cmd|. :br[ewind][!] [+cmd] *:br* *:brewind* Go to first buffer in buffer list. If the buffer list is diff --git a/runtime/filetype.vim b/runtime/filetype.vim index 6bdedfdc99..4e3e000a8b 100644 --- a/runtime/filetype.vim +++ b/runtime/filetype.vim @@ -1,7 +1,7 @@ " Vim support file to detect file types " " Maintainer: Bram Moolenaar -" Last Change: 2015 Aug 11 +" Last Change: 2015 Sep 22 " Listen very carefully, I will say this only once if exists("did_load_filetypes") @@ -143,7 +143,7 @@ au BufNewFile,BufRead .arch-inventory,=tagging-method setf arch au BufNewFile,BufRead *.art setf art " AsciiDoc -au BufNewFile,BufRead *.asciidoc setf asciidoc +au BufNewFile,BufRead *.asciidoc,*.adoc setf asciidoc " ASN.1 au BufNewFile,BufRead *.asn,*.asn1 setf asn @@ -826,7 +826,7 @@ au BufNewFile,BufRead *.gs setf grads au BufNewFile,BufRead *.gretl setf gretl " Groovy -au BufNewFile,BufRead *.groovy setf groovy +au BufNewFile,BufRead *.gradle,*.groovy setf groovy " GNU Server Pages au BufNewFile,BufRead *.gsp setf gsp @@ -872,7 +872,7 @@ func! s:FThtml() setf xhtml return endif - if getline(n) =~ '{%\s*\(extends\|block\|load\)\>' + if getline(n) =~ '{%\s*\(extends\|block\|load\)\>\|{#\s\+' setf htmldjango return endif diff --git a/runtime/indent/html.vim b/runtime/indent/html.vim index 7eb963b7b2..8aaf82e21f 100644 --- a/runtime/indent/html.vim +++ b/runtime/indent/html.vim @@ -2,7 +2,7 @@ " Header: "{{{ " Maintainer: Bram Moolenaar " Original Author: Andy Wokula -" Last Change: 2015 Jun 12 +" Last Change: 2015 Sep 25 " Version: 1.0 " Description: HTML indent script with cached state for faster indenting on a " range of lines. @@ -178,13 +178,15 @@ let s:countonly = 0 " 3 "script" " 4 "style" " 5 comment start +" 6 conditional comment start " -1 closing tag " -2 "/pre" " -3 "/script" " -4 "/style" " -5 comment end +" -6 conditional comment end let s:indent_tags = {} -let s:endtags = [0,0,0,0,0,0] " long enough for the highest index +let s:endtags = [0,0,0,0,0,0,0] " long enough for the highest index "}}} " Add a list of tag names for a pair of to "tags". @@ -257,6 +259,7 @@ call s:AddBlockTag('pre', 2) call s:AddBlockTag('script', 3) call s:AddBlockTag('style', 4) call s:AddBlockTag('') +call s:AddBlockTag('') "}}} " Return non-zero when "tagname" is an opening tag, not being a block tag, for @@ -291,7 +294,7 @@ func! s:CountITags(text) let s:nextrel = 0 " relative indent steps for next line [unit &sw]: let s:block = 0 " assume starting outside of a block let s:countonly = 1 " don't change state - call substitute(a:text, '<\zs/\=\w\+\(-\w\+\)*\>\|', '\=s:CheckTag(submatch(0))', 'g') + call substitute(a:text, '<\zs/\=\w\+\(-\w\+\)*\>\|\|', '\=s:CheckTag(submatch(0))', 'g') let s:countonly = 0 endfunc "}}} @@ -303,7 +306,7 @@ func! s:CountTagsAndState(text) let s:nextrel = 0 " relative indent steps for next line [unit &sw]: let s:block = b:hi_newstate.block - let tmp = substitute(a:text, '<\zs/\=\w\+\(-\w\+\)*\>\|', '\=s:CheckTag(submatch(0))', 'g') + let tmp = substitute(a:text, '<\zs/\=\w\+\(-\w\+\)*\>\|\|', '\=s:CheckTag(submatch(0))', 'g') if s:block == 3 let b:hi_newstate.scripttype = s:GetScriptType(matchstr(tmp, '\C.*\zs[^>]*')) endif @@ -425,7 +428,7 @@ func! s:FreshState(lnum) " State: " lnum last indented line == prevnonblank(a:lnum - 1) " block = 0 a:lnum located within special tag: 0:none, 2:
,
-  "			3: