To: vim_dev@googlegroups.com Subject: Patch 7.4.1728 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.4.1728 Problem: The help for functions require a space after the "(". Solution: Make CTRL-] on a function name ignore the arguments. (Hirohito Higashi) Files: src/ex_cmds.c, src/testdir/test_help_tagjump.vim, runtime/doc/eval.txt *** ../vim-7.4.1727/src/ex_cmds.c 2016-04-13 21:14:31.256124229 +0200 --- src/ex_cmds.c 2016-04-14 13:38:59.739203829 +0200 *************** *** 6204,6209 **** --- 6204,6216 ---- *d++ = *s; /* + * If tag contains "({" or "([", tag terminates at the "(". + * This is for help on functions, e.g.: abs({expr}). + */ + if (*s == '(' && (s[1] == '{' || s[1] =='[')) + break; + + /* * If tag starts with ', toss everything after a second '. Fixes * CTRL-] on 'option'. (would include the trailing '.'). */ *** ../vim-7.4.1727/src/testdir/test_help_tagjump.vim 2016-03-15 16:35:23.504279033 +0100 --- src/testdir/test_help_tagjump.vim 2016-04-14 13:35:51.281201492 +0200 *************** *** 15,18 **** --- 15,28 ---- call assert_equal("help", &filetype) call assert_true(getline('.') =~ "\\*'buflisted'\\*") helpclose + + exec "help! abs({expr})" + call assert_equal("help", &filetype) + call assert_true(getline('.') =~ '\*abs()\*') + helpclose + + exec "help! arglistid([{winnr}" + call assert_equal("help", &filetype) + call assert_true(getline('.') =~ '\*arglistid()\*') + helpclose endfunc *** ../vim-7.4.1727/runtime/doc/eval.txt 2016-04-14 12:46:33.620678603 +0200 --- runtime/doc/eval.txt 2016-04-14 13:49:20.540627890 +0200 *************** *** 1773,2174 **** USAGE RESULT DESCRIPTION ~ ! abs( {expr}) Float or Number absolute value of {expr} ! acos( {expr}) Float arc cosine of {expr} ! add( {list}, {item}) List append {item} to |List| {list} ! alloc_fail( {countdown}, {when}, {repeat}) ! nothing make memory allocation fail ! and( {expr}, {expr}) Number bitwise AND ! append( {lnum}, {string}) Number append {string} below line {lnum} ! append( {lnum}, {list}) Number append lines {list} below line {lnum} argc() Number number of files in the argument list argidx() Number current index in the argument list ! arglistid( [{winnr} [, {tabnr}]]) ! Number argument list id ! argv( {nr}) String {nr} entry of the argument list argv() List the argument list ! assert_equal( {exp}, {act} [, {msg}]) none assert {exp} is equal to {act} ! assert_exception( {error} [, {msg}]) none assert {error} is in v:exception ! assert_fails( {cmd} [, {error}]) none assert {cmd} fails ! assert_false( {actual} [, {msg}]) none assert {actual} is false ! assert_match( {pat}, {text} [, {msg}]) none assert {pat} matches {text} ! assert_notequal( {exp}, {act} [, {msg}]) none assert {exp} is not equal {act} ! assert_notmatch( {pat}, {text} [, {msg}]) none assert {pat} not matches {text} ! assert_true( {actual} [, {msg}]) none assert {actual} is true ! asin( {expr}) Float arc sine of {expr} ! atan( {expr}) Float arc tangent of {expr} ! atan2( {expr}, {expr}) Float arc tangent of {expr1} / {expr2} ! browse( {save}, {title}, {initdir}, {default}) String put up a file requester ! browsedir( {title}, {initdir}) String put up a directory requester ! 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} ! 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} ! byteidxcomp( {expr}, {nr}) Number byte index of {nr}'th char in {expr} ! call( {func}, {arglist} [, {dict}]) any call {func} with arguments {arglist} ! ceil( {expr}) Float round {expr} up ! ch_close( {handle}) none close {handle} ! ch_evalexpr( {handle}, {expr} [, {options}]) any evaluate {expr} on JSON {handle} ! ch_evalraw( {handle}, {string} [, {options}]) any evaluate {string} on raw {handle} ! ch_getbufnr( {handle}, {what}) Number get buffer number for {handle}/{what} ! ch_getjob( {channel}) Job get the Job of {channel} ! ch_info( {handle}) String info about channel {handle} ! ch_log( {msg} [, {handle}]) none write {msg} in the channel log file ! ch_logfile( {fname} [, {mode}]) none start logging channel activity ! ch_open( {address} [, {options}]) Channel open a channel to {address} ! ch_read( {handle} [, {options}]) String read from {handle} ! ch_readraw( {handle} [, {options}]) String read raw from {handle} ! ch_sendexpr( {handle}, {expr} [, {options}]) any send {expr} over JSON {handle} ! ch_sendraw( {handle}, {string} [, {options}]) any send {string} over raw {handle} ! ch_setoptions( {handle}, {options}) none set options for {handle} ! ch_status( {handle}) String status of channel {handle} changenr() Number current change number ! char2nr( {expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr} ! cindent( {lnum}) Number C indent for line {lnum} clearmatches() none clear all matches ! col( {expr}) Number column nr of cursor or mark ! complete( {startcol}, {matches}) none set Insert mode completion ! complete_add( {expr}) Number add completion match complete_check() Number check for key typed during completion ! confirm( {msg} [, {choices} [, {default} [, {type}]]]) Number number of choice picked by user ! copy( {expr}) any make a shallow copy of {expr} ! cos( {expr}) Float cosine of {expr} ! cosh( {expr}) Float hyperbolic cosine of {expr} ! count( {list}, {expr} [, {ic} [, {start}]]) Number count how many {expr} are in {list} ! cscope_connection( [{num} , {dbpath} [, {prepend}]]) Number checks existence of cscope connection ! cursor( {lnum}, {col} [, {off}]) Number move cursor to {lnum}, {col}, {off} ! cursor( {list}) Number move cursor to position in {list} ! deepcopy( {expr} [, {noref}]) any make a full copy of {expr} ! delete( {fname} [, {flags}]) Number delete the file or directory {fname} did_filetype() Number TRUE if FileType autocommand event used ! diff_filler( {lnum}) Number diff filler lines about {lnum} ! diff_hlID( {lnum}, {col}) Number diff highlighting at {lnum}/{col} ! disable_char_avail_for_testing({expr}) none test without typeahead ! empty( {expr}) Number TRUE if {expr} is empty ! escape( {string}, {chars}) String escape {chars} in {string} with '\' ! eval( {string}) any evaluate {string} into its value ! eventhandler( ) Number TRUE if inside an event handler ! executable( {expr}) Number 1 if executable {expr} exists ! exepath( {expr}) String full path of the command {expr} ! exists( {expr}) Number TRUE if {expr} exists ! extend( {expr1}, {expr2} [, {expr3}]) List/Dict insert items of {expr2} into {expr1} ! exp( {expr}) Float exponential of {expr} ! expand( {expr} [, {nosuf} [, {list}]]) any expand special keywords in {expr} ! feedkeys( {string} [, {mode}]) Number add key sequence to typeahead buffer ! filereadable( {file}) Number TRUE if {file} is a readable file ! filewritable( {file}) Number TRUE if {file} is a writable file ! filter( {expr}, {string}) List/Dict remove items from {expr} where {string} is 0 ! finddir( {name}[, {path}[, {count}]]) String find directory {name} in {path} ! findfile( {name}[, {path}[, {count}]]) String find file {name} in {path} ! float2nr( {expr}) Number convert Float {expr} to a Number ! floor( {expr}) Float round {expr} down ! fmod( {expr1}, {expr2}) Float remainder of {expr1} / {expr2} ! fnameescape( {fname}) String escape special characters in {fname} ! fnamemodify( {fname}, {mods}) String modify file name ! foldclosed( {lnum}) Number first line of fold at {lnum} if closed ! foldclosedend( {lnum}) Number last line of fold at {lnum} if closed ! foldlevel( {lnum}) Number fold level at {lnum} foldtext() String line displayed for closed fold ! foldtextresult( {lnum}) String text for closed fold at {lnum} foreground() Number bring the Vim window to the foreground ! function( {name} [, {arglist}] [, {dict}]) Funcref reference to function {name} ! garbagecollect( [{atexit}]) none free memory, breaking cyclic references garbagecollect_for_testing() none free memory right now ! get( {list}, {idx} [, {def}]) any get item {idx} from {list} or {def} ! get( {dict}, {key} [, {def}]) any get item {key} from {dict} or {def} ! getbufline( {expr}, {lnum} [, {end}]) List lines {lnum} to {end} of buffer {expr} ! getbufvar( {expr}, {varname} [, {def}]) any variable {varname} in buffer {expr} ! getchar( [expr]) Number get one character from the user ! getcharmod( ) Number modifiers for the last typed character getcharsearch() Dict last character search getcmdline() String return the current command-line getcmdpos() Number return cursor position in command-line getcmdtype() String return current command-line type getcmdwintype() String return current command-line window type getcurpos() List position of the cursor ! getcwd( [{winnr} [, {tabnr}]]) String get the current working directory ! getfontname( [{name}]) String name of font being used ! getfperm( {fname}) String file permissions of file {fname} ! getfsize( {fname}) Number size in bytes of file {fname} ! getftime( {fname}) Number last modification time of file ! getftype( {fname}) String description of type of file {fname} ! getline( {lnum}) String line {lnum} of current buffer ! getline( {lnum}, {end}) List lines {lnum} to {end} of current buffer ! getloclist( {nr}) List list of location list items getmatches() List list of current matches getpid() Number process ID of Vim ! getpos( {expr}) List position of cursor, mark, etc. getqflist() List list of quickfix items ! getreg( [{regname} [, 1 [, {list}]]]) String or List contents of register ! getregtype( [{regname}]) String type of register ! gettabvar( {nr}, {varname} [, {def}]) any variable {varname} in tab {nr} or {def} ! gettabwinvar( {tabnr}, {winnr}, {name} [, {def}]) any {name} in {winnr} in tab page {tabnr} getwinposx() Number X coord in pixels of GUI Vim window getwinposy() Number Y coord in pixels of GUI Vim window ! getwinvar( {nr}, {varname} [, {def}]) any variable {varname} in window {nr} ! glob( {expr} [, {nosuf} [, {list} [, {alllinks}]]]) any expand file wildcards in {expr} ! glob2regpat( {expr}) String convert a glob pat into a search pat ! globpath( {path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]]) String do glob({expr}) for all dirs in {path} ! has( {feature}) Number TRUE if feature {feature} supported ! has_key( {dict}, {key}) Number TRUE if {dict} has entry {key} ! haslocaldir( [{winnr} [, {tabnr}]]) Number TRUE if the window executed |:lcd| ! hasmapto( {what} [, {mode} [, {abbr}]]) Number TRUE if mapping to {what} exists ! histadd( {history},{item}) String add an item to a history ! histdel( {history} [, {item}]) String remove an item from a history ! histget( {history} [, {index}]) String get the item {index} from a history ! histnr( {history}) Number highest index of a history ! hlexists( {name}) Number TRUE if highlight group {name} exists ! hlID( {name}) Number syntax ID of highlight group {name} hostname() String name of the machine Vim is running on ! iconv( {expr}, {from}, {to}) String convert encoding of {expr} ! indent( {lnum}) Number indent of line {lnum} ! index( {list}, {expr} [, {start} [, {ic}]]) Number index in {list} where {expr} appears ! input( {prompt} [, {text} [, {completion}]]) String get input from the user ! inputdialog( {p} [, {t} [, {c}]]) String like input() but in a GUI dialog ! inputlist( {textlist}) Number let the user pick from a choice list inputrestore() Number restore typeahead inputsave() Number save and clear typeahead ! inputsecret( {prompt} [, {text}]) String like input() but hiding the text ! insert( {list}, {item} [, {idx}]) List insert {item} in {list} [before {idx}] ! invert( {expr}) Number bitwise invert ! isdirectory( {directory}) Number TRUE if {directory} is a directory ! islocked( {expr}) Number TRUE if {expr} is locked ! isnan( {expr}) Number TRUE if {expr} is NaN ! items( {dict}) List key-value pairs in {dict} ! job_getchannel( {job}) Channel get the channel handle for {job} ! job_info( {job}) Dict get information about {job} ! job_setoptions( {job}, {options}) none set options for {job} ! job_start( {command} [, {options}]) Job start a job ! job_status( {job}) String get the status of {job} ! job_stop( {job} [, {how}]) Number stop {job} ! join( {list} [, {sep}]) String join {list} items into one String ! js_decode( {string}) any decode JS style JSON ! js_encode( {expr}) String encode JS style JSON ! json_decode( {string}) any decode JSON ! json_encode( {expr}) String encode JSON ! keys( {dict}) List keys in {dict} ! len( {expr}) Number the length of {expr} ! libcall( {lib}, {func}, {arg}) String call {func} in library {lib} with {arg} ! libcallnr( {lib}, {func}, {arg}) Number idem, but return a Number ! line( {expr}) Number line nr of cursor, last line or mark ! line2byte( {lnum}) Number byte count of line {lnum} ! lispindent( {lnum}) Number Lisp indent for line {lnum} localtime() Number current time ! log( {expr}) Float natural logarithm (base e) of {expr} ! log10( {expr}) Float logarithm of Float {expr} to base 10 ! luaeval( {expr}[, {expr}]) any evaluate |Lua| expression ! map( {expr}, {string}) List/Dict change each item in {expr} to {expr} ! maparg( {name}[, {mode} [, {abbr} [, {dict}]]]) String or Dict rhs of mapping {name} in mode {mode} ! mapcheck( {name}[, {mode} [, {abbr}]]) String check for mappings matching {name} ! match( {expr}, {pat}[, {start}[, {count}]]) Number position where {pat} matches in {expr} ! matchadd( {group}, {pattern}[, {priority}[, {id}]]) Number highlight {pattern} with {group} ! matchaddpos( {group}, {list}[, {priority}[, {id}]]) Number highlight positions with {group} ! matcharg( {nr}) List arguments of |:match| ! matchdelete( {id}) Number delete match identified by {id} ! matchend( {expr}, {pat}[, {start}[, {count}]]) Number position where {pat} ends in {expr} ! matchlist( {expr}, {pat}[, {start}[, {count}]]) List match and submatches of {pat} in {expr} ! matchstr( {expr}, {pat}[, {start}[, {count}]]) String {count}'th match of {pat} in {expr} ! matchstrpos( {expr}, {pat}[, {start}[, {count}]]) List {count}'th match of {pat} in {expr} ! max( {list}) Number maximum value of items in {list} ! min( {list}) Number minimum value of items in {list} ! mkdir( {name} [, {path} [, {prot}]]) Number create directory {name} ! mode( [expr]) String current editing mode ! mzeval( {expr}) any evaluate |MzScheme| expression ! nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum} ! nr2char( {expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr} ! or( {expr}, {expr}) Number bitwise OR ! pathshorten( {expr}) String shorten directory names in a path ! perleval( {expr}) any evaluate |Perl| expression ! pow( {x}, {y}) Float {x} to the power of {y} ! prevnonblank( {lnum}) Number line nr of non-blank line <= {lnum} ! printf( {fmt}, {expr1}...) String format text pumvisible() Number whether popup menu is visible ! pyeval( {expr}) any evaluate |Python| expression ! py3eval( {expr}) any evaluate |python3| expression ! range( {expr} [, {max} [, {stride}]]) List items from {expr} to {max} ! readfile( {fname} [, {binary} [, {max}]]) List get list of lines from file {fname} ! reltime( [{start} [, {end}]]) List get time value ! reltimestr( {time}) String turn time value into a String ! remote_expr( {server}, {string} [, {idvar}]) String send expression ! remote_foreground( {server}) Number bring Vim server to the foreground ! remote_peek( {serverid} [, {retvar}]) Number check for reply string ! remote_read( {serverid}) String read reply string ! remote_send( {server}, {string} [, {idvar}]) String send key sequence ! remove( {list}, {idx} [, {end}]) any remove items {idx}-{end} from {list} ! remove( {dict}, {key}) any remove entry {key} from {dict} ! rename( {from}, {to}) Number rename (move) file from {from} to {to} ! repeat( {expr}, {count}) String repeat {expr} {count} times ! resolve( {filename}) String get filename a shortcut points to ! reverse( {list}) List reverse {list} in-place ! round( {expr}) Float round off {expr} ! screenattr( {row}, {col}) Number attribute at screen position ! screenchar( {row}, {col}) Number character at screen position screencol() Number current cursor column screenrow() Number current cursor row ! search( {pattern} [, {flags} [, {stopline} [, {timeout}]]]) Number search for {pattern} ! searchdecl( {name} [, {global} [, {thisblock}]]) Number search for variable declaration ! searchpair( {start}, {middle}, {end} [, {flags} [, {skip} [...]]]) Number search for other end of start/end pair ! searchpairpos( {start}, {middle}, {end} [, {flags} [, {skip} [...]]]) List search for other end of start/end pair ! searchpos( {pattern} [, {flags} [, {stopline} [, {timeout}]]]) List search for {pattern} ! server2client( {clientid}, {string}) Number send reply string serverlist() String get a list of available servers ! setbufvar( {expr}, {varname}, {val}) set {varname} in buffer {expr} to {val} ! setcharsearch( {dict}) Dict set character search from {dict} ! setcmdpos( {pos}) Number set cursor position in command-line ! setfperm( {fname}, {mode}) Number set {fname} file permissions to {mode} ! setline( {lnum}, {line}) Number set line {lnum} to {line} ! setloclist( {nr}, {list}[, {action}]) Number modify location list using {list} ! setmatches( {list}) Number restore a list of matches ! setpos( {expr}, {list}) Number set the {expr} position to {list} ! setqflist( {list}[, {action}]) Number modify quickfix list using {list} ! setreg( {n}, {v}[, {opt}]) Number set register to value and type ! settabvar( {nr}, {varname}, {val}) set {varname} in tab page {nr} to {val} ! settabwinvar( {tabnr}, {winnr}, {varname}, {val}) set {varname} in window ! {winnr} in tab page {tabnr} to {val} ! setwinvar( {nr}, {varname}, {val}) set {varname} in window {nr} to {val} ! sha256( {string}) String SHA256 checksum of {string} ! shellescape( {string} [, {special}]) String escape {string} for use as shell command argument shiftwidth() Number effective value of 'shiftwidth' ! simplify( {filename}) String simplify filename as much as possible ! sin( {expr}) Float sine of {expr} ! sinh( {expr}) Float hyperbolic sine of {expr} ! sort( {list} [, {func} [, {dict}]]) List sort {list}, using {func} to compare ! soundfold( {word}) String sound-fold {word} spellbadword() String badly spelled word at cursor ! spellsuggest( {word} [, {max} [, {capital}]]) List spelling suggestions ! split( {expr} [, {pat} [, {keepempty}]]) List make |List| from {pat} separated {expr} ! sqrt( {expr}) Float square root of {expr} ! str2float( {expr}) Float convert String to Float ! str2nr( {expr} [, {base}]) Number convert String to Number ! strchars( {expr} [, {skipcc}]) Number character length of the String {expr} ! strdisplaywidth( {expr} [, {col}]) Number display length of the String {expr} ! strftime( {format}[, {time}]) String time in specified format ! stridx( {haystack}, {needle}[, {start}]) Number index of {needle} in {haystack} ! string( {expr}) String String representation of {expr} value ! strlen( {expr}) Number length of the String {expr} ! strpart( {src}, {start}[, {len}]) String {len} characters of {src} at {start} ! strridx( {haystack}, {needle} [, {start}]) Number last index of {needle} in {haystack} ! strtrans( {expr}) String translate string to make it printable ! strwidth( {expr}) Number display cell length of the String {expr} ! submatch( {nr}[, {list}]) String or List specific match in ":s" or substitute() ! substitute( {expr}, {pat}, {sub}, {flags}) String all {pat} in {expr} replaced with {sub} ! synID( {lnum}, {col}, {trans}) Number syntax ID at {lnum} and {col} ! synIDattr( {synID}, {what} [, {mode}]) String attribute {what} of syntax ID {synID} ! synIDtrans( {synID}) Number translated syntax ID of {synID} ! synconcealed( {lnum}, {col}) List info about concealing ! synstack( {lnum}, {col}) List stack of syntax IDs at {lnum} and {col} ! system( {expr} [, {input}]) String output of shell command/filter {expr} ! systemlist( {expr} [, {input}]) List output of shell command/filter {expr} ! tabpagebuflist( [{arg}]) List list of buffer numbers in tab page ! tabpagenr( [{arg}]) Number number of current or last tab page ! tabpagewinnr( {tabarg}[, {arg}]) ! Number number of current window in tab page ! taglist( {expr}) List list of tags matching {expr} tagfiles() List tags files used ! tan( {expr}) Float tangent of {expr} ! tanh( {expr}) Float hyperbolic tangent of {expr} tempname() String name for a temporary file ! timer_start( {time}, {callback} [, {options}]) Number create a timer ! timer_stop( {timer}) none stop a timer ! tolower( {expr}) String the String {expr} switched to lowercase ! toupper( {expr}) String the String {expr} switched to uppercase ! tr( {src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr} to chars in {tostr} ! trunc( {expr}) Float truncate Float {expr} ! type( {name}) Number type of variable {name} ! undofile( {name}) String undo file name for {name} undotree() List undo file tree ! uniq( {list} [, {func} [, {dict}]]) List remove adjacent duplicates from a list ! values( {dict}) List values in {dict} ! virtcol( {expr}) Number screen column of cursor or mark ! visualmode( [expr]) String last visual mode used wildmenumode() Number whether 'wildmenu' mode is active ! win_findbuf( {bufnr}) List find windows containing {bufnr} ! win_getid( [{win} [, {tab}]]) Number get window ID for {win} in {tab} ! win_gotoid( {expr}) Number go to window with ID {expr} ! win_id2tabwin( {expr}) List get tab and window nr from window ID ! win_id2win( {expr}) Number get window nr from window ID ! winbufnr( {nr}) Number buffer number of window {nr} wincol() Number window column of the cursor ! winheight( {nr}) Number height of window {nr} winline() Number window line of the cursor ! winnr( [{expr}]) Number number of current window winrestcmd() String returns command to restore window sizes ! winrestview( {dict}) none restore view of current window winsaveview() Dict save view of current window ! winwidth( {nr}) Number width of window {nr} wordcount() Dict get byte/char/word statistics ! writefile( {list}, {fname} [, {flags}]) Number write list of lines to file {fname} ! xor( {expr}, {expr}) Number bitwise XOR abs({expr}) *abs()* Return the absolute value of {expr}. When {expr} evaluates to --- 1791,2200 ---- USAGE RESULT DESCRIPTION ~ ! abs({expr}) Float or Number absolute value of {expr} ! acos({expr}) Float arc cosine of {expr} ! add({list}, {item}) List append {item} to |List| {list} ! alloc_fail({id}, {countdown}, {repeat}) ! none make memory allocation fail ! and({expr}, {expr}) Number bitwise AND ! append({lnum}, {string}) Number append {string} below line {lnum} ! append({lnum}, {list}) Number append lines {list} below line {lnum} argc() Number number of files in the argument list argidx() Number current index in the argument list ! arglistid([{winnr} [, {tabnr}]]) Number argument list id ! argv({nr}) String {nr} entry of the argument list argv() List the argument list ! assert_equal({exp}, {act} [, {msg}]) none assert {exp} is equal to {act} ! assert_exception({error} [, {msg}]) none assert {error} is in v:exception ! assert_fails({cmd} [, {error}]) none assert {cmd} fails ! assert_false({actual} [, {msg}]) none assert {actual} is false ! assert_match({pat}, {text} [, {msg}]) none assert {pat} matches {text} ! assert_notequal({exp}, {act} [, {msg}]) none assert {exp} is not equal {act} ! assert_notmatch({pat}, {text} [, {msg}]) none assert {pat} not matches {text} ! assert_true({actual} [, {msg}]) none assert {actual} is true ! asin({expr}) Float arc sine of {expr} ! atan({expr}) Float arc tangent of {expr} ! atan2({expr}, {expr}) Float arc tangent of {expr1} / {expr2} ! browse({save}, {title}, {initdir}, {default}) String put up a file requester ! browsedir({title}, {initdir}) String put up a directory requester ! 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} [, {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} ! byteidxcomp({expr}, {nr}) Number byte index of {nr}'th char in {expr} ! call({func}, {arglist} [, {dict}]) any call {func} with arguments {arglist} ! ceil({expr}) Float round {expr} up ! ch_close({handle}) none close {handle} ! ch_evalexpr({handle}, {expr} [, {options}]) any evaluate {expr} on JSON {handle} ! ch_evalraw({handle}, {string} [, {options}]) any evaluate {string} on raw {handle} ! ch_getbufnr({handle}, {what}) Number get buffer number for {handle}/{what} ! ch_getjob({channel}) Job get the Job of {channel} ! ch_info({handle}) String info about channel {handle} ! ch_log({msg} [, {handle}]) none write {msg} in the channel log file ! ch_logfile({fname} [, {mode}]) none start logging channel activity ! ch_open({address} [, {options}]) ! Channel open a channel to {address} ! ch_read({handle} [, {options}]) String read from {handle} ! ch_readraw({handle} [, {options}]) ! String read raw from {handle} ! ch_sendexpr({handle}, {expr} [, {options}]) any send {expr} over JSON {handle} ! ch_sendraw({handle}, {string} [, {options}]) any send {string} over raw {handle} ! ch_setoptions({handle}, {options}) ! none set options for {handle} ! ch_status({handle}) String status of channel {handle} changenr() Number current change number ! char2nr({expr}[, {utf8}]) Number ASCII/UTF8 value of first char in {expr} ! cindent({lnum}) Number C indent for line {lnum} clearmatches() none clear all matches ! col({expr}) Number column nr of cursor or mark ! complete({startcol}, {matches}) none set Insert mode completion ! complete_add({expr}) Number add completion match complete_check() Number check for key typed during completion ! confirm({msg} [, {choices} [, {default} [, {type}]]]) Number number of choice picked by user ! copy({expr}) any make a shallow copy of {expr} ! cos({expr}) Float cosine of {expr} ! cosh({expr}) Float hyperbolic cosine of {expr} ! count({list}, {expr} [, {ic} [, {start}]]) Number count how many {expr} are in {list} ! cscope_connection([{num} , {dbpath} [, {prepend}]]) Number checks existence of cscope connection ! cursor({lnum}, {col} [, {off}]) Number move cursor to {lnum}, {col}, {off} ! cursor({list}) Number move cursor to position in {list} ! deepcopy({expr} [, {noref}]) any make a full copy of {expr} ! delete({fname} [, {flags}]) Number delete the file or directory {fname} did_filetype() Number TRUE if FileType autocommand event used ! diff_filler({lnum}) Number diff filler lines about {lnum} ! diff_hlID({lnum}, {col}) Number diff highlighting at {lnum}/{col} ! disable_char_avail_for_testing({expr}) ! none test without typeahead ! empty({expr}) Number TRUE if {expr} is empty ! escape({string}, {chars}) String escape {chars} in {string} with '\' ! eval({string}) any evaluate {string} into its value ! eventhandler() Number TRUE if inside an event handler ! executable({expr}) Number 1 if executable {expr} exists ! exepath({expr}) String full path of the command {expr} ! exists({expr}) Number TRUE if {expr} exists ! extend({expr1}, {expr2} [, {expr3}]) List/Dict insert items of {expr2} into {expr1} ! exp({expr}) Float exponential of {expr} ! expand({expr} [, {nosuf} [, {list}]]) any expand special keywords in {expr} ! feedkeys({string} [, {mode}]) Number add key sequence to typeahead buffer ! filereadable({file}) Number TRUE if {file} is a readable file ! filewritable({file}) Number TRUE if {file} is a writable file ! filter({expr}, {string}) List/Dict remove items from {expr} where {string} is 0 ! finddir({name}[, {path}[, {count}]]) String find directory {name} in {path} ! findfile({name}[, {path}[, {count}]]) String find file {name} in {path} ! float2nr({expr}) Number convert Float {expr} to a Number ! floor({expr}) Float round {expr} down ! fmod({expr1}, {expr2}) Float remainder of {expr1} / {expr2} ! fnameescape({fname}) String escape special characters in {fname} ! fnamemodify({fname}, {mods}) String modify file name ! foldclosed({lnum}) Number first line of fold at {lnum} if closed ! foldclosedend({lnum}) Number last line of fold at {lnum} if closed ! foldlevel({lnum}) Number fold level at {lnum} foldtext() String line displayed for closed fold ! foldtextresult({lnum}) String text for closed fold at {lnum} foreground() Number bring the Vim window to the foreground ! function({name} [, {arglist}] [, {dict}]) Funcref reference to function {name} ! garbagecollect([{atexit}]) none free memory, breaking cyclic references garbagecollect_for_testing() none free memory right now ! get({list}, {idx} [, {def}]) any get item {idx} from {list} or {def} ! get({dict}, {key} [, {def}]) any get item {key} from {dict} or {def} ! getbufline({expr}, {lnum} [, {end}]) List lines {lnum} to {end} of buffer {expr} ! getbufvar({expr}, {varname} [, {def}]) any variable {varname} in buffer {expr} ! getchar([expr]) Number get one character from the user ! getcharmod() Number modifiers for the last typed character getcharsearch() Dict last character search getcmdline() String return the current command-line getcmdpos() Number return cursor position in command-line getcmdtype() String return current command-line type getcmdwintype() String return current command-line window type getcurpos() List position of the cursor ! getcwd([{winnr} [, {tabnr}]]) String get the current working directory ! getfontname([{name}]) String name of font being used ! getfperm({fname}) String file permissions of file {fname} ! getfsize({fname}) Number size in bytes of file {fname} ! getftime({fname}) Number last modification time of file ! getftype({fname}) String description of type of file {fname} ! getline({lnum}) String line {lnum} of current buffer ! getline({lnum}, {end}) List lines {lnum} to {end} of current buffer ! getloclist({nr}) List list of location list items getmatches() List list of current matches getpid() Number process ID of Vim ! getpos({expr}) List position of cursor, mark, etc. getqflist() List list of quickfix items ! getreg([{regname} [, 1 [, {list}]]]) String or List contents of register ! getregtype([{regname}]) String type of register ! gettabvar({nr}, {varname} [, {def}]) any variable {varname} in tab {nr} or {def} ! gettabwinvar({tabnr}, {winnr}, {name} [, {def}]) any {name} in {winnr} in tab page {tabnr} getwinposx() Number X coord in pixels of GUI Vim window getwinposy() Number Y coord in pixels of GUI Vim window ! getwinvar({nr}, {varname} [, {def}]) any variable {varname} in window {nr} ! glob({expr} [, {nosuf} [, {list} [, {alllinks}]]]) any expand file wildcards in {expr} ! glob2regpat({expr}) String convert a glob pat into a search pat ! globpath({path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]]) String do glob({expr}) for all dirs in {path} ! has({feature}) Number TRUE if feature {feature} supported ! has_key({dict}, {key}) Number TRUE if {dict} has entry {key} ! haslocaldir([{winnr} [, {tabnr}]]) Number TRUE if the window executed |:lcd| ! hasmapto({what} [, {mode} [, {abbr}]]) Number TRUE if mapping to {what} exists ! histadd({history}, {item}) String add an item to a history ! histdel({history} [, {item}]) String remove an item from a history ! histget({history} [, {index}]) String get the item {index} from a history ! histnr({history}) Number highest index of a history ! hlexists({name}) Number TRUE if highlight group {name} exists ! hlID({name}) Number syntax ID of highlight group {name} hostname() String name of the machine Vim is running on ! iconv({expr}, {from}, {to}) String convert encoding of {expr} ! indent({lnum}) Number indent of line {lnum} ! index({list}, {expr} [, {start} [, {ic}]]) Number index in {list} where {expr} appears ! input({prompt} [, {text} [, {completion}]]) String get input from the user ! inputdialog({prompt} [, {text} [, {completion}]]]) ! String like input() but in a GUI dialog ! inputlist({textlist}) Number let the user pick from a choice list inputrestore() Number restore typeahead inputsave() Number save and clear typeahead ! inputsecret({prompt} [, {text}]) String like input() but hiding the text ! insert({list}, {item} [, {idx}]) List insert {item} in {list} [before {idx}] ! invert({expr}) Number bitwise invert ! isdirectory({directory}) Number TRUE if {directory} is a directory ! islocked({expr}) Number TRUE if {expr} is locked ! isnan({expr}) Number TRUE if {expr} is NaN ! items({dict}) List key-value pairs in {dict} ! job_getchannel({job}) Channel get the channel handle for {job} ! job_info({job}) Dict get information about {job} ! job_setoptions({job}, {options}) none set options for {job} ! job_start({command} [, {options}]) ! Job start a job ! job_status({job}) String get the status of {job} ! job_stop({job} [, {how}]) Number stop {job} ! join({list} [, {sep}]) String join {list} items into one String ! js_decode({string}) any decode JS style JSON ! js_encode({expr}) String encode JS style JSON ! json_decode({string}) any decode JSON ! json_encode({expr}) String encode JSON ! keys({dict}) List keys in {dict} ! len({expr}) Number the length of {expr} ! libcall({lib}, {func}, {arg}) String call {func} in library {lib} with {arg} ! libcallnr({lib}, {func}, {arg}) Number idem, but return a Number ! line({expr}) Number line nr of cursor, last line or mark ! line2byte({lnum}) Number byte count of line {lnum} ! lispindent({lnum}) Number Lisp indent for line {lnum} localtime() Number current time ! log({expr}) Float natural logarithm (base e) of {expr} ! log10({expr}) Float logarithm of Float {expr} to base 10 ! luaeval({expr}[, {expr}]) any evaluate |Lua| expression ! map({expr}, {string}) List/Dict change each item in {expr} to {expr} ! maparg({name}[, {mode} [, {abbr} [, {dict}]]]) String or Dict rhs of mapping {name} in mode {mode} ! mapcheck({name}[, {mode} [, {abbr}]]) String check for mappings matching {name} ! match({expr}, {pat}[, {start}[, {count}]]) Number position where {pat} matches in {expr} ! matchadd({group}, {pattern}[, {priority}[, {id} [, {dict}]]]) Number highlight {pattern} with {group} ! matchaddpos({group}, {pos}[, {priority}[, {id}[, {dict}]]]) Number highlight positions with {group} ! matcharg({nr}) List arguments of |:match| ! matchdelete({id}) Number delete match identified by {id} ! matchend({expr}, {pat}[, {start}[, {count}]]) Number position where {pat} ends in {expr} ! matchlist({expr}, {pat}[, {start}[, {count}]]) List match and submatches of {pat} in {expr} ! matchstr({expr}, {pat}[, {start}[, {count}]]) String {count}'th match of {pat} in {expr} ! matchstrpos({expr}, {pat}[, {start}[, {count}]]) List {count}'th match of {pat} in {expr} ! max({list}) Number maximum value of items in {list} ! min({list}) Number minimum value of items in {list} ! mkdir({name} [, {path} [, {prot}]]) Number create directory {name} ! mode([expr]) String current editing mode ! mzeval({expr}) any evaluate |MzScheme| expression ! nextnonblank({lnum}) Number line nr of non-blank line >= {lnum} ! nr2char({expr}[, {utf8}]) String single char with ASCII/UTF8 value {expr} ! or({expr}, {expr}) Number bitwise OR ! pathshorten({expr}) String shorten directory names in a path ! perleval({expr}) any evaluate |Perl| expression ! pow({x}, {y}) Float {x} to the power of {y} ! prevnonblank({lnum}) Number line nr of non-blank line <= {lnum} ! printf({fmt}, {expr1}...) String format text pumvisible() Number whether popup menu is visible ! pyeval({expr}) any evaluate |Python| expression ! py3eval({expr}) any evaluate |python3| expression ! range({expr} [, {max} [, {stride}]]) List items from {expr} to {max} ! readfile({fname} [, {binary} [, {max}]]) List get list of lines from file {fname} ! reltime([{start} [, {end}]]) List get time value ! reltimefloat({time}) Float turn the time value into a Float ! reltimestr({time}) String turn time value into a String ! remote_expr({server}, {string} [, {idvar}]) String send expression ! remote_foreground({server}) Number bring Vim server to the foreground ! remote_peek({serverid} [, {retvar}]) Number check for reply string ! remote_read({serverid}) String read reply string ! remote_send({server}, {string} [, {idvar}]) String send key sequence ! remove({list}, {idx} [, {end}]) any remove items {idx}-{end} from {list} ! remove({dict}, {key}) any remove entry {key} from {dict} ! rename({from}, {to}) Number rename (move) file from {from} to {to} ! repeat({expr}, {count}) String repeat {expr} {count} times ! resolve({filename}) String get filename a shortcut points to ! reverse({list}) List reverse {list} in-place ! round({expr}) Float round off {expr} ! screenattr({row}, {col}) Number attribute at screen position ! screenchar({row}, {col}) Number character at screen position screencol() Number current cursor column screenrow() Number current cursor row ! search({pattern} [, {flags} [, {stopline} [, {timeout}]]]) Number search for {pattern} ! searchdecl({name} [, {global} [, {thisblock}]]) Number search for variable declaration ! searchpair({start}, {middle}, {end} [, {flags} [, {skip} [...]]]) Number search for other end of start/end pair ! searchpairpos({start}, {middle}, {end} [, {flags} [, {skip} [...]]]) List search for other end of start/end pair ! searchpos({pattern} [, {flags} [, {stopline} [, {timeout}]]]) List search for {pattern} ! server2client({clientid}, {string}) Number send reply string serverlist() String get a list of available servers ! setbufvar({expr}, {varname}, {val}) ! none set {varname} in buffer {expr} to {val} ! setcharsearch({dict}) Dict set character search from {dict} ! setcmdpos({pos}) Number set cursor position in command-line ! setfperm({fname}, {mode}) Number set {fname} file permissions to {mode} ! setline({lnum}, {line}) Number set line {lnum} to {line} ! setloclist({nr}, {list}[, {action}]) Number modify location list using {list} ! setmatches({list}) Number restore a list of matches ! setpos({expr}, {list}) Number set the {expr} position to {list} ! setqflist({list}[, {action}]) Number modify quickfix list using {list} ! setreg({n}, {v}[, {opt}]) Number set register to value and type ! settabvar({nr}, {varname}, {val}) none set {varname} in tab page {nr} to {val} ! settabwinvar({tabnr}, {winnr}, {varname}, {val}) ! none set {varname} in window {winnr} in tab ! page {tabnr} to {val} ! setwinvar({nr}, {varname}, {val}) none set {varname} in window {nr} to {val} ! sha256({string}) String SHA256 checksum of {string} ! shellescape({string} [, {special}]) String escape {string} for use as shell command argument shiftwidth() Number effective value of 'shiftwidth' ! simplify({filename}) String simplify filename as much as possible ! sin({expr}) Float sine of {expr} ! sinh({expr}) Float hyperbolic sine of {expr} ! sort({list} [, {func} [, {dict}]]) List sort {list}, using {func} to compare ! soundfold({word}) String sound-fold {word} spellbadword() String badly spelled word at cursor ! spellsuggest({word} [, {max} [, {capital}]]) List spelling suggestions ! split({expr} [, {pat} [, {keepempty}]]) List make |List| from {pat} separated {expr} ! sqrt({expr}) Float square root of {expr} ! str2float({expr}) Float convert String to Float ! str2nr({expr} [, {base}]) Number convert String to Number ! strchars({expr} [, {skipcc}]) Number character length of the String {expr} ! strdisplaywidth({expr} [, {col}]) Number display length of the String {expr} ! strftime({format}[, {time}]) String time in specified format ! stridx({haystack}, {needle}[, {start}]) Number index of {needle} in {haystack} ! string({expr}) String String representation of {expr} value ! strlen({expr}) Number length of the String {expr} ! strpart({src}, {start}[, {len}]) String {len} characters of {src} at {start} ! strridx({haystack}, {needle} [, {start}]) Number last index of {needle} in {haystack} ! strtrans({expr}) String translate string to make it printable ! strwidth({expr}) Number display cell length of the String {expr} ! submatch({nr}[, {list}]) String or List specific match in ":s" or substitute() ! substitute({expr}, {pat}, {sub}, {flags}) String all {pat} in {expr} replaced with {sub} ! synID({lnum}, {col}, {trans}) Number syntax ID at {lnum} and {col} ! synIDattr({synID}, {what} [, {mode}]) String attribute {what} of syntax ID {synID} ! synIDtrans({synID}) Number translated syntax ID of {synID} ! synconcealed({lnum}, {col}) List info about concealing ! synstack({lnum}, {col}) List stack of syntax IDs at {lnum} and {col} ! system({expr} [, {input}]) String output of shell command/filter {expr} ! systemlist({expr} [, {input}]) List output of shell command/filter {expr} ! tabpagebuflist([{arg}]) List list of buffer numbers in tab page ! tabpagenr([{arg}]) Number number of current or last tab page ! tabpagewinnr({tabarg}[, {arg}]) Number number of current window in tab page ! taglist({expr}) List list of tags matching {expr} tagfiles() List tags files used ! tan({expr}) Float tangent of {expr} ! tanh({expr}) Float hyperbolic tangent of {expr} tempname() String name for a temporary file ! timer_start({time}, {callback} [, {options}]) Number create a timer ! timer_stop({timer}) none stop a timer ! tolower({expr}) String the String {expr} switched to lowercase ! toupper({expr}) String the String {expr} switched to uppercase ! tr({src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr} to chars in {tostr} ! trunc({expr}) Float truncate Float {expr} ! type({name}) Number type of variable {name} ! undofile({name}) String undo file name for {name} undotree() List undo file tree ! uniq({list} [, {func} [, {dict}]]) List remove adjacent duplicates from a list ! values({dict}) List values in {dict} ! virtcol({expr}) Number screen column of cursor or mark ! visualmode([expr]) String last visual mode used wildmenumode() Number whether 'wildmenu' mode is active ! win_findbuf({bufnr}) List find windows containing {bufnr} ! win_getid([{win} [, {tab}]]) Number get window ID for {win} in {tab} ! win_gotoid({expr}) Number go to window with ID {expr} ! win_id2tabwin({expr}) List get tab and window nr from window ID ! win_id2win({expr}) Number get window nr from window ID ! winbufnr({nr}) Number buffer number of window {nr} wincol() Number window column of the cursor ! winheight({nr}) Number height of window {nr} winline() Number window line of the cursor ! winnr([{expr}]) Number number of current window winrestcmd() String returns command to restore window sizes ! winrestview({dict}) none restore view of current window winsaveview() Dict save view of current window ! winwidth({nr}) Number width of window {nr} wordcount() Dict get byte/char/word statistics ! writefile({list}, {fname} [, {flags}]) Number write list of lines to file {fname} ! xor({expr}, {expr}) Number bitwise XOR ! abs({expr}) *abs()* Return the absolute value of {expr}. When {expr} evaluates to *************** *** 6022,6028 **** < In this example "submatch" is 2 when a lowercase letter is found |/\l|, 3 when an uppercase letter is found |/\u|. ! server2client( {clientid}, {string}) *server2client()* Send a reply string to {clientid}. The most recent {clientid} that sent a string can be retrieved with expand(""). {only available when compiled with the |+clientserver| feature} --- 6104,6110 ---- < In this example "submatch" is 2 when a lowercase letter is found |/\l|, 3 when an uppercase letter is found |/\u|. ! server2client({clientid}, {string}) *server2client()* Send a reply string to {clientid}. The most recent {clientid} that sent a string can be retrieved with expand(""). {only available when compiled with the |+clientserver| feature} *************** *** 6541,6547 **** {only available when compiled with the |+float| feature} ! str2float( {expr}) *str2float()* Convert String {expr} to a Float. This mostly works the same as when using a floating point number in an expression, see |floating-point-format|. But it's a bit more permissive. --- 6617,6623 ---- {only available when compiled with the |+float| feature} ! str2float({expr}) *str2float()* Convert String {expr} to a Float. This mostly works the same as when using a floating point number in an expression, see |floating-point-format|. But it's a bit more permissive. *************** *** 6556,6569 **** < {only available when compiled with the |+float| feature} ! str2nr( {expr} [, {base}]) *str2nr()* Convert string {expr} to a number. ! {base} is the conversion base, it can be 8, 10 or 16. When {base} is omitted base 10 is used. This also means that a leading zero doesn't cause octal conversion to be used, as with the default String to Number conversion. When {base} is 16 a leading "0x" or "0X" is ignored. With a ! different base the result will be zero. Text after the number is silently ignored. --- 6632,6647 ---- < {only available when compiled with the |+float| feature} ! str2nr({expr} [, {base}]) *str2nr()* Convert string {expr} to a number. ! {base} is the conversion base, it can be 2, 8, 10 or 16. When {base} is omitted base 10 is used. This also means that a leading zero doesn't cause octal conversion to be used, as with the default String to Number conversion. When {base} is 16 a leading "0x" or "0X" is ignored. With a ! different base the result will be zero. Similarly, when ! {base} is 8 a leading "0" is ignored, and when {base} is 2 a ! leading "0b" or "0B" is ignored. Text after the number is silently ignored. *** ../vim-7.4.1727/src/version.c 2016-04-14 12:46:33.620678603 +0200 --- src/version.c 2016-04-14 13:39:45.374720193 +0200 *************** *** 750,751 **** --- 750,753 ---- { /* Add new patch number below this line */ + /**/ + 1728, /**/ -- A cow comes flying over the battlements, lowing aggressively. The cow lands on GALAHAD'S PAGE, squashing him completely. "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD /// Bram Moolenaar -- Bram@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 ///