# HG changeset patch # User Christian Brabandt # Date 1468089006 -7200 # Node ID be72f4201a1d24e2a5b5bcad0854a21278d4cb50 # Parent 78b611afcadb88908f2a552d3717e89869d75931 commit https://github.com/vim/vim/commit/063b9d15abea041a5bfff3ffc4e219e26fd1d4fa Author: Bram Moolenaar Date: Sat Jul 9 20:21:48 2016 +0200 Updated runtime files. diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt --- a/runtime/doc/channel.txt +++ b/runtime/doc/channel.txt @@ -1,4 +1,4 @@ -*channel.txt* For Vim version 7.4. Last change: 2016 Jun 02 +*channel.txt* For Vim version 7.4. Last change: 2016 Jul 07 VIM REFERENCE MANUAL by Bram Moolenaar @@ -495,6 +495,9 @@ time a line is added to the buffer, the job stdin. This allows for editing the last line and sending it when pressing Enter. +NUL bytes in the text will be passed to the job (internally Vim stores these +as NL bytes). + Reading job output in the close callback ~ *read-in-close-cb* @@ -684,7 +687,8 @@ When the buffer written to is displayed first column of the last line, the cursor will be moved to the newly added line and the window is scrolled up to show the cursor if needed. -Undo is synced for every added line. +Undo is synced for every added line. NUL bytes are accepted (internally Vim +stores these as NL bytes). Writing to a file ~ diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -3283,7 +3283,7 @@ execute({command} [, {silent}]) *exe It is not possible to use `:redir` anywhere in {command}. To get a list of lines use |split()| on the result: > - split(evalcmd('args'), "\n") + split(execute('args'), "\n") < When used recursively the output of the recursive call is not included in the output of the higher level call. diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt --- a/runtime/doc/map.txt +++ b/runtime/doc/map.txt @@ -1,4 +1,4 @@ -*map.txt* For Vim version 7.4. Last change: 2016 Jun 10 +*map.txt* For Vim version 7.4. Last change: 2016 Jul 06 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1274,6 +1274,7 @@ completion can be enabled: -complete=mapping mapping name -complete=menu menus -complete=option options + -complete=packadd optional package |pack-add| names -complete=shellcmd Shell command -complete=sign |:sign| suboptions -complete=syntax syntax file names |'syntax'| diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1,4 +1,4 @@ -*options.txt* For Vim version 7.4. Last change: 2016 Jul 01 +*options.txt* For Vim version 7.4. Last change: 2016 Jul 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -8180,10 +8180,10 @@ A jump table for the options with a shor has been used since the last search command. *viminfo-n* n Name of the viminfo file. The name must immediately follow - the 'n'. Must be the last one! If the "-i" argument was - given when starting Vim, that file name overrides the one - given here with 'viminfo'. Environment variables are expanded - when opening the file, not when setting the option. + the 'n'. Must be at the end of the option! If the "-i" + argument was given when starting Vim, that file name overrides + the one given here with 'viminfo'. Environment variables are + expanded when opening the file, not when setting the option. *viminfo-r* r Removable media. The argument is a string (up to the next ','). This parameter can be given several times. Each diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt --- a/runtime/doc/starting.txt +++ b/runtime/doc/starting.txt @@ -1,4 +1,4 @@ -*starting.txt* For Vim version 7.4. Last change: 2016 Jun 15 +*starting.txt* For Vim version 7.4. Last change: 2016 Jul 03 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1426,6 +1426,7 @@ Now the viminfo will have: BBB - value from session B BOTH - value from session B, value from session A is lost + *viminfo-timestamp* For some items a timestamp is used to keep the last changed version. Here it doesn't matter in which sequence Vim sessions exit, the newest item(s) are always kept. This is used for: diff --git a/runtime/doc/tags b/runtime/doc/tags --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -2041,6 +2041,8 @@ 90.5 usr_90.txt /*90.5* :cat eval.txt /*:cat* :catch eval.txt /*:catch* :cb quickfix.txt /*:cb* +:cbo quickfix.txt /*:cbo* +:cbottom quickfix.txt /*:cbottom* :cbuffer quickfix.txt /*:cbuffer* :cc quickfix.txt /*:cc* :ccl quickfix.txt /*:ccl* @@ -2393,6 +2395,8 @@ 90.5 usr_90.txt /*90.5* :lat undo.txt /*:lat* :later undo.txt /*:later* :lb quickfix.txt /*:lb* +:lbo quickfix.txt /*:lbo* +:lbottom quickfix.txt /*:lbottom* :lbuffer quickfix.txt /*:lbuffer* :lc editing.txt /*:lc* :lcd editing.txt /*:lcd* @@ -4457,6 +4461,7 @@ E927 eval.txt /*E927* E928 eval.txt /*E928* E929 starting.txt /*E929* E93 windows.txt /*E93* +E930 eval.txt /*E930* E94 windows.txt /*E94* E95 message.txt /*E95* E96 diff.txt /*E96* @@ -4472,6 +4477,7 @@ Ex intro.txt /*Ex* Ex-mode intro.txt /*Ex-mode* Exuberant_ctags tagsrch.txt /*Exuberant_ctags* F motion.txt /*F* +FALSE eval.txt /*FALSE* FAQ intro.txt /*FAQ* Farsi farsi.txt /*Farsi* FileAppendCmd autocmd.txt /*FileAppendCmd* @@ -4686,6 +4692,7 @@ TOhtml-encoding-detect syntax.txt /*TOht TOhtml-performance syntax.txt /*TOhtml-performance* TOhtml-uncopyable-text syntax.txt /*TOhtml-uncopyable-text* TOhtml-wrap-text syntax.txt /*TOhtml-wrap-text* +TRUE eval.txt /*TRUE* TSQL ft_sql.txt /*TSQL* TTpro-telnet syntax.txt /*TTpro-telnet* Tab intro.txt /*Tab* @@ -5746,6 +5753,7 @@ exception-variable eval.txt /*exception- exclusive motion.txt /*exclusive* exclusive-linewise motion.txt /*exclusive-linewise* executable() eval.txt /*executable()* +execute() eval.txt /*execute()* execute-menus gui.txt /*execute-menus* exepath() eval.txt /*exepath()* exim starting.txt /*exim* @@ -6373,6 +6381,7 @@ getcmdline() eval.txt /*getcmdline()* getcmdpos() eval.txt /*getcmdpos()* getcmdtype() eval.txt /*getcmdtype()* getcmdwintype() eval.txt /*getcmdwintype()* +getcompletion() eval.txt /*getcompletion()* getcurpos() eval.txt /*getcurpos()* getcwd() eval.txt /*getcwd()* getfontname() eval.txt /*getfontname()* @@ -9051,6 +9060,7 @@ viminfo-r options.txt /*viminfo-r* viminfo-read starting.txt /*viminfo-read* viminfo-read-write starting.txt /*viminfo-read-write* viminfo-s options.txt /*viminfo-s* +viminfo-timestamp starting.txt /*viminfo-timestamp* viminfo-write starting.txt /*viminfo-write* vimrc starting.txt /*vimrc* vimrc-filetype usr_05.txt /*vimrc-filetype* diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1,4 +1,4 @@ -*todo.txt* For Vim version 7.4. Last change: 2016 Jul 02 +*todo.txt* For Vim version 7.4. Last change: 2016 Jul 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -34,14 +34,10 @@ not be repeated below, unless there is e *known-bugs* -------------------- Known bugs and current work ----------------------- -Further implement 'barline' in viminfo: -- Use timestamp for more items: locations, marks. - Problem with setqflist([]): grep 4 times, ":colder 3", setqflist([]) will clear the next list, not the current one. Ramel Eshed, Jun 8. +channel: -- Should write_buf_line() change NL to NUL characters? - GUI cursor blinking interrupted when the job output goes to a buffer that is in a window. (Ramel Eshed, 2016 Jun 9) - GUI cursor blinking interrupted when there is a status line. (Ramel Eshed, @@ -61,17 +57,11 @@ Later With xterm could use -S{pty}. Quickfix improvements for background building and grepping: - Patch from Yegappan, 2016 Jun 17. - Need to reset values when starting a new list. -- If 'efm' is the same as last time re-use the fmt_first list. -- Do not clear "dir_stack", "directory" and "file_stack", "currfile" when - using ":addexpr". - Move multiline, multiignore, multiscan outside of the function. -- Add :cbottom, if quickfix window is visible scroll to make the last line - visible. Use scroll_cursor_bot(0, FALSE); -- Add a flag/property/option to quickfix commands and functions to keep a file - name as a string and not create a buffer for it? To avoid creating lots of - buffers. (Ramel Eshed) +- Add a command modifier ":usefname" to quickfix commands and functions to + keep a file name as a string and not create a buffer for it? To avoid + creating lots of buffers. (Ramel Eshed) + Store the relative file name and set a flag "qf_relative". Before changing + directory turn them into full paths. Regexp problems: - When using automatic engine selection there is a false match. Forcing @@ -130,16 +120,18 @@ What if there is an invalid character? Should json_encode()/json_decode() restrict recursiveness? Or avoid recursiveness. -Patch to support 64 bit ints for Number. (Ken Takata, 2016 Jan 21) -Update 2016 Apr 24. -Update 2016 Jun 14, includes some tests. - -Patch to support expression argument to sort() instead of a function name. -Yasuhiro Matsumoto, 2013 May 31. -Or should we add a more general mechanism, like a lambda() function? +Add a lambda() function. Patch by Yasuhiro Matsumoto, 2014 Sep 16, update 2016 Apr 17. Correction for test, Ken Takata, 2016 May 27. Merged patch: Ken Takata, 2016 Jun 15. +Need to separate-out closure and lambda somehow. +Define lambda directly, not as a string: {v -> v * 8} +Lambda implementation by Ken Takata, 2016 Jul 7. + +Python: Extended funcrefs: use func_T* structure in place of char_u* function +names. +(ZyX, 2013 Jul 15, update Sep 22, 24, 28; Update 2013 Dec 15, 2014 Jan 6) +Also fixes Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5) Once .exe with updated installer is available: Add remark to download page about /S and /D options (Ken Takata, 2016 Apr 13) @@ -161,7 +153,8 @@ For current Windows build .pdb file is m 5) 'completeopt' noinsert breaks redo register (Shougo, 2016 Jun 18, #874) -Patch to fix this: #875 +Patch to fix this: #905. +There also is #875 to fix another problem? Problem with whitespace in errorformat. (Gerd Wachsmuth, 2016 May 15, #807) @@ -769,11 +762,6 @@ Patch by Thomas Tuegel, also for GTK, 20 :help gives example for z?, but it does not work. m? and t? do work. -Python: Extended funcrefs: use func_T* structure in place of char_u* function -names. -(ZyX, 2013 Jul 15, update Sep 22, 24, 28; Update 2013 Dec 15, 2014 Jan 6) -Also fixes Bug: E685 error for func_unref(). (ZyX, 2010 Aug 5) - Patch to add funcref to Lua. (Luis Carvalho, 2013 Sep 4) With tests: Sep 5. diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt --- a/runtime/doc/usr_41.txt +++ b/runtime/doc/usr_41.txt @@ -1,4 +1,4 @@ -*usr_41.txt* For Vim version 7.4. Last change: 2016 Jun 13 +*usr_41.txt* For Vim version 7.4. Last change: 2016 Jul 09 VIM USER MANUAL - by Bram Moolenaar @@ -611,6 +611,7 @@ String manipulation: *string-functio byteidxcomp() like byteidx() but count composing characters repeat() repeat a string multiple times eval() evaluate a string expression + execute() execute an Ex command and get the output List manipulation: *list-functions* get() get an item without error for wrong index @@ -978,6 +979,8 @@ Various: *various-functions* shiftwidth() effective value of 'shiftwidth' + wordcount() get byte/word/char count of buffer + taglist() get list of matching tags tagfiles() get a list of tags files @@ -986,7 +989,6 @@ Various: *various-functions* perleval() evaluate Perl expression (|+perl|) py3eval() evaluate Python expression (|+python3|) pyeval() evaluate Python expression (|+python|) - wordcount() get byte/word/char count of buffer ============================================================================== *41.7* Defining a function diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt --- a/runtime/doc/various.txt +++ b/runtime/doc/various.txt @@ -1,4 +1,4 @@ -*various.txt* For Vim version 7.4. Last change: 2016 May 24 +*various.txt* For Vim version 7.4. Last change: 2016 Jul 09 VIM REFERENCE MANUAL by Bram Moolenaar @@ -470,9 +470,12 @@ N *+X11* Unix only: can restore window shown on the screen. When [!] is included, an existing file is overwritten. When [!] is omitted, and {file} exists, this command fails. + Only one ":redir" can be active at a time. Calls to ":redir" will close any active redirection before - starting redirection to the new target. + starting redirection to the new target. For recursive + use check out |execute()|. + To stop the messages and commands from being echoed to the screen, put the commands in a function and call it with ":silent call Function()". @@ -512,6 +515,8 @@ N *+X11* Unix only: can restore window redirection starts, if the variable is removed or locked or the variable type is changed, then further command output messages will cause errors. {not in Vi} + To get the output of one command the |execute()| + function can be used. :redi[r] =>> {var} Append messages to an existing variable. Only string variables can be used. {not in Vi} diff --git a/runtime/doc/version8.txt b/runtime/doc/version8.txt --- a/runtime/doc/version8.txt +++ b/runtime/doc/version8.txt @@ -1,4 +1,4 @@ -*version8.txt* For Vim version 8.0. Last change: 2016 Jun 04 +*version8.txt* For Vim version 8.0. Last change: 2016 Jul 03 VIM REFERENCE MANUAL by Bram Moolenaar @@ -16,12 +16,12 @@ See |vi_diff.txt| for an overview of dif See |version4.txt|, |version5.txt|, |version6.txt| and |version7.txt| for differences between other versions. -INCOMPATIBLE CHANGES |incompatible-8| - NEW FEATURES |new-8| Vim script enhancements |new-vim-script-8| +INCOMPATIBLE CHANGES |incompatible-8| + IMPROVEMENTS |improvements-8| COMPILE TIME CHANGES |compile-changes-8| @@ -30,21 +30,6 @@ PATCHES |patches-8| ============================================================================== -INCOMPATIBLE CHANGES *incompatible-8* - -These changes are incompatible with previous releases. Check this list if you -run into a problem when upgrading from Vim 7.4 to 8.0. - -The support for MS-DOS has been removed. It hasn't been working for a while -and removing it cleans up the code quite a bit. - -The support for Windows 16 bit (Windows 95 and older) has been removed. - -Minor incompatibilities: - -For filetype detection: ... - -============================================================================== NEW FEATURES *new-8* First a list of the bigger new features. A comprehensive list is below. @@ -52,14 +37,18 @@ First a list of the bigger new features. Asynchronous I/O support, channels ~ -Vim can now exchange messages with another process in the background. The -messages are received and handled while Vim is waiting for a character. See -|channel-demo| for an example, communicating with a Python server. +Vim can now exchange messages with other processes in the background. This +makes it possible to have servers do work and send back the results to Vim. +See |channel-demo| for an example, this shows communicating with a Python +server. Closely related to channels is JSON support. JSON is widely supported and can easily be used for inter-process communication, allowing for writing a server in any language. The functions to use are |json_encode()| and |json_decode()|. +This makes it possible to build very complex plugins, written in any language +and running in a separate process. + Jobs ~ @@ -74,8 +63,8 @@ Timers ~ Also asynchronous are timers. They can fire once or repeatedly and invoke a function to do any work. For example: > let tempTimer = timer_start(4000, 'CheckTemp') -This will make a call four seconds (4000 milli seconds) later, like: > - call CheckTemp() +This will call the CheckTemp() function four seconds (4000 milli seconds) +later. Partials ~ @@ -85,8 +74,7 @@ to a function, and additionally binds ar especially useful for callbacks on channels and timers. E.g., for the timer example above, to pass an argument to the function: > let tempTimer = timer_start(4000, function('CheckTemp', ['out'])) -This will a make call four seconds later, like: > - call CheckTemp('out') +This will call CheckTemp('out') four seconds later. Packages ~ @@ -103,26 +91,7 @@ New style tests ~ This is for Vim developers. So far writing tests for Vim has not been easy. Vim 8 adds assert functions and a framework to run tests. This makes it a lot simpler to write tests and keep them updated. Also new are several functions -that are added specifically for testing. - -These functions have been added: - |assert_equal()| - |assert_notequal()| - |assert_exception()| - |assert_fails()| - |assert_false()| - |assert_match()| - |assert_notmatch()| - |assert_true()| - |test_alloc_fail()| - |test_disable_char_avail()| - |test_garbagecollect_now()| - |test_null_channel()| - |test_null_dict()| - |test_null_job()| - |test_null_list()| - |test_null_partial()| - |test_null_string()| +that are added specifically for testing. See |test-functions|. Window IDs ~ @@ -132,6 +101,13 @@ window would open, close or move that nu unique ID, so that they are easy to find. See |win_getid()| and |win_id2win()|. +Viminfo uses timestamps ~ + +Previously the information stored in viminfo was whatever the last Vim wrote +there. Now timestamps are used to always keep the most recent items. +See |viminfo-timestamp|. + + Wrapping lines with indent ~ The 'breakindent' option has been added to be able to wrap lines without @@ -216,6 +192,21 @@ Others: ~ ============================================================================== +INCOMPATIBLE CHANGES *incompatible-8* + +These changes are incompatible with previous releases. Check this list if you +run into a problem when upgrading from Vim 7.4 to 8.0. + +The support for MS-DOS has been removed. It hasn't been working for a while +and removing it cleans up the code quite a bit. + +The support for Windows 16 bit (Windows 95 and older) has been removed. + +Minor incompatibilities: + +For filetype detection: ... + +============================================================================== IMPROVEMENTS *improvements-8* The existing blowfish encryption turned out to be much weaker than it was diff --git a/runtime/syntax/c.vim b/runtime/syntax/c.vim --- a/runtime/syntax/c.vim +++ b/runtime/syntax/c.vim @@ -1,7 +1,7 @@ " Vim syntax file " Language: C " Maintainer: Bram Moolenaar -" Last Change: 2016 Apr 10 +" Last Change: 2016 Jul 07 " Quit when a (custom) syntax file was already loaded if exists("b:current_syntax") @@ -295,7 +295,7 @@ if !exists("c_no_ansi") || exists("c_ans syn keyword cConstant SCHAR_MIN SINT_MIN SLONG_MIN SSHRT_MIN syn keyword cConstant SCHAR_MAX SINT_MAX SLONG_MAX SSHRT_MAX if !exists("c_no_c99") - syn keyword cConstant __func__ + syn keyword cConstant __func__ __VA_ARGS__ syn keyword cConstant LLONG_MIN LLONG_MAX ULLONG_MAX syn keyword cConstant INT8_MIN INT16_MIN INT32_MIN INT64_MIN syn keyword cConstant INT8_MAX INT16_MAX INT32_MAX INT64_MAX diff --git a/runtime/syntax/cpp.vim b/runtime/syntax/cpp.vim --- a/runtime/syntax/cpp.vim +++ b/runtime/syntax/cpp.vim @@ -2,7 +2,7 @@ " Language: C++ " Current Maintainer: vim-jp (https://github.com/vim-jp/vim-cpp) " Previous Maintainer: Ken Shan -" Last Change: 2015 Nov 10 +" Last Change: 2016 Jul 07 " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded @@ -80,6 +80,7 @@ if version >= 508 || !exists("did_cpp_sy HiLink cppConstant Constant HiLink cppRawStringDelimiter Delimiter HiLink cppRawString String + HiLink cppNumber Number delcommand HiLink endif diff --git a/runtime/syntax/pf.vim b/runtime/syntax/pf.vim --- a/runtime/syntax/pf.vim +++ b/runtime/syntax/pf.vim @@ -2,30 +2,22 @@ " Language: OpenBSD packet filter configuration (pf.conf) " Original Author: Camiel Dobbelaar " Maintainer: Lauri Tirkkonen -" Last Change: 2013 Apr 02 +" Last Change: 2016 Jul 06 -" For version 5.x: Clear all syntax items -" For version 6.x: Quit when a syntax file was already loaded -if version < 600 - syntax clear -elseif exists("b:current_syntax") +if exists("b:current_syntax") finish endif setlocal foldmethod=syntax +syn iskeyword @,48-57,_,-,+ syn sync fromstart syn cluster pfNotLS contains=pfTodo,pfVarAssign -syn keyword pfCmd altq anchor antispoof binat nat pass -syn keyword pfCmd queue rdr scrub table set -syn keyword pfService auth bgp domain finger ftp http https ident -syn keyword pfService imap irc isakmp kerberos mail nameserver nfs -syn keyword pfService nntp ntp pop3 portmap pptp rpcbind rsync smtp -syn keyword pfService snmp snmptrap socks ssh sunrpc syslog telnet -syn keyword pfService tftp www +syn keyword pfCmd anchor antispoof block include match pass queue +syn keyword pfCmd queue set table +syn match pfCmd /^\s*load\sanchor\>/ syn keyword pfTodo TODO XXX contained syn keyword pfWildAddr all any -syn match pfCmd /block\s/ syn match pfComment /#.*$/ contains=pfTodo syn match pfCont /\\$/ syn match pfErrClose /}/ @@ -34,43 +26,81 @@ syn match pfIPv6 /[a-fA-F0-9:]*::[a-fA- syn match pfIPv6 /[a-fA-F0-9:]\+:[a-fA-F0-9:]\+:[a-fA-F0-9:.]\+/ syn match pfNetmask /\/\d\+/ syn match pfNum /[a-zA-Z0-9_:.]\@/ +syn match pfTable /<\s*[a-zA-Z0-9_:][a-zA-Z0-9_:.-]*\s*>/ syn match pfVar /$[a-zA-Z][a-zA-Z0-9_]*/ syn match pfVarAssign /^\s*[a-zA-Z][a-zA-Z0-9_]*\s*=/me=e-1 syn region pfFold1 start=/^#\{1}>/ end=/^#\{1,3}>/me=s-1 transparent fold syn region pfFold2 start=/^#\{2}>/ end=/^#\{2,3}>/me=s-1 transparent fold syn region pfFold3 start=/^#\{3}>/ end=/^#\{3}>/me=s-1 transparent fold syn region pfList start=/{/ end=/}/ transparent contains=ALLBUT,pfErrClose,@pfNotLS -syn region pfString start=/"/ end=/"/ transparent contains=ALLBUT,pfString,@pfNotLS -syn region pfString start=/'/ end=/'/ transparent contains=ALLBUT,pfString,@pfNotLS - -" Define the default highlighting. -" For version 5.7 and earlier: only when not done already -" For version 5.8 and later: only when an item doesn't have highlighting yet -if version >= 508 || !exists("did_c_syn_inits") - if version < 508 - let did_c_syn_inits = 1 - command -nargs=+ HiLink hi link - else - command -nargs=+ HiLink hi def link - endif +syn region pfString start=/"/ skip=/\\"/ end=/"/ contains=pfIPv4,pfIPv6,pfNetmask,pfTable,pfVar +syn region pfString start=/'/ skip=/\\'/ end=/'/ contains=pfIPv4,pfIPv6,pfNetmask,pfTable,pfVar - HiLink pfCmd Statement - HiLink pfComment Comment - HiLink pfCont Statement - HiLink pfErrClose Error - HiLink pfIPv4 Type - HiLink pfIPv6 Type - HiLink pfNetmask Constant - HiLink pfNum Constant - HiLink pfService Constant - HiLink pfTable Identifier - HiLink pfTodo Todo - HiLink pfVar Identifier - HiLink pfVarAssign Identifier - HiLink pfWildAddr Type +syn keyword pfService 802-11-iapp Microsoft-SQL-Monitor +syn keyword pfService Microsoft-SQL-Server NeXTStep NextStep +syn keyword pfService afpovertcp afs3-bos afs3-callback afs3-errors +syn keyword pfService afs3-fileserver afs3-kaserver afs3-prserver +syn keyword pfService afs3-rmtsys afs3-update afs3-vlserver +syn keyword pfService afs3-volser amt-redir-tcp amt-redir-tls +syn keyword pfService amt-soap-http amt-soap-https asf-rmcp at-echo +syn keyword pfService at-nbp at-rtmp at-zis auth authentication +syn keyword pfService bfd-control bfd-echo bftp bgp bgpd biff bootpc +syn keyword pfService bootps canna cddb cddbp chargen chat cmd +syn keyword pfService cmip-agent cmip-man comsat conference +syn keyword pfService conserver courier csnet-ns cso-ns cvspserver +syn keyword pfService daap datametrics daytime dhcpd-sync +syn keyword pfService dhcpv6-client dhcpv6-server discard domain +syn keyword pfService echo efs eklogin ekshell ekshell2 epmap eppc +syn keyword pfService exec finger ftp ftp-data git gopher hostname +syn keyword pfService hostnames hprop http https hunt hylafax iapp +syn keyword pfService icb ident imap imap2 imap3 imaps ingreslock +syn keyword pfService ipp iprop ipsec-msft ipsec-nat-t ipx irc +syn keyword pfService isakmp iscsi isisd iso-tsap kauth kdc kerberos +syn keyword pfService kerberos-adm kerberos-iv kerberos-sec +syn keyword pfService kerberos_master kf kip klogin kpasswd kpop +syn keyword pfService krb524 krb_prop krbupdate krcmd kreg kshell kx +syn keyword pfService l2tp ldap ldaps ldp link login mail mdns +syn keyword pfService mdnsresponder microsoft-ds ms-sql-m ms-sql-s +syn keyword pfService msa msp mtp mysql name nameserver netbios-dgm +syn keyword pfService netbios-ns netbios-ssn netnews netplan netrjs +syn keyword pfService netstat netwall newdate nextstep nfs nfsd +syn keyword pfService nicname nnsp nntp ntalk ntp null openwebnet +syn keyword pfService ospf6d ospfapi ospfd photuris pop2 pop3 pop3pw +syn keyword pfService pop3s poppassd portmap postgresql postoffice +syn keyword pfService pptp presence printer prospero prospero-np +syn keyword pfService puppet pwdgen qotd quote radacct radius +syn keyword pfService radius-acct rdp readnews remotefs resource rfb +syn keyword pfService rfe rfs rfs_server ripd ripng rje rkinit rlp +syn keyword pfService routed router rpc rpcbind rsync rtelnet rtsp +syn keyword pfService sa-msg-port sane-port sftp shell sieve silc +syn keyword pfService sink sip smtp smtps smux snmp snmp-trap +syn keyword pfService snmptrap snpp socks source spamd spamd-cfg +syn keyword pfService spamd-sync spooler spop3 ssdp ssh submission +syn keyword pfService sunrpc supdup supfiledbg supfilesrv support +syn keyword pfService svn svrloc swat syslog syslog-tls systat +syn keyword pfService tacacs tacas+ talk tap tcpmux telnet tempo +syn keyword pfService tftp time timed timeserver timserver tsap +syn keyword pfService ttylink ttytst ub-dns-control ulistserv untp +syn keyword pfService usenet users uucp uucp-path uucpd vnc vxlan +syn keyword pfService wais webster who whod whois www x400 x400-snd +syn keyword pfService xcept xdmcp xmpp-bosh xmpp-client xmpp-server +syn keyword pfService z3950 zabbix-agent zabbix-trapper zebra +syn keyword pfService zebrasrv - delcommand HiLink -endif +hi def link pfCmd Statement +hi def link pfComment Comment +hi def link pfCont Statement +hi def link pfErrClose Error +hi def link pfIPv4 Type +hi def link pfIPv6 Type +hi def link pfNetmask Constant +hi def link pfNum Constant +hi def link pfService Constant +hi def link pfString String +hi def link pfTable Identifier +hi def link pfTodo Todo +hi def link pfVar Identifier +hi def link pfVarAssign Identifier +hi def link pfWildAddr Type let b:current_syntax = "pf"