diff options
author | Bram Moolenaar <Bram@vim.org> | 2006-03-20 21:47:49 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2006-03-20 21:47:49 +0000 |
commit | 371d5403d0dc6411f6f17c5b472c1cfcac6789e4 (patch) | |
tree | 08066b3d097303df50e1b67fffc33d1d68bcb0d4 | |
parent | ceaf7b8b66764b4a99526c715886d80397ce81dd (diff) | |
download | vim-371d5403d0dc6411f6f17c5b472c1cfcac6789e4.zip |
updated for version 7.0230
-rw-r--r-- | runtime/doc/Makefile | 10 | ||||
-rw-r--r-- | runtime/doc/gui.txt | 6 | ||||
-rw-r--r-- | runtime/doc/index.txt | 31 | ||||
-rw-r--r-- | runtime/doc/map.txt | 46 | ||||
-rw-r--r-- | runtime/doc/netbeans.txt | 2 | ||||
-rw-r--r-- | runtime/doc/visual.txt | 9 | ||||
-rw-r--r-- | runtime/syntax/vim.vim | 14 | ||||
-rw-r--r-- | src/buffer.c | 3 | ||||
-rw-r--r-- | src/ex_docmd.c | 25 | ||||
-rw-r--r-- | src/fileio.c | 4 | ||||
-rw-r--r-- | src/getchar.c | 130 | ||||
-rw-r--r-- | src/gui.c | 32 | ||||
-rw-r--r-- | src/vim.h | 7 | ||||
-rw-r--r-- | src/window.c | 9 |
14 files changed, 230 insertions, 98 deletions
diff --git a/runtime/doc/Makefile b/runtime/doc/Makefile index 9ebce3c7e..a0ea10066 100644 --- a/runtime/doc/Makefile +++ b/runtime/doc/Makefile @@ -161,7 +161,6 @@ HTMLS = \ gui_x11.html \ hangulin.html \ hebrew.html \ - help.html \ howto.html \ if_cscop.html \ if_mzsch.html \ @@ -173,6 +172,7 @@ HTMLS = \ if_tcl.html \ indent.html \ index.html \ + vimindex.html \ insert.html \ intro.html \ map.html \ @@ -327,6 +327,14 @@ noerrors: .txt.html: $(AWK) -f makehtml.awk $< >$@ +# index.html is the starting point for HTML, but for the help files it is +# help.txt. Therefore use vimindex.html for index.txt. +index.html: help.txt + $(AWK) -f makehtml.awk help.txt >index.html + +vimindex.html: index.txt + $(AWK) -f makehtml.awk index.txt >vimindex.html + tags.ref tags.html: tags $(AWK) -f maketags.awk tags >tags.html diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt index b3b0dd92b..f79f84e57 100644 --- a/runtime/doc/gui.txt +++ b/runtime/doc/gui.txt @@ -1,4 +1,4 @@ -*gui.txt* For Vim version 7.0aa. Last change: 2006 Feb 27 +*gui.txt* For Vim version 7.0aa. Last change: 2006 Mar 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -499,6 +499,8 @@ floating menus that do not appear on the main menu bar. *:nme* *:nmenu* *:nnoreme* *:nnoremenu* *:ome* *:omenu* *:onoreme* *:onoremenu* *:vme* *:vmenu* *:vnoreme* *:vnoremenu* + *:xme* *:xmenu* *:xnoreme* *:xnoremenu* + *:sme* *:smenu* *:snoreme* *:snoremenu* *:ime* *:imenu* *:inoreme* *:inoremenu* *:cme* *:cmenu* *:cnoreme* *:cnoremenu* *E330* *E327* *E331* *E336* *E333* @@ -787,6 +789,8 @@ using the last visual selection. *:nunme* *:nunmenu* *:ounme* *:ounmenu* *:vunme* *:vunmenu* + *:xunme* *:xunmenu* + *:sunme* *:sunmenu* *:iunme* *:iunmenu* *:cunme* *:cunmenu* To delete a menu item or a whole submenu, use the unmenu commands, which are diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt index 5a2bdb811..9ffde224e 100644 --- a/runtime/doc/index.txt +++ b/runtime/doc/index.txt @@ -1,4 +1,4 @@ -*index.txt* For Vim version 7.0aa. Last change: 2006 Mar 16 +*index.txt* For Vim version 7.0aa. Last change: 2006 Mar 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -1413,10 +1413,15 @@ The commands are sorted on the non-optional part of their name. |:slast| :sla[st] split window and go to last file in the argument list |:smagic| :sm[agic] :substitute with 'magic' +|:smap| :sma[p] like ":map" but for Select mode +|:smapclear| :smapc[lear] remove all mappings for Select mode +|:smenu| :sme[nu] add menu for Select mode |:snext| :sn[ext] split window and go to next file in the argument list |:sniff| :sni[ff] send request to sniff |:snomagic| :sno[magic] :substitute with 'nomagic' +|:snoremap| :snor[emap] like ":noremap" but for Select mode +|:snoremenu| :snoreme[nu] like ":noremenu" but for Select mode |:sort| :sor[t] sort lines |:source| :so[urce] read Vim or Ex commands from a file |:spelldump| :spelld[ump] split window and fill with all correct words @@ -1439,6 +1444,8 @@ The commands are sorted on the non-optional part of their name. |:stjump| :stj[ump] do ":tjump" and split window |:stselect| :sts[elect] do ":tselect" and split window |:sunhide| :sun[hide] same as ":unhide" +|:sunmap| :sunm[ap] like ":unmap" but for Select mode +|:sunmenu| :sunme[nu] remove menu for Select mode |:suspend| :sus[pend] same as ":stop" |:sview| :sv[iew] split window and edit file read-only |:swapname| :sw[apname] show the name of the current swap file @@ -1500,15 +1507,15 @@ The commands are sorted on the non-optional part of their name. |:visual| :vi[sual] same as ":edit", but turns off "Ex" mode |:viusage| :viu[sage] overview of Normal mode commands |:view| :vie[w] edit a file read-only -|:vmap| :vm[ap] like ":map" but for Visual mode -|:vmapclear| :vmapc[lear] remove all mappings for Visual mode -|:vmenu| :vme[nu] add menu for Visual mode -|:vnoremap| :vn[oremap] like ":noremap" but for Visual mode +|:vmap| :vm[ap] like ":map" but for Visual+Select mode +|:vmapclear| :vmapc[lear] remove all mappings for Visual+Select mode +|:vmenu| :vme[nu] add menu for Visual+Select mode |:vnew| :vne[w] create a new empty window, vertically split -|:vnoremenu| :vnoreme[nu] like ":noremenu" but for Visual mode +|:vnoremap| :vn[oremap] like ":noremap" but for Visual+Select mode +|:vnoremenu| :vnoreme[nu] like ":noremenu" but for Visual+Select mode |:vsplit| :vs[plit] split current window vertically -|:vunmap| :vu[nmap] like ":unmap" but for Visual mode -|:vunmenu| :vunme[nu] remove menu for Visual mode +|:vunmap| :vu[nmap] like ":unmap" but for Visual+Select mode +|:vunmenu| :vunme[nu] remove menu for Visual+Select mode |:windo| :windo execute command in each window |:write| :w[rite] write to a file |:wNext| :wN[ext] write to a file and go to previous file in @@ -1528,8 +1535,16 @@ The commands are sorted on the non-optional part of their name. |:wviminfo| :wv[iminfo] write to viminfo file |:xit| :x[it] write if buffer changed and quit window or Vim |:xall| :xa[ll] same as ":wqall" +|:xmapclear| :xmapc[lear] remove all mappings for Visual mode +|:xmap| :xm[ap] like ":map" but for Visual mode +|:xmenu| :xme[nu] add menu for Visual mode +|:xnoremap| :xn[oremap] like ":noremap" but for Visual mode +|:xnoremenu| :xnoreme[nu] like ":noremenu" but for Visual mode +|:xunmap| :xu[nmap] like ":unmap" but for Visual mode +|:xunmenu| :xunme[nu] remove menu for Visual mode |:yank| :y[ank] yank lines into a register |:z| :z print some lines |:~| :~ repeat last ":substitute" + vim:tw=78:ts=8:ft=help:norl: diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt index f1e086888..defc308a3 100644 --- a/runtime/doc/map.txt +++ b/runtime/doc/map.txt @@ -1,4 +1,4 @@ -*map.txt* For Vim version 7.0aa. Last change: 2006 Mar 11 +*map.txt* For Vim version 7.0aa. Last change: 2006 Mar 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -48,6 +48,8 @@ modes. :map {lhs} {rhs} |mapmode-nvo| *:map* :nm[ap] {lhs} {rhs} |mapmode-n| *:nm* *:nmap* :vm[ap] {lhs} {rhs} |mapmode-v| *:vm* *:vmap* +:xm[ap] {lhs} {rhs} |mapmode-x| *:xm* *:xmap* +:smap {lhs} {rhs} |mapmode-s| *:smap* :om[ap] {lhs} {rhs} |mapmode-o| *:om* *:omap* :map! {lhs} {rhs} |mapmode-ic| *:map!* :im[ap] {lhs} {rhs} |mapmode-i| *:im* *:imap* @@ -62,6 +64,8 @@ modes. :no[remap] {lhs} {rhs} |mapmode-nvo| *:no* *:noremap* :nn[oremap] {lhs} {rhs} |mapmode-n| *:nn* *:nnoremap* :vn[oremap] {lhs} {rhs} |mapmode-v| *:vn* *:vnoremap* +:xn[oremap] {lhs} {rhs} |mapmode-x| *:xn* *:xnoremap* +:snor[emap] {lhs} {rhs} |mapmode-s| *:snor* *:snoremap* :ono[remap] {lhs} {rhs} |mapmode-o| *:ono* *:onoremap* :no[remap]! {lhs} {rhs} |mapmode-ic| *:no!* *:noremap!* :ino[remap] {lhs} {rhs} |mapmode-i| *:ino* *:inoremap* @@ -76,6 +80,8 @@ modes. :unm[ap] {lhs} |mapmode-nvo| *:unm* *:unmap* :nun[map] {lhs} |mapmode-n| *:nun* *:nunmap* :vu[nmap] {lhs} |mapmode-v| *:vu* *:vunmap* +:xu[nmap] {lhs} |mapmode-x| *:xu* *:xunmap* +:sunm[ap] {lhs} |mapmode-s| *:sunm* *:sunmap* :ou[nmap] {lhs} |mapmode-o| *:ou* *:ounmap* :unm[ap]! {lhs} |mapmode-ic| *:unm!* *:unmap!* :iu[nmap] {lhs} |mapmode-i| *:iu* *:iunmap* @@ -92,6 +98,8 @@ modes. :mapc[lear] |mapmode-nvo| *:mapc* *:mapclear* :nmapc[lear] |mapmode-n| *:nmapc* *:nmapclear* :vmapc[lear] |mapmode-v| *:vmapc* *:vmapclear* +:xmapc[lear] |mapmode-x| *:xmapc* *:xmapclear* +:smapc[lear] |mapmode-s| *:smapc* *:smapclear* :omapc[lear] |mapmode-o| *:omapc* *:omapclear* :mapc[lear]! |mapmode-ic| *:mapc!* *:mapclear!* :imapc[lear] |mapmode-i| *:imapc* *:imapclear* @@ -104,6 +112,8 @@ modes. :map |mapmode-nvo| :nm[ap] |mapmode-n| :vm[ap] |mapmode-v| +:xm[ap] |mapmode-x| +:sm[ap] |mapmode-s| :om[ap] |mapmode-o| :map! |mapmode-ic| :im[ap] |mapmode-i| @@ -116,6 +126,8 @@ modes. :map {lhs} |mapmode-nvo| *:map_l* :nm[ap] {lhs} |mapmode-n| *:nmap_l* :vm[ap] {lhs} |mapmode-v| *:vmap_l* +:xm[ap] {lhs} |mapmode-x| *:xmap_l* +:sm[ap] {lhs} |mapmode-s| *:smap_l* :om[ap] {lhs} |mapmode-o| *:omap_l* :map! {lhs} |mapmode-ic| *:map_l!* :im[ap] {lhs} |mapmode-i| *:imap_l* @@ -238,9 +250,6 @@ There are five sets of mappings - For Insert mode. These are also used in Replace mode. - For Command-line mode: When entering a ":" or "/" command. -There are no separate mappings for Select mode. The same as for Visual mode -are used |Select-mode-mapping|. - Special case: While typing a count for a command in Normal mode, mapping zero is disabled. This makes it possible to map zero without making it impossible to type a count with a zero. @@ -250,13 +259,27 @@ Overview of which map command works in which mode: *mapmode-nvo* *mapmode-n* *mapmode-v* *mapmode-o* commands: modes: ~ - Normal Visual Operator-pending ~ -:map :noremap :unmap :mapclear yes yes yes -:nmap :nnoremap :nunmap :nmapclear yes - - -:vmap :vnoremap :vunmap :vmapclear - yes - -:omap :onoremap :ounmap :omapclear - - yes + Normal Visual+Select Operator-pending ~ +:map :noremap :unmap :mapclear yes yes yes +:nmap :nnoremap :nunmap :nmapclear yes - - +:vmap :vnoremap :vunmap :vmapclear - yes - +:omap :onoremap :ounmap :omapclear - - yes + + *mapmode-x* *mapmode-s* +Some commands work both in Visual and Select mode, some in only one. Note +that quite often "Visual" is mentioned where both Visual and Select mode +apply. |Select-mode-mapping| + + commands: modes: ~ + Visual Select ~ +:vmap :vnoremap :vunmap :vmapclear yes yes +:xmap :xnoremap :xunmap :xmapclear yes - +:smap :snoremap :sunmap :smapclear - yes *mapmode-ic* *mapmode-i* *mapmode-c* *mapmode-l* +Some commands work both in Insert mode and Command-line mode, some not: + + commands: modes: ~ Insert Command-line Lang-Arg ~ :map! :noremap! :unmap! :mapclear! yes yes - :imap :inoremap :iunmap :imapclear yes - - @@ -1218,8 +1241,9 @@ Replacement text The replacement text for a user defined command is scanned for special escape sequences, using <...> notation. Escape sequences are replaced with values from the entered command line, and all other text is copied unchanged. The -resulting string is executed as an Ex command. If the initial < of an escape -sequence is preceded by a backslash, the sequence is copied unchanged. +resulting string is executed as an Ex command. To avoid the replacement use +<lt> in plade of the initial <. Thus to include "<bang>" literally use +"<lt>bang>". The valid escape sequences are diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt index 9d851cce2..789fbbc17 100644 --- a/runtime/doc/netbeans.txt +++ b/runtime/doc/netbeans.txt @@ -194,7 +194,7 @@ Partial writes disallowed for NetBeans buffers *E658* NetBeans connection lost for this buffer NetBeans has become confused about the state of this file. - Rather than risc data corruption, NetBeans has severed the + Rather than risk data corruption, NetBeans has severed the connection for this file. Vim will take over responsibility for saving changes to this file and NetBeans will no longer know of these changes. diff --git a/runtime/doc/visual.txt b/runtime/doc/visual.txt index 1ff70ac05..f9688abb8 100644 --- a/runtime/doc/visual.txt +++ b/runtime/doc/visual.txt @@ -1,4 +1,4 @@ -*visual.txt* For Vim version 7.0aa. Last change: 2006 Jan 22 +*visual.txt* For Vim version 7.0aa. Last change: 2006 Mar 20 VIM REFERENCE MANUAL by Bram Moolenaar @@ -460,9 +460,10 @@ example, when a whole line is deleted, it can later be pasted halfway a line. Mappings and menus in Select mode. *Select-mode-mapping* -In Select mode the mappings and menus of Visual mode are used. Before it is -executed, Vim automatically switches to Visual mode, so that the same -behavior as in Visual mode is effective. +When mappings and menus are defined with the |:vmap| or |:vmenu| command they +work both in Visual mode and in Select mode. When these are used in Select +mode Vim automatically switches to Visual mode, so that the same behavior as +in Visual mode is effective. If you don't want this use |:xmap| or |:smap|. After the mapping or menu finishes, the selection is enabled again and Select mode entered, unless the selected area was deleted, another buffer became diff --git a/runtime/syntax/vim.vim b/runtime/syntax/vim.vim index 610068067..4e0f8ef51 100644 --- a/runtime/syntax/vim.vim +++ b/runtime/syntax/vim.vim @@ -1,8 +1,8 @@ " Vim syntax file " Language: Vim 7.0 script " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> -" Last Change: March 16, 2006 -" Version: 7.0-33 +" Last Change: March 20, 2006 +" Version: 7.0-34 " Automatically generated keyword lists: {{{1 " Quit when a syntax file was already loaded {{{2 @@ -16,17 +16,17 @@ syn keyword vimTodo contained COMBAK NOT RELEASED TODO WIP syn cluster vimCommentGroup contains=vimTodo,@Spell " regular vim commands {{{2 -syn keyword vimCommand contained ab[breviate] abc[lear] abo[veleft] al[l] arga[dd] argd[elete] argdo arge[dit] argg[lobal] argl[ocal] ar[gs] argu[ment] as[cii] bad[d] ba[ll] bd[elete] be bel[owright] bf[irst] bl[ast] bm[odified] bn[ext] bN[ext] bo[tright] bp[revious] brea[k] breaka[dd] breakd[el] breakl[ist] br[ewind] bro[wse] bufdo b[uffer] buffers bun[load] bw[ipeout] ca[bbrev] cabc[lear] caddb[uffer] cad[dexpr] caddf[ile] cal[l] cat[ch] cb[uffer] cc ccl[ose] cd ce[nter] cex[pr] cf[ile] cfir[st] cg[etfile] c[hange] changes chd[ir] che[ckpath] checkt[ime] cla[st] cl[ist] clo[se] cmapc[lear] cnew[er] cn[ext] cN[ext] cnf[ile] cNf[ile] cnorea[bbrev] col[der] colo[rscheme] comc[lear] comp[iler] conf[irm] con[tinue] cope[n] co[py] cpf[ile] cp[revious] cq[uit] cr[ewind] cuna[bbrev] cu[nmap] cw[indow] debugg[reedy] delc[ommand] d[elete] DeleteFirst delf[unction] delm[arks] diffg[et] diffoff diffpatch diffpu[t] diffsplit diffthis diffu[pdate] dig[raphs] di[splay] dj[ump] dl[ist] dr[op] ds[earch] dsp[lit] earlier echoe[rr] echom[sg] echon e[dit] el[se] elsei[f] em[enu] emenu* endfo[r] endf[unction] en[dif] endt[ry] endw[hile] ene[w] ex exi[t] Explore exu[sage] f[ile] files filetype fina[lly] fin[d] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] folddoc[losed] foldd[oopen] foldo[pen] for fu[nction] g[lobal] go[to] gr[ep] grepa[dd] ha[rdcopy] h[elp] helpf[ind] helpg[rep] helpt[ags] Hexplore hid[e] his[tory] I ia[bbrev] iabc[lear] if ij[ump] il[ist] imapc[lear] inorea[bbrev] is[earch] isp[lit] iuna[bbrev] iu[nmap] j[oin] ju[mps] k keepalt keepj[umps] kee[pmarks] laddb[uffer] lad[dexpr] laddf[ile] lan[guage] la[st] later lb[uffer] lc[d] lch[dir] lcl[ose] le[ft] lefta[bove] lex[pr] lf[ile] lfir[st] lg[etfile] lgr[ep] lgrepa[dd] lh[elpgrep] l[ist] ll lla[st] lli[st] lmak[e] lm[ap] lmapc[lear] lnew[er] lne[xt] lN[ext] lnf[ile] lNf[ile] ln[oremap] lo[adview] loc[kmarks] lockv[ar] lol[der] lop[en] lpf[ile] lp[revious] lr[ewind] ls lt[ag] lu[nmap] lv[imgrep] lvimgrepa[dd] lw[indow] mak[e] ma[rk] marks mat[ch] menut[ranslate] mk[exrc] mks[ession] mksp[ell] mkvie[w] mkv[imrc] mod[e] m[ove] mzf[ile] mz[scheme] nbkey NetrwSettings new n[ext] N[ext] nmapc[lear] noh[lsearch] norea[bbrev] Nread nu[mber] nun[map] Nw omapc[lear] on[ly] o[pen] opt[ions] ou[nmap] pc[lose] ped[it] pe[rl] perld[o] po[p] popu popu[p] pp[op] pre[serve] prev[ious] p[rint] P[rint] profd[el] prof[ile] prompt promptf[ind] promptr[epl] ps[earch] pta[g] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptN[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] pyf[ile] py[thon] qa[ll] q[uit] quita[ll] r[ead] rec[over] redi[r] red[o] redr[aw] redraws[tatus] reg[isters] res[ize] ret[ab] retu[rn] rew[ind] ri[ght] rightb[elow] rub[y] rubyd[o] rubyf[ile] ru[ntime] rv[iminfo] sal[l] san[dbox] sa[rgument] sav[eas] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbN[ext] sbp[revious] sbr[ewind] sb[uffer] scripte[ncoding] scrip[tnames] se[t] setf[iletype] setg[lobal] setl[ocal] Sexplore sf[ind] sfir[st] sh[ell] sign sil[ent] sim[alt] sla[st] sl[eep] sm[agic] sn[ext] sN[ext] sni[ff] sno[magic] sor[t] so[urce] spelld[ump] spe[llgood] spelli[nfo] spellr[epall] spellu[ndo] spellw[rong] sp[lit] spr[evious] sre[wind] sta[g] startg[replace] star[tinsert] startr[eplace] stj[ump] st[op] stopi[nsert] sts[elect] sun[hide] sus[pend] sv[iew] syncbind t tab tabc[lose] tabd[o] tabe[dit] tabf[ind] tabfir[st] tabl[ast] tabmove tabnew tabn[ext] tabN[ext] tabo[nly] tabp[revious] tabr[ewind] tabs ta[g] tags tc[l] tcld[o] tclf[ile] te[aroff] tf[irst] the th[row] tj[ump] tl[ast] tm tm[enu] tn[ext] tN[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] tu tu[nmenu] una[bbreviate] u[ndo] undoj[oin] unh[ide] unlo[ckvar] unm[ap] up[date] verb[ose] ve[rsion] vert[ical] Vexplore v[global] vie[w] vim[grep] vimgrepa[dd] vi[sual] viu[sage] vmapc[lear] vne[w] vs[plit] vu[nmap] wa[ll] wh[ile] winc[md] windo winp[os] win[size] wn[ext] wN[ext] wp[revious] wq wqa[ll] w[rite] ws[verb] wv[iminfo] X xa[ll] x[it] XMLent XMLns y[ank] +syn keyword vimCommand contained ab[breviate] abc[lear] abo[veleft] al[l] arga[dd] argd[elete] argdo arge[dit] argg[lobal] argl[ocal] ar[gs] argu[ment] as[cii] bad[d] ba[ll] bd[elete] be bel[owright] bf[irst] bl[ast] bm[odified] bn[ext] bN[ext] bo[tright] bp[revious] brea[k] breaka[dd] breakd[el] breakl[ist] br[ewind] bro[wse] bufdo b[uffer] buffers bun[load] bw[ipeout] ca[bbrev] cabc[lear] caddb[uffer] cad[dexpr] caddf[ile] cal[l] cat[ch] cb[uffer] cc ccl[ose] cd ce[nter] cex[pr] cf[ile] cfir[st] cg[etfile] c[hange] changes chd[ir] che[ckpath] checkt[ime] cla[st] cl[ist] clo[se] cmapc[lear] cnew[er] cn[ext] cN[ext] cnf[ile] cNf[ile] cnorea[bbrev] col[der] colo[rscheme] comc[lear] comp[iler] conf[irm] con[tinue] cope[n] co[py] cpf[ile] cp[revious] cq[uit] cr[ewind] cuna[bbrev] cu[nmap] cw[indow] debugg[reedy] delc[ommand] d[elete] DeleteFirst delf[unction] delm[arks] diffg[et] diffoff diffpatch diffpu[t] diffsplit diffthis diffu[pdate] dig[raphs] di[splay] dj[ump] dl[ist] dr[op] ds[earch] dsp[lit] earlier echoe[rr] echom[sg] echon e[dit] el[se] elsei[f] em[enu] emenu* endfo[r] endf[unction] en[dif] endt[ry] endw[hile] ene[w] ex exi[t] Explore exu[sage] f[ile] files filetype fina[lly] fin[d] fini[sh] fir[st] fix[del] fo[ld] foldc[lose] folddoc[losed] foldd[oopen] foldo[pen] for fu[nction] g[lobal] go[to] gr[ep] grepa[dd] ha[rdcopy] h[elp] helpf[ind] helpg[rep] helpt[ags] Hexplore hid[e] his[tory] I ia[bbrev] iabc[lear] if ij[ump] il[ist] imapc[lear] inorea[bbrev] is[earch] isp[lit] iuna[bbrev] iu[nmap] j[oin] ju[mps] k keepalt keepj[umps] kee[pmarks] laddb[uffer] lad[dexpr] laddf[ile] lan[guage] la[st] later lb[uffer] lc[d] lch[dir] lcl[ose] le[ft] lefta[bove] lex[pr] lf[ile] lfir[st] lg[etfile] lgr[ep] lgrepa[dd] lh[elpgrep] l[ist] ll lla[st] lli[st] lmak[e] lm[ap] lmapc[lear] lnew[er] lne[xt] lN[ext] lnf[ile] lNf[ile] ln[oremap] lo[adview] loc[kmarks] lockv[ar] lol[der] lop[en] lpf[ile] lp[revious] lr[ewind] ls lt[ag] lu[nmap] lv[imgrep] lvimgrepa[dd] lw[indow] mak[e] ma[rk] marks mat[ch] menut[ranslate] mk[exrc] mks[ession] mksp[ell] mkvie[w] mkv[imrc] mod[e] m[ove] mzf[ile] mz[scheme] nbkey NetrwSettings new n[ext] N[ext] nmapc[lear] noh[lsearch] norea[bbrev] Nread nu[mber] nun[map] Nw omapc[lear] on[ly] o[pen] opt[ions] ou[nmap] pc[lose] ped[it] pe[rl] perld[o] po[p] popu popu[p] pp[op] pre[serve] prev[ious] p[rint] P[rint] profd[el] prof[ile] prompt promptf[ind] promptr[epl] ps[earch] pta[g] ptf[irst] ptj[ump] ptl[ast] ptn[ext] ptN[ext] ptp[revious] ptr[ewind] pts[elect] pu[t] pw[d] pyf[ile] py[thon] qa[ll] q[uit] quita[ll] r[ead] rec[over] redi[r] red[o] redr[aw] redraws[tatus] reg[isters] res[ize] ret[ab] retu[rn] rew[ind] ri[ght] rightb[elow] rub[y] rubyd[o] rubyf[ile] ru[ntime] rv[iminfo] sal[l] san[dbox] sa[rgument] sav[eas] sba[ll] sbf[irst] sbl[ast] sbm[odified] sbn[ext] sbN[ext] sbp[revious] sbr[ewind] sb[uffer] scripte[ncoding] scrip[tnames] se[t] setf[iletype] setg[lobal] setl[ocal] Sexplore sf[ind] sfir[st] sh[ell] sign sil[ent] sim[alt] sla[st] sl[eep] sm[agic] sn[ext] sN[ext] sni[ff] sno[magic] sor[t] so[urce] spelld[ump] spe[llgood] spelli[nfo] spellr[epall] spellu[ndo] spellw[rong] sp[lit] spr[evious] sre[wind] sta[g] startg[replace] star[tinsert] startr[eplace] stj[ump] st[op] stopi[nsert] sts[elect] sun[hide] sus[pend] sv[iew] syncbind t tab tabc[lose] tabd[o] tabe[dit] tabf[ind] tabfir[st] tabl[ast] tabmove tabnew tabn[ext] tabN[ext] tabo[nly] tabp[revious] tabr[ewind] tabs ta[g] tags tc[l] tcld[o] tclf[ile] te[aroff] tf[irst] the th[row] tj[ump] tl[ast] tm tm[enu] tn[ext] tN[ext] to[pleft] tp[revious] tr[ewind] try ts[elect] tu tu[nmenu] una[bbreviate] u[ndo] undoj[oin] undol[ist] unh[ide] unlo[ckvar] unm[ap] up[date] verb[ose] ve[rsion] vert[ical] Vexplore v[global] vie[w] vim[grep] vimgrepa[dd] vi[sual] viu[sage] vmapc[lear] vne[w] vs[plit] vu[nmap] wa[ll] wh[ile] winc[md] windo winp[os] win[size] wn[ext] wN[ext] wp[revious] wq wqa[ll] w[rite] ws[verb] wv[iminfo] X xa[ll] x[it] XMLent XMLns y[ank] syn match vimCommand contained "\<z[-+^.=]" " vimOptions are caught only when contained in a vimSet {{{2 -syn keyword vimOption contained : acd ai akm al aleph allowrevins altkeymap ambiwidth ambw anti antialias ar arab arabic arabicshape ari arshape autochdir autoindent autoread autowrite autowriteall aw awa background backspace backup backupcopy backupdir backupext backupskip balloondelay ballooneval balloonexpr bdir bdlay beval bex bexpr bg bh bin binary biosk bioskey bk bkc bl bomb breakat brk browsedir bs bsdir bsk bt bufhidden buflisted buftype casemap cb ccv cd cdpath cedit cf cfu ch charconvert ci cin cindent cink cinkeys cino cinoptions cinw cinwords clipboard cmdheight cmdwinheight cmp cms co columns com comments commentstring compatible complete completefunc completeopt confirm consk conskey copyindent cot cp cpo cpoptions cpt cscopepathcomp cscopeprg cscopequickfix cscopetag cscopetagorder cscopeverbose cspc csprg csqf cst csto csverb cuc cul cursorcolumn cursorline cwh debug deco def define delcombine dex dg dict dictionary diff diffexpr diffopt digraph dip dir directory display dy ea ead eadirection eb ed edcompatible ef efm ei ek enc encoding endofline eol ep equalalways equalprg errorbells errorfile errorformat esckeys et eventignore ex expandtab exrc fcl fcs fdc fde fdi fdl fdls fdm fdn fdo fdt fen fenc fencs fex ff ffs fileencoding fileencodings fileformat fileformats filetype fillchars fk fkmap flp fml fmr fo foldclose foldcolumn foldenable foldexpr foldignore foldlevel foldlevelstart foldmarker foldmethod foldminlines foldnestmax foldopen foldtext formatexpr formatlistpat formatoptions formatprg fp fs fsync ft gcr gd gdefault gfm gfn gfs gfw ghr go gp grepformat grepprg gtl guicursor guifont guifontset guifontwide guiheadroom guioptions guipty guitablabel helpfile helpheight helplang hf hh hi hid hidden highlight history hk hkmap hkmapp hkp hl hlg hls hlsearch ic icon iconstring ignorecase im imactivatekey imak imc imcmdline imd imdisable imi iminsert ims imsearch inc include includeexpr incsearch inde indentexpr indentkeys indk inex inf infercase insertmode is isf isfname isi isident isk iskeyword isp isprint joinspaces js key keymap keymodel keywordprg km kmp kp langmap langmenu laststatus lazyredraw lbr lcs linebreak lines linespace lisp lispwords list listchars lm lmap loadplugins lpl ls lsp lw lz ma magic makeef makeprg mat matchpairs matchtime maxcombine maxfuncdepth maxmapdepth maxmem maxmempattern maxmemtot mco mef menuitems mfd mh mis mkspellmem ml mls mm mmd mmp mmt mod modeline modelines modifiable modified more mouse mousef mousefocus mousehide mousem mousemodel mouses mouseshape mouset mousetime mp mps msm mzq mzquantum nf nrformats nu number numberwidth nuw oft ofu omnifunc operatorfunc opfunc osfiletype pa para paragraphs paste pastetoggle patchexpr patchmode path pdev penc pex pexpr pfn ph pheader pi pm pmbcs pmbfn popt preserveindent previewheight previewwindow printdevice printencoding printexpr printfont printheader printmbcharset printmbfont printoptions prompt pt pumheight pvh pvw qe quoteescape readonly remap report restorescreen revins ri rightleft rightleftcmd rl rlc ro rs rtp ru ruf ruler rulerformat runtimepath sb sbo sbr sc scb scr scroll scrollbind scrolljump scrolloff scrollopt scs sect sections secure sel selection selectmode sessionoptions sft sh shcf shell shellcmdflag shellpipe shellquote shellredir shellslash shelltemp shelltype shellxquote shiftround shiftwidth shm shortmess shortname showbreak showcmd showfulltag showmatch showmode showtabline shq si sidescroll sidescrolloff siso sj slm sm smartcase smartindent smarttab smc smd sn so softtabstop sol sp spc spell spellcapcheck spellfile spelllang spellsuggest spf spl splitbelow splitright spr sps sr srr ss ssl ssop st sta stal startofline statusline stl stmp sts su sua suffixes suffixesadd sw swapfile swapsync swb swf switchbuf sws sxq syn synmaxcol syntax ta tabline tabpagemax tabstop tag tagbsearch taglength tagrelative tags tagstack tal tb tbi tbidi tbis tbs tenc term termbidi termencoding terse textauto textmode textwidth tf tgst thesaurus tildeop timeout timeoutlen title titlelen titleold titlestring tl tm to toolbar toolbariconsize top tpm tr ts tsl tsr ttimeout ttimeoutlen ttm tty ttybuiltin ttyfast ttym ttymouse ttyscroll ttytype tw tx uc ul undolevels updatecount updatetime ut vb vbs vdir ve verbose verbosefile vfile vi viewdir viewoptions viminfo virtualedit visualbell vop wa wak warn wb wc wcm wd weirdinvert wfh wh whichwrap wi wig wildchar wildcharm wildignore wildmenu wildmode wildoptions wim winaltkeys window winfixheight winheight winminheight winminwidth winwidth wiv wiw wm wmh wmnu wmw wop wrap wrapmargin wrapscan write writeany writebackup writedelay ws ww +syn keyword vimOption contained : acd ai akm al aleph allowrevins altkeymap ambiwidth ambw anti antialias ar arab arabic arabicshape ari arshape autochdir autoindent autoread autowrite autowriteall aw awa background backspace backup backupcopy backupdir backupext backupskip balloondelay ballooneval balloonexpr bdir bdlay beval bex bexpr bg bh bin binary biosk bioskey bk bkc bl bomb breakat brk browsedir bs bsdir bsk bt bufhidden buflisted buftype casemap cb ccv cd cdpath cedit cf cfu ch charconvert ci cin cindent cink cinkeys cino cinoptions cinw cinwords clipboard cmdheight cmdwinheight cmp cms co columns com comments commentstring compatible complete completefunc completeopt confirm consk conskey copyindent cot cp cpo cpoptions cpt cscopepathcomp cscopeprg cscopequickfix cscopetag cscopetagorder cscopeverbose cspc csprg csqf cst csto csverb cuc cul cursorcolumn cursorline cwh debug deco def define delcombine dex dg dict dictionary diff diffexpr diffopt digraph dip dir directory display dy ea ead eadirection eb ed edcompatible ef efm ei ek enc encoding endofline eol ep equalalways equalprg errorbells errorfile errorformat esckeys et eventignore ex expandtab exrc fcl fcs fdc fde fdi fdl fdls fdm fdn fdo fdt fen fenc fencs fex ff ffs fileencoding fileencodings fileformat fileformats filetype fillchars fk fkmap flp fml fmr fo foldclose foldcolumn foldenable foldexpr foldignore foldlevel foldlevelstart foldmarker foldmethod foldminlines foldnestmax foldopen foldtext formatexpr formatlistpat formatoptions formatprg fp fs fsync ft gcr gd gdefault gfm gfn gfs gfw ghr go gp grepformat grepprg gtl guicursor guifont guifontset guifontwide guiheadroom guioptions guipty guitablabel helpfile helpheight helplang hf hh hi hid hidden highlight history hk hkmap hkmapp hkp hl hlg hls hlsearch ic icon iconstring ignorecase im imactivatekey imak imc imcmdline imd imdisable imi iminsert ims imsearch inc include includeexpr incsearch inde indentexpr indentkeys indk inex inf infercase insertmode is isf isfname isi isident isk iskeyword isp isprint joinspaces js key keymap keymodel keywordprg km kmp kp langmap langmenu laststatus lazyredraw lbr lcs linebreak lines linespace lisp lispwords list listchars lm lmap loadplugins lpl ls lsp lw lz ma magic makeef makeprg mat matchpairs matchtime maxcombine maxfuncdepth maxmapdepth maxmem maxmempattern maxmemtot mco mef menuitems mfd mh mis mkspellmem ml mls mm mmd mmp mmt mod modeline modelines modifiable modified more mouse mousef mousefocus mousehide mousem mousemodel mouses mouseshape mouset mousetime mp mps msm mzq mzquantum nf nrformats nu number numberwidth nuw oft ofu omnifunc operatorfunc opfunc osfiletype pa para paragraphs paste pastetoggle patchexpr patchmode path pdev penc pex pexpr pfn ph pheader pi pm pmbcs pmbfn popt preserveindent previewheight previewwindow printdevice printencoding printexpr printfont printheader printmbcharset printmbfont printoptions prompt pt pumheight pvh pvw qe quoteescape readonly remap report restorescreen revins ri rightleft rightleftcmd rl rlc ro rs rtp ru ruf ruler rulerformat runtimepath sb sbo sbr sc scb scr scroll scrollbind scrolljump scrolloff scrollopt scs sect sections secure sel selection selectmode sessionoptions sft sh shcf shell shellcmdflag shellpipe shellquote shellredir shellslash shelltemp shelltype shellxquote shiftround shiftwidth shm shortmess shortname showbreak showcmd showfulltag showmatch showmode showtabline shq si sidescroll sidescrolloff siso sj slm sm smartcase smartindent smarttab smc smd sn so softtabstop sol sp spc spell spellcapcheck spellfile spelllang spellsuggest spf spl splitbelow splitright spr sps sr srr ss ssl ssop st sta stal startofline statusline stl stmp sts su sua suffixes suffixesadd sw swapfile swapsync swb swf switchbuf sws sxq syn synmaxcol syntax ta tabline tabpagemax tabstop tag tagbsearch taglength tagrelative tags tagstack tal tb tbi tbidi tbis tbs tenc term termbidi termencoding terse textauto textmode textwidth tf tgst thesaurus tildeop timeout timeoutlen title titlelen titleold titlestring tl tm to toolbar toolbariconsize top tpm tr ts tsl tsr ttimeout ttimeoutlen ttm tty ttybuiltin ttyfast ttym ttymouse ttyscroll ttytype tw tx uc ul undolevels updatecount updatetime ut vb vbs vdir ve verbose verbosefile vfile vi viewdir viewoptions viminfo virtualedit visualbell vop wa wak warn wb wc wcm wd weirdinvert wfh wfw wh whichwrap wi wig wildchar wildcharm wildignore wildmenu wildmode wildoptions wim winaltkeys window winfixheight winfixwidth winheight winminheight winminwidth winwidth wiv wiw wm wmh wmnu wmw wop wrap wrapmargin wrapscan write writeany writebackup writedelay ws ww " vimOptions: These are the turn-off setting variants {{{2 -syn keyword vimOption contained noacd noai noakm noallowrevins noaltkeymap noanti noantialias noar noarab noarabic noarabicshape noari noarshape noautochdir noautoindent noautoread noautowrite noautowriteall noaw noawa nobackup noballooneval nobeval nobin nobinary nobiosk nobioskey nobk nobl nobomb nobuflisted nocf noci nocin nocindent nocompatible noconfirm noconsk noconskey nocopyindent nocp nocscopetag nocscopeverbose nocst nocsverb nocuc nocul nocursorcolumn nocursorline nodeco nodelcombine nodg nodiff nodigraph nodisable noea noeb noed noedcompatible noek noendofline noeol noequalalways noerrorbells noesckeys noet noex noexpandtab noexrc nofen nofk nofkmap nofoldenable nogd nogdefault noguipty nohid nohidden nohk nohkmap nohkmapp nohkp nohls nohlsearch noic noicon noignorecase noim noimc noimcmdline noimd noincsearch noinf noinfercase noinsertmode nois nojoinspaces nojs nolazyredraw nolbr nolinebreak nolisp nolist noloadplugins nolpl nolz noma nomagic nomh noml nomod nomodeline nomodifiable nomodified nomore nomousef nomousefocus nomousehide nonu nonumber nopaste nopi nopreserveindent nopreviewwindow noprompt nopvw noreadonly noremap norestorescreen norevins nori norightleft norightleftcmd norl norlc noro nors noru noruler nosb nosc noscb noscrollbind noscs nosecure nosft noshellslash noshelltemp noshiftround noshortname noshowcmd noshowfulltag noshowmatch noshowmode nosi nosm nosmartcase nosmartindent nosmarttab nosmd nosn nosol nospell nosplitbelow nosplitright nospr nosr nossl nosta nostartofline nostmp noswapfile noswf nota notagbsearch notagrelative notagstack notbi notbidi notbs notermbidi noterse notextauto notextmode notf notgst notildeop notimeout notitle noto notop notr nottimeout nottybuiltin nottyfast notx novb novisualbell nowa nowarn nowb noweirdinvert nowfh nowildmenu nowinfixheight nowiv nowmnu nowrap nowrapscan nowrite nowriteany nowritebackup nows +syn keyword vimOption contained noacd noai noakm noallowrevins noaltkeymap noanti noantialias noar noarab noarabic noarabicshape noari noarshape noautochdir noautoindent noautoread noautowrite noautowriteall noaw noawa nobackup noballooneval nobeval nobin nobinary nobiosk nobioskey nobk nobl nobomb nobuflisted nocf noci nocin nocindent nocompatible noconfirm noconsk noconskey nocopyindent nocp nocscopetag nocscopeverbose nocst nocsverb nocuc nocul nocursorcolumn nocursorline nodeco nodelcombine nodg nodiff nodigraph nodisable noea noeb noed noedcompatible noek noendofline noeol noequalalways noerrorbells noesckeys noet noex noexpandtab noexrc nofen nofk nofkmap nofoldenable nogd nogdefault noguipty nohid nohidden nohk nohkmap nohkmapp nohkp nohls nohlsearch noic noicon noignorecase noim noimc noimcmdline noimd noincsearch noinf noinfercase noinsertmode nois nojoinspaces nojs nolazyredraw nolbr nolinebreak nolisp nolist noloadplugins nolpl nolz noma nomagic nomh noml nomod nomodeline nomodifiable nomodified nomore nomousef nomousefocus nomousehide nonu nonumber nopaste nopi nopreserveindent nopreviewwindow noprompt nopvw noreadonly noremap norestorescreen norevins nori norightleft norightleftcmd norl norlc noro nors noru noruler nosb nosc noscb noscrollbind noscs nosecure nosft noshellslash noshelltemp noshiftround noshortname noshowcmd noshowfulltag noshowmatch noshowmode nosi nosm nosmartcase nosmartindent nosmarttab nosmd nosn nosol nospell nosplitbelow nosplitright nospr nosr nossl nosta nostartofline nostmp noswapfile noswf nota notagbsearch notagrelative notagstack notbi notbidi notbs notermbidi noterse notextauto notextmode notf notgst notildeop notimeout notitle noto notop notr nottimeout nottybuiltin nottyfast notx novb novisualbell nowa nowarn nowb noweirdinvert nowfh nowfw nowildmenu nowinfixheight nowinfixwidth nowiv nowmnu nowrap nowrapscan nowrite nowriteany nowritebackup nows " vimOptions: These are the invertible variants {{{2 -syn keyword vimOption contained invacd invai invakm invallowrevins invaltkeymap invanti invantialias invar invarab invarabic invarabicshape invari invarshape invautochdir invautoindent invautoread invautowrite invautowriteall invaw invawa invbackup invballooneval invbeval invbin invbinary invbiosk invbioskey invbk invbl invbomb invbuflisted invcf invci invcin invcindent invcompatible invconfirm invconsk invconskey invcopyindent invcp invcscopetag invcscopeverbose invcst invcsverb invcuc invcul invcursorcolumn invcursorline invdeco invdelcombine invdg invdiff invdigraph invdisable invea inveb inved invedcompatible invek invendofline inveol invequalalways inverrorbells invesckeys invet invex invexpandtab invexrc invfen invfk invfkmap invfoldenable invgd invgdefault invguipty invhid invhidden invhk invhkmap invhkmapp invhkp invhls invhlsearch invic invicon invignorecase invim invimc invimcmdline invimd invincsearch invinf invinfercase invinsertmode invis invjoinspaces invjs invlazyredraw invlbr invlinebreak invlisp invlist invloadplugins invlpl invlz invma invmagic invmh invml invmod invmodeline invmodifiable invmodified invmore invmousef invmousefocus invmousehide invnu invnumber invpaste invpi invpreserveindent invpreviewwindow invprompt invpvw invreadonly invremap invrestorescreen invrevins invri invrightleft invrightleftcmd invrl invrlc invro invrs invru invruler invsb invsc invscb invscrollbind invscs invsecure invsft invshellslash invshelltemp invshiftround invshortname invshowcmd invshowfulltag invshowmatch invshowmode invsi invsm invsmartcase invsmartindent invsmarttab invsmd invsn invsol invspell invsplitbelow invsplitright invspr invsr invssl invsta invstartofline invstmp invswapfile invswf invta invtagbsearch invtagrelative invtagstack invtbi invtbidi invtbs invtermbidi invterse invtextauto invtextmode invtf invtgst invtildeop invtimeout invtitle invto invtop invtr invttimeout invttybuiltin invttyfast invtx invvb invvisualbell invwa invwarn invwb invweirdinvert invwfh invwildmenu invwinfixheight invwiv invwmnu invwrap invwrapscan invwrite invwriteany invwritebackup invws +syn keyword vimOption contained invacd invai invakm invallowrevins invaltkeymap invanti invantialias invar invarab invarabic invarabicshape invari invarshape invautochdir invautoindent invautoread invautowrite invautowriteall invaw invawa invbackup invballooneval invbeval invbin invbinary invbiosk invbioskey invbk invbl invbomb invbuflisted invcf invci invcin invcindent invcompatible invconfirm invconsk invconskey invcopyindent invcp invcscopetag invcscopeverbose invcst invcsverb invcuc invcul invcursorcolumn invcursorline invdeco invdelcombine invdg invdiff invdigraph invdisable invea inveb inved invedcompatible invek invendofline inveol invequalalways inverrorbells invesckeys invet invex invexpandtab invexrc invfen invfk invfkmap invfoldenable invgd invgdefault invguipty invhid invhidden invhk invhkmap invhkmapp invhkp invhls invhlsearch invic invicon invignorecase invim invimc invimcmdline invimd invincsearch invinf invinfercase invinsertmode invis invjoinspaces invjs invlazyredraw invlbr invlinebreak invlisp invlist invloadplugins invlpl invlz invma invmagic invmh invml invmod invmodeline invmodifiable invmodified invmore invmousef invmousefocus invmousehide invnu invnumber invpaste invpi invpreserveindent invpreviewwindow invprompt invpvw invreadonly invremap invrestorescreen invrevins invri invrightleft invrightleftcmd invrl invrlc invro invrs invru invruler invsb invsc invscb invscrollbind invscs invsecure invsft invshellslash invshelltemp invshiftround invshortname invshowcmd invshowfulltag invshowmatch invshowmode invsi invsm invsmartcase invsmartindent invsmarttab invsmd invsn invsol invspell invsplitbelow invsplitright invspr invsr invssl invsta invstartofline invstmp invswapfile invswf invta invtagbsearch invtagrelative invtagstack invtbi invtbidi invtbs invtermbidi invterse invtextauto invtextmode invtf invtgst invtildeop invtimeout invtitle invto invtop invtr invttimeout invttybuiltin invttyfast invtx invvb invvisualbell invwa invwarn invwb invweirdinvert invwfh invwfw invwildmenu invwinfixheight invwinfixwidth invwiv invwmnu invwrap invwrapscan invwrite invwriteany invwritebackup invws " termcap codes (which can also be set) {{{2 syn keyword vimOption contained t_AB t_AF t_al t_AL t_bc t_cd t_ce t_Ce t_cl t_cm t_Co t_cs t_Cs t_CS t_CV t_da t_db t_dl t_DL t_EI end insert mode (block cursor shape) *t_EI* *'t_EI'* t_F1 t_F2 t_F3 t_F4 t_F5 t_F6 t_F7 t_F8 t_F9 t_fs t_IE t_IS t_k1 t_K1 t_k2 t_k3 t_K3 t_k4 t_K4 t_k5 t_K5 t_k6 t_K6 t_k7 t_K7 t_k8 t_K8 t_k9 t_K9 t_KA t_kb t_kB t_KB t_KC t_kd t_kD t_KD t_ke t_KE t_KF t_KG t_kh t_KH t_kI t_KI t_KJ t_KK t_kl t_KL t_kN t_kP t_kr t_ks t_ku t_le t_mb t_md t_me t_mr t_ms t_nd t_op t_RI t_RV t_Sb t_se t_Sf t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'* t_so t_sr t_te t_ti t_ts t_ue t_us t_ut t_vb t_ve t_vi t_vs t_WP t_WS t_xs t_ZH t_ZR @@ -55,7 +55,7 @@ syn match vimHLGroup contained "Conceal" syn case match " Function Names {{{2 -syn keyword vimFuncName contained add append argc argidx argv browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call char2nr cindent col complete complete_add complete_check confirm copy count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists expand expr8 extend filereadable filewritable filter finddir findfile fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getpos getqflist getreg getregtype getwinposx getwinposy getwinvar glob globpath has has_key hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime map maparg mapcheck match matchend matchlist matchstr max min mkdir mode nextnonblank nr2char prevnonblank printf pumvisible range readfile remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setpos setqflist setreg setwinvar simplify sort soundfold spellbadword spellsuggest split strftime stridx string strlen strpart strridx strtrans submatch substitute synID synIDattr synIDtrans system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tempname tolower toupper tr type values virtcol visualmode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile +syn keyword vimFuncName contained add append argc argidx argv browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call changenr char2nr cindent col complete complete_add complete_check confirm copy count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists expand expr8 extend filereadable filewritable filter finddir findfile fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getpos getqflist getreg getregtype getwinposx getwinposy getwinvar glob globpath has has_key hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime map maparg mapcheck match matchend matchlist matchstr max min mkdir mode nextnonblank nr2char prevnonblank printf pumvisible range readfile remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setpos setqflist setreg setwinvar simplify sort soundfold spellbadword spellsuggest split str2nr strftime stridx string strlen strpart strridx strtrans submatch substitute synID synIDattr synIDtrans system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tempname tolower toupper tr type values virtcol visualmode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile "--- syntax above generated by mkvimvim --- " Special Vim Highlighting (not automatic) {{{1 diff --git a/src/buffer.c b/src/buffer.c index 7e848f6ff..37238636b 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1689,6 +1689,9 @@ free_buf_options(buf, free_p_ff) clear_string_option(&buf->b_p_inde); clear_string_option(&buf->b_p_indk); #endif +#if defined(FEAT_BEVAL) && defined(FEAT_EVAL) + clear_string_option(&buf->b_p_bexpr); +#endif #if defined(FEAT_EVAL) clear_string_option(&buf->b_p_fex); #endif diff --git a/src/ex_docmd.c b/src/ex_docmd.c index cfb55df7e..dbab4e2d0 100644 --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -900,7 +900,7 @@ do_cmdline(cmdline, getline, cookie, flags) if (getline_is_func) { # ifdef FEAT_PROFILE - if (do_profiling) + if (do_profiling == PROF_YES) func_line_end(real_cookie); # endif if (func_has_ended(real_cookie)) @@ -910,7 +910,7 @@ do_cmdline(cmdline, getline, cookie, flags) } } #ifdef FEAT_PROFILE - else if (do_profiling + else if (do_profiling == PROF_YES && getline_equal(getline, cookie, getsourceline)) script_line_end(); #endif @@ -947,7 +947,7 @@ do_cmdline(cmdline, getline, cookie, flags) *dbg_tick = debug_tick; } # ifdef FEAT_PROFILE - if (do_profiling) + if (do_profiling == PROF_YES) { if (getline_is_func) func_line_start(real_cookie); @@ -1912,7 +1912,7 @@ do_one_cmd(cmdlinep, sourcing, #ifdef FEAT_EVAL # ifdef FEAT_PROFILE /* Count this line for profiling if ea.skip is FALSE. */ - if (do_profiling && !ea.skip) + if (do_profiling == PROF_YES && !ea.skip) { if (getline_equal(getline, cookie, get_func_line)) func_line_exec(getline_cookie(getline, cookie)); @@ -5633,21 +5633,22 @@ uc_check_code(code, len, buf, cmd, eap, split_buf, split_len) l -= 2; } - if (l < 1) + ++l; + if (l <= 1) type = ct_NONE; - else if (STRNICMP(p, "args", l) == 0) + else if (STRNICMP(p, "args>", l) == 0) type = ct_ARGS; - else if (STRNICMP(p, "bang", l) == 0) + else if (STRNICMP(p, "bang>", l) == 0) type = ct_BANG; - else if (STRNICMP(p, "count", l) == 0) + else if (STRNICMP(p, "count>", l) == 0) type = ct_COUNT; - else if (STRNICMP(p, "line1", l) == 0) + else if (STRNICMP(p, "line1>", l) == 0) type = ct_LINE1; - else if (STRNICMP(p, "line2", l) == 0) + else if (STRNICMP(p, "line2>", l) == 0) type = ct_LINE2; - else if (STRNICMP(p, "lt", l) == 0) + else if (STRNICMP(p, "lt>", l) == 0) type = ct_LT; - else if (STRNICMP(p, "register", l) == 0) + else if (STRNICMP(p, "reg>", l) == 0 || STRNICMP(p, "register>", l) == 0) type = ct_REGISTER; switch (type) diff --git a/src/fileio.c b/src/fileio.c index 5dd502c82..a5fdfb71d 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -8518,7 +8518,7 @@ apply_autocmds_group(event, fname, fname_io, force, group, buf, eap) save_current_SID = current_SID; # ifdef FEAT_PROFILE - if (do_profiling) + if (do_profiling == PROF_YES) prof_child_enter(&wait_time); /* doesn't count for the caller itself */ # endif @@ -8614,7 +8614,7 @@ apply_autocmds_group(event, fname, fname_io, force, group, buf, eap) current_SID = save_current_SID; restore_funccal(save_funccalp); # ifdef FEAT_PROFILE - if (do_profiling) + if (do_profiling == PROF_YES) prof_child_exit(&wait_time); # endif #endif diff --git a/src/getchar.c b/src/getchar.c index 9810ed4b9..e941f94b3 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -63,7 +63,7 @@ static int block_redo = FALSE; * Returns a value between 0 and 255, index in maphash. * Put Normal/Visual mode mappings mostly separately from Insert/Cmdline mode. */ -#define MAP_HASH(mode, c1) (((mode) & (NORMAL + VISUAL + OP_PENDING)) ? (c1) : ((c1) ^ 0x80)) +#define MAP_HASH(mode, c1) (((mode) & (NORMAL + VISUAL + SELECTMODE + OP_PENDING)) ? (c1) : ((c1) ^ 0x80)) /* * Each mapping is put in one of the 256 hash lists, to speed up finding it. @@ -2236,12 +2236,13 @@ vgetorpeek(advance) { # ifdef FEAT_VISUAL /* - * In Select mode, a Visual mode menu is - * used. Switch to Visual mode + * In Select mode and a Visual mode menu + * is used: Switch to Visual mode * temporarily. Append K_SELECT to switch * back to Select mode. */ - if (VIsual_active && VIsual_select) + if (VIsual_active && VIsual_select + && (current_menu->modes & VISUAL)) { VIsual_select = FALSE; (void)ins_typebuf(K_SELECT_STRING, @@ -2297,11 +2298,12 @@ vgetorpeek(advance) #ifdef FEAT_VISUAL /* - * In Select mode, a Visual mode mapping is used. + * In Select mode and a Visual mode mapping is used: * Switch to Visual mode temporarily. Append K_SELECT * to switch back to Select mode. */ - if (VIsual_active && VIsual_select) + if (VIsual_active && VIsual_select + && (mp->m_mode & VISUAL)) { VIsual_select = FALSE; (void)ins_typebuf(K_SELECT_STRING, REMAP_NONE, @@ -2926,13 +2928,15 @@ input_available() * arg is pointer to any arguments. Note: arg cannot be a read-only string, * it will be modified. * - * for :map mode is NORMAL + VISUAL + OP_PENDING + * for :map mode is NORMAL + VISUAL + SELECTMODE + OP_PENDING * for :map! mode is INSERT + CMDLINE * for :cmap mode is CMDLINE * for :imap mode is INSERT * for :lmap mode is LANGMAP * for :nmap mode is NORMAL - * for :vmap mode is VISUAL + * for :vmap mode is VISUAL + SELECTMODE + * for :xmap mode is VISUAL + * for :smap mode is SELECTMODE * for :omap mode is OP_PENDING * * for :abbr mode is INSERT + CMDLINE @@ -3524,7 +3528,11 @@ get_map_mode(cmdp, forceit) else if (modec == 'n' && *p != 'o') /* avoid :noremap */ mode = NORMAL; /* :nmap */ else if (modec == 'v') - mode = VISUAL; /* :vmap */ + mode = VISUAL + SELECTMODE; /* :vmap */ + else if (modec == 'x') + mode = VISUAL; /* :xmap */ + else if (modec == 's') + mode = SELECTMODE; /* :smap */ else if (modec == 'o') mode = OP_PENDING; /* :omap */ else @@ -3533,7 +3541,7 @@ get_map_mode(cmdp, forceit) if (forceit) mode = INSERT + CMDLINE; /* :map ! */ else - mode = VISUAL + NORMAL + OP_PENDING;/* :map */ + mode = VISUAL + SELECTMODE + NORMAL + OP_PENDING;/* :map */ } *cmdp = p; @@ -3668,8 +3676,8 @@ showmap(mp, local) msg_putchar('l'); /* :lmap */ else if (mp->m_mode & CMDLINE) msg_putchar('c'); /* :cmap */ - else if ((mp->m_mode & (NORMAL + VISUAL + OP_PENDING)) - == NORMAL + VISUAL + OP_PENDING) + else if ((mp->m_mode & (NORMAL + VISUAL + SELECTMODE + OP_PENDING)) + == NORMAL + VISUAL + SELECTMODE + OP_PENDING) msg_putchar(' '); /* :map */ else { @@ -3684,11 +3692,24 @@ showmap(mp, local) msg_putchar('o'); /* :omap */ ++len; } - if (mp->m_mode & VISUAL) + if ((mp->m_mode & (VISUAL + SELECTMODE)) == VISUAL + SELECTMODE) { msg_putchar('v'); /* :vmap */ ++len; } + else + { + if (mp->m_mode & VISUAL) + { + msg_putchar('x'); /* :xmap */ + ++len; + } + if (mp->m_mode & SELECTMODE) + { + msg_putchar('s'); /* :smap */ + ++len; + } + } } while (++len <= 3) msg_putchar(' '); @@ -3749,7 +3770,11 @@ map_to_exists(str, modechars, abbr) if (vim_strchr(modechars, 'n') != NULL) mode |= NORMAL; if (vim_strchr(modechars, 'v') != NULL) + mode |= VISUAL + SELECTMODE; + if (vim_strchr(modechars, 'x') != NULL) mode |= VISUAL; + if (vim_strchr(modechars, 's') != NULL) + mode |= SELECTMODE; if (vim_strchr(modechars, 'o') != NULL) mode |= OP_PENDING; if (vim_strchr(modechars, 'i') != NULL) @@ -3857,7 +3882,7 @@ set_context_in_map_cmd(xp, cmd, arg, forceit, isabbrev, isunmap, cmdidx) { expand_mapmodes = INSERT + CMDLINE; if (!isabbrev) - expand_mapmodes += VISUAL + NORMAL + OP_PENDING; + expand_mapmodes += VISUAL + SELECTMODE + NORMAL + OP_PENDING; } expand_isabbrev = isabbrev; xp->xp_context = EXPAND_MAPPINGS; @@ -4310,22 +4335,28 @@ makemap(fd, buf) cmd = "map"; switch (mp->m_mode) { - case NORMAL + VISUAL + OP_PENDING: + case NORMAL + VISUAL + SELECTMODE + OP_PENDING: break; case NORMAL: c1 = 'n'; break; - case VISUAL: + case VISUAL + SELECTMODE: c1 = 'v'; break; + case VISUAL: + c1 = 'x'; + break; + case SELECTMODE: + c1 = 's'; + break; case OP_PENDING: c1 = 'o'; break; - case NORMAL + VISUAL: + case NORMAL + VISUAL + SELECTMODE: c1 = 'n'; c2 = 'v'; break; - case VISUAL + OP_PENDING: + case VISUAL + SELECTMODE + OP_PENDING: c1 = 'v'; c2 = 'o'; break; @@ -4697,6 +4728,9 @@ check_map(keys, mode, exact, ign_mod, abbr) #endif #if defined(MSDOS) || defined(MSWIN) || defined(OS2) || defined(MACOS) + +#define VIS_SEL (VISUAL+SELECTMODE) /* abbreviation */ + /* * Default mappings for some often used keys. */ @@ -4709,58 +4743,58 @@ static struct initmap #if defined(MSDOS) || defined(MSWIN) || defined(OS2) /* Use the Windows (CUA) keybindings. */ # ifdef FEAT_GUI - {(char_u *)"<C-PageUp> H", NORMAL+VISUAL}, + {(char_u *)"<C-PageUp> H", NORMAL+VIS_SEL}, {(char_u *)"<C-PageUp> <C-O>H",INSERT}, - {(char_u *)"<C-PageDown> L$", NORMAL+VISUAL}, + {(char_u *)"<C-PageDown> L$", NORMAL+VIS_SEL}, {(char_u *)"<C-PageDown> <C-O>L<C-O>$", INSERT}, /* paste, copy and cut */ {(char_u *)"<S-Insert> \"*P", NORMAL}, - {(char_u *)"<S-Insert> \"-d\"*P", VISUAL}, + {(char_u *)"<S-Insert> \"-d\"*P", VIS_SEL}, {(char_u *)"<S-Insert> <C-R><C-O>*", INSERT+CMDLINE}, - {(char_u *)"<C-Insert> \"*y", VISUAL}, - {(char_u *)"<S-Del> \"*d", VISUAL}, - {(char_u *)"<C-Del> \"*d", VISUAL}, - {(char_u *)"<C-X> \"*d", VISUAL}, + {(char_u *)"<C-Insert> \"*y", VIS_SEL}, + {(char_u *)"<S-Del> \"*d", VIS_SEL}, + {(char_u *)"<C-Del> \"*d", VIS_SEL}, + {(char_u *)"<C-X> \"*d", VIS_SEL}, /* Missing: CTRL-C (cancel) and CTRL-V (block selection) */ # else - {(char_u *)"\316\204 H", NORMAL+VISUAL}, /* CTRL-PageUp is "H" */ + {(char_u *)"\316\204 H", NORMAL+VIS_SEL}, /* CTRL-PageUp is "H" */ {(char_u *)"\316\204 \017H",INSERT}, /* CTRL-PageUp is "^OH"*/ - {(char_u *)"\316v L$", NORMAL+VISUAL}, /* CTRL-PageDown is "L$" */ + {(char_u *)"\316v L$", NORMAL+VIS_SEL}, /* CTRL-PageDown is "L$" */ {(char_u *)"\316v \017L\017$", INSERT}, /* CTRL-PageDown ="^OL^O$"*/ - {(char_u *)"\316w <C-Home>", NORMAL+VISUAL}, + {(char_u *)"\316w <C-Home>", NORMAL+VIS_SEL}, {(char_u *)"\316w <C-Home>", INSERT+CMDLINE}, - {(char_u *)"\316u <C-End>", NORMAL+VISUAL}, + {(char_u *)"\316u <C-End>", NORMAL+VIS_SEL}, {(char_u *)"\316u <C-End>", INSERT+CMDLINE}, /* paste, copy and cut */ # ifdef FEAT_CLIPBOARD # ifdef DJGPP {(char_u *)"\316\122 \"*P", NORMAL}, /* SHIFT-Insert is "*P */ - {(char_u *)"\316\122 \"-d\"*P", VISUAL}, /* SHIFT-Insert is "-d"*P */ + {(char_u *)"\316\122 \"-d\"*P", VIS_SEL}, /* SHIFT-Insert is "-d"*P */ {(char_u *)"\316\122 \022\017*", INSERT}, /* SHIFT-Insert is ^R^O* */ - {(char_u *)"\316\222 \"*y", VISUAL}, /* CTRL-Insert is "*y */ + {(char_u *)"\316\222 \"*y", VIS_SEL}, /* CTRL-Insert is "*y */ # if 0 /* Shift-Del produces the same code as Del */ - {(char_u *)"\316\123 \"*d", VISUAL}, /* SHIFT-Del is "*d */ + {(char_u *)"\316\123 \"*d", VIS_SEL}, /* SHIFT-Del is "*d */ # endif - {(char_u *)"\316\223 \"*d", VISUAL}, /* CTRL-Del is "*d */ - {(char_u *)"\030 \"-d", VISUAL}, /* CTRL-X is "-d */ + {(char_u *)"\316\223 \"*d", VIS_SEL}, /* CTRL-Del is "*d */ + {(char_u *)"\030 \"-d", VIS_SEL}, /* CTRL-X is "-d */ # else {(char_u *)"\316\324 \"*P", NORMAL}, /* SHIFT-Insert is "*P */ - {(char_u *)"\316\324 \"-d\"*P", VISUAL}, /* SHIFT-Insert is "-d"*P */ + {(char_u *)"\316\324 \"-d\"*P", VIS_SEL}, /* SHIFT-Insert is "-d"*P */ {(char_u *)"\316\324 \022\017*", INSERT}, /* SHIFT-Insert is ^R^O* */ - {(char_u *)"\316\325 \"*y", VISUAL}, /* CTRL-Insert is "*y */ - {(char_u *)"\316\327 \"*d", VISUAL}, /* SHIFT-Del is "*d */ - {(char_u *)"\316\330 \"*d", VISUAL}, /* CTRL-Del is "*d */ - {(char_u *)"\030 \"-d", VISUAL}, /* CTRL-X is "-d */ + {(char_u *)"\316\325 \"*y", VIS_SEL}, /* CTRL-Insert is "*y */ + {(char_u *)"\316\327 \"*d", VIS_SEL}, /* SHIFT-Del is "*d */ + {(char_u *)"\316\330 \"*d", VIS_SEL}, /* CTRL-Del is "*d */ + {(char_u *)"\030 \"-d", VIS_SEL}, /* CTRL-X is "-d */ # endif # else {(char_u *)"\316\324 P", NORMAL}, /* SHIFT-Insert is P */ - {(char_u *)"\316\324 \"-dP", VISUAL}, /* SHIFT-Insert is "-dP */ + {(char_u *)"\316\324 \"-dP", VIS_SEL}, /* SHIFT-Insert is "-dP */ {(char_u *)"\316\324 \022\017\"", INSERT}, /* SHIFT-Insert is ^R^O" */ - {(char_u *)"\316\325 y", VISUAL}, /* CTRL-Insert is y */ - {(char_u *)"\316\327 d", VISUAL}, /* SHIFT-Del is d */ - {(char_u *)"\316\330 d", VISUAL}, /* CTRL-Del is d */ + {(char_u *)"\316\325 y", VIS_SEL}, /* CTRL-Insert is y */ + {(char_u *)"\316\327 d", VIS_SEL}, /* SHIFT-Del is d */ + {(char_u *)"\316\330 d", VIS_SEL}, /* CTRL-Del is d */ # endif # endif #endif @@ -4769,13 +4803,15 @@ static struct initmap /* Use the Standard MacOS binding. */ /* paste, copy and cut */ {(char_u *)"<D-v> \"*P", NORMAL}, - {(char_u *)"<D-v> \"-d\"*P", VISUAL}, + {(char_u *)"<D-v> \"-d\"*P", VIS_SEL}, {(char_u *)"<D-v> <C-R>*", INSERT+CMDLINE}, - {(char_u *)"<D-c> \"*y", VISUAL}, - {(char_u *)"<D-x> \"*d", VISUAL}, - {(char_u *)"<Backspace> \"-d", VISUAL}, + {(char_u *)"<D-c> \"*y", VIS_SEL}, + {(char_u *)"<D-x> \"*d", VIS_SEL}, + {(char_u *)"<Backspace> \"-d", VIS_SEL}, #endif }; + +# undef VIS_SEL #endif /* @@ -2802,6 +2802,7 @@ button_set: case OP_PENDING: case NORMAL: checkfor = MOUSE_NORMAL; break; case VISUAL: checkfor = MOUSE_VISUAL; break; + case SELECTMODE: checkfor = MOUSE_VISUAL; break; case REPLACE: case REPLACE+LANGMAP: #ifdef FEAT_VREPLACE @@ -3077,7 +3078,9 @@ gui_menu_cb(menu) } #endif -static int prev_which_scrollbars[3] = {-1, -1, -1}; +#ifndef FEAT_WINDOWS +static int prev_which_scrollbars[3]; +#endif /* * Set which components are present. @@ -3211,7 +3214,13 @@ gui_init_which_components(oldval) for (i = 0; i < 3; i++) { - if (gui.which_scrollbars[i] != prev_which_scrollbars[i]) + if (gui.which_scrollbars[i] != +#ifdef FEAT_WINDOWS + curtab->tp_prev_which_scrollbars[i] +#else + prev_which_scrollbars[i] +#endif + ) { if (i == SBAR_BOTTOM) gui_mch_enable_scrollbar(&gui.bottom_sbar, @@ -3227,7 +3236,12 @@ gui_init_which_components(oldval) if (gui.which_scrollbars[i]) fix_size = TRUE; } - prev_which_scrollbars[i] = gui.which_scrollbars[i]; +#ifdef FEAT_WINDOWS + curtab->tp_prev_which_scrollbars[i] +#else + prev_which_scrollbars[i] +#endif + = gui.which_scrollbars[i]; } #ifdef FEAT_MENU @@ -3479,7 +3493,7 @@ gui_remove_scrollbars() gui_do_scrollbar(wp, i, FALSE); } } - prev_which_scrollbars[i] = -1; + curtab->tp_prev_which_scrollbars[i] = -1; } } #endif @@ -3673,6 +3687,16 @@ gui_drag_scrollbar(sb, value, still_dragging) /* Value may have been changed for closed fold. */ sb->value = sb->wp->w_topline - 1; # endif + + /* When dragging one scrollbar and there is another one at the other + * side move the thumb of that one too. */ + if (gui.which_scrollbars[SBAR_RIGHT] && gui.which_scrollbars[SBAR_LEFT]) + gui_mch_set_scrollbar_thumb( + &sb->wp->w_scrollbars[ + sb == &sb->wp->w_scrollbars[SBAR_RIGHT] + ? SBAR_LEFT : SBAR_RIGHT], + sb->value, sb->size, sb->max); + #else bytes[0] = CSI; bytes[1] = KS_VER_SCROLLBAR; @@ -596,6 +596,7 @@ extern char *(*dyn_libintl_textdomain)(const char *domainname); #define EXTERNCMD 0x600 /* executing an external command */ #define SHOWMATCH (0x700 + INSERT) /* show matching paren */ #define CONFIRM 0x800 /* ":confirm" prompt */ +#define SELECTMODE 0x1000 /* Select mode, only for mappings */ /* directions */ #define FORWARD 1 @@ -1523,6 +1524,11 @@ int vim_memcmp __ARGS((void *, void *, size_t)); #include "structs.h" /* file that defines many structures */ +/* Values for "do_profiling". */ +#define PROF_NONE 0 /* profiling not started */ +#define PROF_YES 1 /* profiling busy */ +#define PROF_PAUSED 2 /* profiling paused */ + #ifdef FEAT_MOUSE /* Codes for mouse button events in lower three bits: */ @@ -1974,4 +1980,5 @@ typedef int proftime_T; /* dummy for function prototypes */ #define BAD_KEEP -1 /* leave it */ #define BAD_DROP -2 /* erase it */ + #endif /* VIM__H */ diff --git a/src/window.c b/src/window.c index c45022191..c37ec6769 100644 --- a/src/window.c +++ b/src/window.c @@ -3113,6 +3113,12 @@ alloc_tabpage() tp = (tabpage_T *)alloc_clear((unsigned)sizeof(tabpage_T)); if (tp != NULL) { +# ifdef FEAT_GUI + int i; + + for (i = 0; i < 3; i++) + tp->tp_prev_which_scrollbars[i] = -1; +# endif # ifdef FEAT_DIFF tp->tp_diff_invalid = TRUE; # endif @@ -3395,7 +3401,10 @@ enter_tabpage(tp, old_curbuf) /* When 'guioptions' includes 'L' or 'R' may have to remove or add * scrollbars. Have to update them anyway. */ if (gui.in_use && starting == 0) + { + gui_init_which_components(NULL); gui_update_scrollbars(TRUE); + } need_mouse_correct = TRUE; #endif |