diff options
author | Bram Moolenaar <Bram@vim.org> | 2010-05-22 15:37:44 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2010-05-22 15:37:44 +0200 |
commit | 06b5d5167a01c9fbf9661fb0c03bbd0a77cecae6 (patch) | |
tree | 4e4054360a178c58b1fb4e48bb51955f984a6b66 | |
parent | db7c686ea58323f8e8550dea287eac7ea4964a55 (diff) | |
download | vim-git-06b5d5167a01c9fbf9661fb0c03bbd0a77cecae6.tar.gz |
Add the settabvar() and gettabvar() functions.
Various runtime file updates.
32 files changed, 301 insertions, 153 deletions
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt index 0aad840f7..35dd9265a 100644 --- a/runtime/doc/change.txt +++ b/runtime/doc/change.txt @@ -1139,7 +1139,7 @@ characters. If the String ends in a <NL>, it is regarded as a linewise register. {not in Vi} 7. Selection and drop registers "*, "+ and "~ -Use these register for storing and retrieving the selected text for the GUI. +Use these registers for storing and retrieving the selected text for the GUI. See |quotestar| and |quoteplus|. When the clipboard is not available or not working, the unnamed register is used instead. For Unix systems the clipboard is only available when the |+xterm_clipboard| feature is present. {not in Vi} diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt index b189f9b35..667c5da97 100644 --- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -1767,6 +1767,7 @@ getpos( {expr}) List position of cursor, mark, etc. getqflist() List list of quickfix items getreg( [{regname} [, 1]]) String contents of register getregtype( [{regname}]) String type of register +gettabvar( {nr}, {varname}) any variable {varname} in tab {nr} gettabwinvar( {tabnr}, {winnr}, {name}) any {name} in {winnr} in tab page {tabnr} getwinposx() Number X coord in pixels of GUI Vim window @@ -1886,6 +1887,7 @@ 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} @@ -3354,6 +3356,12 @@ getregtype([{regname}]) *getregtype()* <CTRL-V> is one character with value 0x16. If {regname} is not specified, |v:register| is used. +gettabvar({tabnr}, {varname}) *gettabvar()* + Get the value of a tab-local variable {varname} in tab page + {tabnr}. |t:var| + Tabs are numbered starting with one. + Note that the name without "t:" must be used. + gettabwinvar({tabnr}, {winnr}, {varname}) *gettabwinvar()* Get the value of window-local variable {varname} in window {winnr} in tab page {tabnr}. @@ -5103,6 +5111,15 @@ setreg({regname}, {value} [,{options}]) nothing: > :call setreg('a', '', 'al') +settabvar({tabnr}, {varname}, {val}) *settabvar()* + Set tab-local variable {varname} to {val} in tab page {tabnr}. + |t:var| + Note that the variable name without "t:" must be used. + Tabs are numbered starting with one. + Vim briefly goes to the tab page {tabnr}, this may trigger + TabLeave and TabEnter autocommands. + This function is not available in the |sandbox|. + settabwinvar({tabnr}, {winnr}, {varname}, {val}) *settabwinvar()* Set option or local variable {varname} in window {winnr} to {val}. diff --git a/runtime/doc/ft_sql.txt b/runtime/doc/ft_sql.txt index fe3ceba71..e58c0afac 100644 --- a/runtime/doc/ft_sql.txt +++ b/runtime/doc/ft_sql.txt @@ -536,7 +536,7 @@ Example of using column completion: completion window is active. If the completion popup window is not active, a normal <Right> or <Left> will be executed. -Lets look how we can build a SQL statement dynamically. A select statement +Let's look at how we can build a SQL statement dynamically. A select statement requires a list of columns. There are two ways to build a column list using the SQL completion plugin. > One column at a time: @@ -738,8 +738,8 @@ platform you can also use <C-Space> or ALT keys. Many times SQL can be used with different filetypes. For example Perl, Java, PHP, Javascript can all interact with a database. Often you need both the SQL -completion as well as the completion capabilities for the current language you -are editing. +completion and the completion capabilities for the current language you are +editing. This can be enabled easily with the following steps (assuming a Perl file): > 1. :e test.pl diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt index 73663e093..925a491b1 100644 --- a/runtime/doc/gui.txt +++ b/runtime/doc/gui.txt @@ -678,7 +678,7 @@ and Photon GUI. It should turn up in other GUIs in due course. The default toolbar is setup in menu.vim. The display of the toolbar is controlled by the 'guioptions' letter 'T'. You can thus have menu & toolbar together, or either on its own, or neither. -The appearance is controlled by the 'toolbar' option. You can chose between +The appearance is controlled by the 'toolbar' option. You can choose between an image, text or both. *toolbar-icon* diff --git a/runtime/doc/gui_x11.txt b/runtime/doc/gui_x11.txt index ca1184cec..596e1f096 100644 --- a/runtime/doc/gui_x11.txt +++ b/runtime/doc/gui_x11.txt @@ -453,8 +453,8 @@ searched for. If all three fail, the GUI will be disabled. For GTK+, Vim's configuration process requires that GTK+ be properly installed. That is, the shell script 'gtk-config' must be in your PATH, and you can already successful compile, build, and execute a GTK+ program. The -reason for this is because the compiler flags (CFLAGS) and link flags -(LDFLAGS) are obtained through the 'gtk-config' shell script. +reason for this is that the compiler flags (CFLAGS) and link flags (LDFLAGS) +are obtained through the 'gtk-config' shell script. If you want to build with GTK+ 2 support pass the --enable-gtk2-check argument to ./configure. Optionally, support for GNOME 2 will be compiled if the diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt index 563c41126..f221fbc9a 100644 --- a/runtime/doc/insert.txt +++ b/runtime/doc/insert.txt @@ -1358,7 +1358,7 @@ Script completes: - function names with additional info: - in case of built-in functions list of possible arguments and after | type data returned by function - - in case of user function arguments and name of file were function was + - in case of user function arguments and name of file where function was defined (if it is not current file) - constants names @@ -1446,8 +1446,8 @@ a look at the PHP filetype to see how this works. If you edit a file called, index.php, run the following command: > :syntax list -First thing you will notice is there are many different syntax groups. The -PHP language can include elements from different languages like HTML, +The first thing you will notice is that there are many different syntax groups. +The PHP language can include elements from different languages like HTML, JavaScript and many more. The syntax plugin will only include syntax groups that begin with the filetype, "php", in this case. For example these syntax groups are included by default with the PHP: phpEnvVar, phpIntVar, diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt index 416cbbd78..13dfc5973 100644 --- a/runtime/doc/mbyte.txt +++ b/runtime/doc/mbyte.txt @@ -753,7 +753,7 @@ Then add a command to your |gvimrc| file to set 'guifont': > X INPUT METHOD (XIM) BACKGROUND *XIM* *xim* *x-input-method* -XIM is an international input module for X. There are two kind of structures, +XIM is an international input module for X. There are two kinds of structures, Xlib unit type and |IM-server| (Input-Method server) type. |IM-server| type is suitable for complex input, such as CJK. @@ -826,7 +826,7 @@ Use the RPM or port for your system. of Preedit Area and Status Area: |OnTheSpot|, |OffTheSpot|, |OverTheSpot| and |Root|. - Currently, GUI Vim support three style, |OverTheSpot|, |OffTheSpot| and + Currently, GUI Vim supports three styles, |OverTheSpot|, |OffTheSpot| and |Root|. *. on-the-spot *OnTheSpot* diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt index 3d5a97062..4d4496558 100644 --- a/runtime/doc/netbeans.txt +++ b/runtime/doc/netbeans.txt @@ -101,7 +101,8 @@ use the |clientserver| interface. ============================================================================== 3. Configuring Vim for NetBeans *netbeans-configure* -For more help installing Vim, please read |usr_90.txt| in the Vim User Manual. +For more help about installing Vim, please read |usr_90.txt| in the Vim User +Manual. On Unix: diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 3493a14bb..a2d2a4a71 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -5292,7 +5292,7 @@ A jump table for the options with a short description can be found at |Q_op|. local to window {not in Vi} Show the line number relative to the line with the cursor in front of - each line. Relative line numbers help you using the |count| you can + each line. Relative line numbers help you use the |count| you can precede some vertical motion commands (e.g. j k + -) with, without having to calculate it yourself. Especially useful in combination with other commands (e.g. y d c < > gq gw =). diff --git a/runtime/doc/os_390.txt b/runtime/doc/os_390.txt index f0c9c44ba..a0a715549 100644 --- a/runtime/doc/os_390.txt +++ b/runtime/doc/os_390.txt @@ -190,7 +190,7 @@ to only work for the opening of menus (like <Alt-F> to open the file menu). They still do not work for the menu items themselves (like <Alt-F>O to open the file browser). -There is no solution for this as of yet. +There is no solution for this yet. ============================================================================== 7. Bugs *OS390-bugs* *zOS-Bugs* diff --git a/runtime/doc/os_os2.txt b/runtime/doc/os_os2.txt index 13fe79312..b262d6d10 100644 --- a/runtime/doc/os_os2.txt +++ b/runtime/doc/os_os2.txt @@ -201,7 +201,7 @@ vim-manner and call: > which will write your selection right into OS/2's clipboard. -For ease of use you might want to add some maps for this commands. E.g. to +For ease of use you might want to add some maps for these commands. E.g. to use F11 to paste the clipboard into Vim and F12 to copy selected text to the clipboard you would use: > diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt index a31ac1541..08482bbd2 100644 --- a/runtime/doc/os_vms.txt +++ b/runtime/doc/os_vms.txt @@ -99,7 +99,7 @@ specific source might contain CTAGS source files as described above. You can find more information about CTAGS on VMS at http://www.polarhome.com/ctags/ -Advanced users may try some acrobatics in FEATURE.H file also. +Advanced users may try some acrobatics in FEATURE.H file as well. It is possible to compile with +xfontset +xim options too, but then you have to set up GUI fonts etc. correctly. See :help xim from Vim command prompt. diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt index 41c6bd685..b57585be2 100644 --- a/runtime/doc/pi_netrw.txt +++ b/runtime/doc/pi_netrw.txt @@ -456,7 +456,7 @@ browsed remote directories, for example. On the other hand, thanks go to Jan M. for pointing out the many vulnerabilities that netrw (and vim itself) had had in handling "crafted" filenames. The |shellescape()| and |fnameescape()| functions were written in -response by Bram Moolenaar to handle these sort of problems, and netrw has +response by Bram Moolenaar to handle this sort of problems, and netrw has been modified to use them. Still, my advice is, if the "filename" looks like a vim command that you aren't comfortable with having executed, don't open it. diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt index 6a9be16ab..db7a82df5 100644 --- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -1260,7 +1260,7 @@ prints information about entering a directory in the form "Making all in dir". This can be solved by printing absolute directories in the "enter directory" message or by printing "leave directory" messages.. -To avoid this problems, ensure to print absolute directory names and "leave +To avoid this problem, ensure to print absolute directory names and "leave directory" messages. Examples for Makefiles: diff --git a/runtime/doc/quotes.txt b/runtime/doc/quotes.txt index 8d8814fa5..67ea2b042 100644 --- a/runtime/doc/quotes.txt +++ b/runtime/doc/quotes.txt @@ -211,7 +211,7 @@ I cannot believe how great it is to use VIM. I think the guys at work are getting tired of hearing me bragging about it. Others eyes are lighting up. (Rick Croote) -Emacs takes way to much time to start up and run, it is to big and bulky for +Emacs takes way too much time to start up and run, it is to big and bulky for effective use and the interface is more confusing than it is of any help. VIM however is short, it is fast, it is powerful, it has a good interface and it is all purpose. (Paal Ditlefsen Ekran) diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt index b4e9e7907..921f12028 100644 --- a/runtime/doc/repeat.txt +++ b/runtime/doc/repeat.txt @@ -217,7 +217,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|. Don't use "ucs-2" or "ucs-4", scripts cannot be in these encodings (they would contain NUL bytes). When a sourced script starts with a BOM (Byte Order - Mark) in utf-8 format Vim will recognized it, no need + Mark) in utf-8 format Vim will recognize it, no need to use ":scriptencoding utf-8" then. When compiled without the |+multi_byte| feature this diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt index f6c0f69d8..f3a6aae93 100644 --- a/runtime/doc/scroll.txt +++ b/runtime/doc/scroll.txt @@ -132,7 +132,7 @@ z. Redraw, line [count] at center of window (default *zz* zz Like "z.", but leave the cursor in the same column. - Careful: If caps-lock is on, this commands becomes + Careful: If caps-lock is on, this command becomes "ZZ": write buffer and exit! {not in Vi} *z-* @@ -193,7 +193,7 @@ ze Scroll the text horizontally to position the cursor 5. Scrolling synchronously *scroll-binding* Occasionally, it is desirable to bind two or more windows together such that -when one window is scrolled, the other windows are scrolled also. In Vim, +when one window is scrolled, the other windows are also scrolled. In Vim, windows can be given this behavior by setting the (window-specific) 'scrollbind' option. When a window that has 'scrollbind' set is scrolled, all other 'scrollbind' windows are scrolled the same amount, if possible. The diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt index 5cf202df1..229fdd602 100644 --- a/runtime/doc/syntax.txt +++ b/runtime/doc/syntax.txt @@ -712,7 +712,7 @@ If you see '{' and '}' highlighted as an error where they are OK, reset the highlighting for cErrInParen and cErrInBracket. If you want to use folding in your C files, you can add these lines in a file -an the "after" directory in 'runtimepath'. For Unix this would be +in the "after" directory in 'runtimepath'. For Unix this would be ~/.vim/after/syntax/c.vim. > syn sync fromstart set foldmethod=syntax @@ -905,7 +905,7 @@ global or buffer-local variable load_doxygen_syntax. This is done by adding the following to your .vimrc. > :let g:load_doxygen_syntax=1 -There are a couple of variables that have an affect on syntax highlighting, and +There are a couple of variables that have an effect on syntax highlighting, and are to do with non-standard highlighting options. Variable Default Effect ~ diff --git a/runtime/doc/tags b/runtime/doc/tags index 6b448e13b..1b051ff41 100644 --- a/runtime/doc/tags +++ b/runtime/doc/tags @@ -5805,6 +5805,7 @@ getscript-data pi_getscript.txt /*getscript-data* getscript-history pi_getscript.txt /*getscript-history* getscript-plugins pi_getscript.txt /*getscript-plugins* getscript-start pi_getscript.txt /*getscript-start* +gettabvar() eval.txt /*gettabvar()* gettabwinvar() eval.txt /*gettabwinvar()* getwinposx() eval.txt /*getwinposx()* getwinposy() eval.txt /*getwinposy()* @@ -7238,6 +7239,7 @@ setmatches() eval.txt /*setmatches()* setpos() eval.txt /*setpos()* setqflist() eval.txt /*setqflist()* setreg() eval.txt /*setreg()* +settabvar() eval.txt /*settabvar()* settabwinvar() eval.txt /*settabwinvar()* setting-guifont gui.txt /*setting-guifont* setting-guitablabel tabpage.txt /*setting-guitablabel* diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt index 2e4268107..f5e1c58e3 100644 --- a/runtime/doc/term.txt +++ b/runtime/doc/term.txt @@ -594,7 +594,7 @@ This section is about using the mouse on a terminal or a terminal window. How to use the mouse in a GUI window is explained in |gui-mouse|. For scrolling with a mouse wheel see |scroll-mouse-wheel|. -Don't forget to enable the mouse with this commands: > +Don't forget to enable the mouse with this command: > :set mouse=a Otherwise Vim won't recognize the mouse in all modes (See 'mouse'). diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt index b24749a7f..cb88657e7 100644 --- a/runtime/doc/todo.txt +++ b/runtime/doc/todo.txt @@ -1082,12 +1082,8 @@ restored. (Luc St-Louis) Vim 7.3: Patches to include: -- gettabvar() and settabvar() functions. (Yegappan Lakshmanan, 2010 May 14) - Patch to support netbeans in Unix console Vim. (Xavier de Gaye, 2009 Apr 26) Now with Mercurial repository (2010 Jan 2) -- More float functions. (Bill McCarthy) - ~/tmp/eval.diff - http://groups.google.com/group/vim_dev/browse_thread/thread/de192817983abb54 - Include conceal patch? http://vince.negri.googlepages.com/ http://vim.wikia.com/wiki/Patch_to_conceal_parts_of_lines @@ -1157,16 +1153,34 @@ Needs some work: - Easier/standard way to disable default plugins. 8 Persistent undo: store undo in a file. Patch by Jordan Lewis, 2009 Feb 20. Repost 2009 Nov 16. + Get tar file from: http://repo.or.cz/w/vim_extended.git/tree/feat/persistent-undo -> disable by default and add remark that it's new and may fail. Testing remarks by Christian Brabandt, 2010 May 1: - doesn't work well with symlinks (Jordan will look into it) - old undo files tend to pile up - :rundo should output a message (Jordan will fix this) + Bugs / fixes: + - Undo file should be stored with the original file by default, the undo + directory doesn't handle remote files or directory renames. + Use same mechanism as for swap files? But only with one file name. + - Read coladd depending on FEAT_VIRTUALEDIT, should always read/write it + - invoke u_wundo() inside buf_write() + - invoke u_rundo() inside readfile() + - Document that ":wundo" and ":rundo" should only be used in autocommands. + - unserialize_pos() does not need a return value + - function comments go before the function, not inside + - u_get_undofile() changes its argument ffname + - make magic four bytes. + - errors need numbers "E000:" + - also put 'enc' in undo file. + - don't use timestamp, "touch file" or dir copy may change it and undo + still works. Older ideas: - Use timestamps, so that a version a certain time ago can be found and info - before some time/date can be flushed. 'undopersist' gives maximum time to - keep undo: "3h", "1d", "2w", "1y", etc. For the file use dot and - extension: ".filename.un~" (like swapfile but "un~" instead of "swp"). + - Use timestamps, so that a version a certain time ago can be found and + info before some time/date can be flushed. 'undopersist' gives maximum + time to keep undo: "3h", "1d", "2w", "1y", etc. For the file use dot + and extension: ".filename.un~" (like swapfile but "un~" instead of + "swp"). - ":{range}source": source the lines from the current file. You can already yank lines and use :@" to execute them. Most of do_source() would not be used, need a new function. @@ -1693,7 +1707,7 @@ MSDOS, OS/2 and Win32: Windows 95: -8 Editing a file by it's short file name and writing it, makes the long file +8 Editing a file by its short file name and writing it, makes the long file name disappear. Setting 'backupcopy' helps. Use FindFirstFile()->cAlternateFileName in fname_case() (George Reilly). 8 Doing wildcard expansion, will match the short filename, but result in the @@ -3134,7 +3148,7 @@ Win32 GUI: gettext and menus work. 8 Could keep console open to run multiple commands, to avoid the need to hit return in every console. - Also: Look at how Emacs does runs external commands: + Also: Look at how Emacs does run external commands: http://www.cs.washington.edu/homes/voelker/ntemacs.html. 8 Need a separate PopUp menu for modeless selection. Need two new commands: Copy selection to clipboard, Paste selection (as typed text). @@ -4675,7 +4689,7 @@ Various improvements: - Amiga: When 'r' protection bit is not set, file can still be opened but gives read errors. Check protection before opening. - When writing check for file exists but no permission, "Permission denied". -- If file does not exists, check if directory exists. +- If file does not exist, check if directory exists. - MSDOS: although t_cv and t_ci are not set, do invert char under cursor. - Settings edit mode: make file with ":set opt=xx", edit it, parse it as ex commands. diff --git a/runtime/doc/usr_04.txt b/runtime/doc/usr_04.txt index b3ba894b5..68467283d 100644 --- a/runtime/doc/usr_04.txt +++ b/runtime/doc/usr_04.txt @@ -498,7 +498,7 @@ else: ~ change case of the character under the cursor, and move the cursor to the next character. This is not an operator (unless 'tildeop' is set), thus you can't use it with a motion - command. It does works in Visual mode and changes case for + command. It does work in Visual mode and changes case for all the selected text then. I Start Insert mode after moving the cursor to the first diff --git a/runtime/doc/usr_22.txt b/runtime/doc/usr_22.txt index 56271ccef..72119c1ea 100644 --- a/runtime/doc/usr_22.txt +++ b/runtime/doc/usr_22.txt @@ -98,7 +98,7 @@ browser. This is what you get: > < (etc) The <F1> key thus brings you to a netrw directory browsing contents help page. -Its a regular help page; use the usual |CTRL-]| to jump to tagged help items +It's a regular help page; use the usual |CTRL-]| to jump to tagged help items and |CTRL-O| to jump back. To select files for display and editing: (with the cursor is atop a filename) @@ -358,7 +358,7 @@ use the name, or part of it, instead: > :buffer help -Vim will find a best match for the name you type. If there is only one +Vim will find the best match for the name you type. If there is only one buffer that matches the name, it will be used. In this case "help.txt". To open a buffer in a new window: > diff --git a/runtime/doc/usr_27.txt b/runtime/doc/usr_27.txt index aa24a265b..1098f44b9 100644 --- a/runtime/doc/usr_27.txt +++ b/runtime/doc/usr_27.txt @@ -77,7 +77,7 @@ matter if 'ignorecase' or 'smartcase' was changed. Note: The use of "\" items in search patterns depends on the 'magic' option. - In this chapters we will assume 'magic' is on, because that is the + In this chapter we will assume 'magic' is on, because that is the standard and recommended setting. If you would change 'magic', many search patterns would suddenly become invalid. diff --git a/runtime/doc/usr_30.txt b/runtime/doc/usr_30.txt index c15cb2080..34210c6f3 100644 --- a/runtime/doc/usr_30.txt +++ b/runtime/doc/usr_30.txt @@ -362,7 +362,7 @@ this: echo "-------" ~ fi ~ -Start off by setting these option: > +Start off by setting these options: > :set autoindent shiftwidth=3 diff --git a/runtime/doc/usr_40.txt b/runtime/doc/usr_40.txt index 1aea1ac59..542a418c4 100644 --- a/runtime/doc/usr_40.txt +++ b/runtime/doc/usr_40.txt @@ -24,8 +24,8 @@ A simple mapping was explained in section |05.3|. The principle is that one sequence of key strokes is translated into another sequence of key strokes. This is a simple, yet powerful mechanism. The simplest form is that one key is mapped to a sequence of keys. Since -the function keys, except <F1>, have no predefined meaning in Vim, these are a -good choice to map. Example: > +the function keys, except <F1>, have no predefined meaning in Vim, these are +good choices to map. Example: > :map <F2> GoDate: <Esc>:read !date<CR>kJ diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt index c14722460..4344fc11f 100644 --- a/runtime/doc/usr_41.txt +++ b/runtime/doc/usr_41.txt @@ -670,8 +670,10 @@ Variables: getbufvar() get a variable value from a specific buffer setbufvar() set a variable in a specific buffer getwinvar() get a variable from specific window + gettabvar() get a variable from specific tab page gettabwinvar() get a variable from specific window & tab page setwinvar() set a variable in a specific window + settabvar() set a variable in a specific tab page settabwinvar() set a variable in a specific window & tab page garbagecollect() possibly free memory @@ -2152,7 +2154,7 @@ FUNCTIONS When defining a function, this only needs to be done once. But the filetype plugin will be sourced every time a file with this filetype will be opened. -This construct make sure the function is only defined once: > +This construct makes sure the function is only defined once: > :if !exists("*s:Func") : function s:Func(arg) diff --git a/runtime/doc/version5.txt b/runtime/doc/version5.txt index 772c3ccac..74e1bfc91 100644 --- a/runtime/doc/version5.txt +++ b/runtime/doc/version5.txt @@ -7149,7 +7149,7 @@ Files: src/gui.c, src/gui.h, src/gui_w32.c Patch 5.6.060 Problem: Some bold characters spill over to the cell on the left, that spill-over can remain sometimes. -Solution: Redraw a characters when the next character was bold and needs +Solution: Redraw a character when the next character was bold and needs redrawing. (Robert Webb) Files: src/screen.c diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt index 4ba7aeea7..609c5e81e 100644 --- a/runtime/doc/version7.txt +++ b/runtime/doc/version7.txt @@ -1243,7 +1243,7 @@ the cursor position. Likewise for "1gD" and "gD". 'scrolljump' can be set to a negative number to scroll a percentage of the window height. -The |v:scrollstart| variable has been added to help finding the location in +The |v:scrollstart| variable has been added to help find the location in your script that causes the hit-enter prompt. To make it possible to handle the situation that a file is being edited that @@ -7166,17 +7166,21 @@ don't save what you see. This could result in work being lost. Now the text after recovery is compared to the original file contents. When they differ the buffer is marked as modified. -Use BASEMODLIBS instead of MODLIBS for Python configuration. (Michael Bienia) - Added *added-7.3* ----- New syntax files: +TODO + +New filetype plugins: +TODO New spell files: +TODO Breton. (Dominique Pelle) + Added the 'relativenumber' option. (Markus Heidelberg) Support for Blowfish encryption. Added the 'cryptmethod' option. @@ -7187,6 +7191,8 @@ Support GDK_SUPER_MASK for GTK on Mac. (Stephan Schulz) More floating point functions: acos(), asin(), atan2(), cosh(), exp(), fmod(), log(), sinh(), tan(), tanh(). (Bill McCarthy) +gettabvar() and settabvar() functions. (Yegappan Lakshmanan) + Fixed *fixed-7.3* ----- @@ -7201,5 +7207,8 @@ using GTK floating point numbers stop working. Use gtk_disable_setlocale(). "g8" didn't produce the right value on a NUL. (Dominique Pelle) +Use BASEMODLIBS instead of MODLIBS for Python configuration to pick up the +right compiler flags. (Michael Bienia) + vim:tw=78:ts=8:ft=help:norl: diff --git a/runtime/indent/lifelines.vim b/runtime/indent/lifelines.vim new file mode 100755 index 000000000..0d9b2b46e --- /dev/null +++ b/runtime/indent/lifelines.vim @@ -0,0 +1,24 @@ +" Vim indent file +" Language: LifeLines +" Maintainer: Patrick Texier <p.texier@orsennes.com> +" Location: <http://patrick.texier.free.fr/vim/indent/lifelines.vim> +" Last Change: 2010 May 7 + +" Only load this indent file when no other was loaded. +if exists("b:did_indent") + finish +endif +let b:did_indent = 1 + +" LifeLines uses cindent without ; line terminator, C functions +" declarations, C keywords, C++ formating +setlocal cindent +setlocal cinwords="" +setlocal cinoptions+=+0 +setlocal cinoptions+=p0 +setlocal cinoptions+=i0 +setlocal cinoptions+=t0 +setlocal cinoptions+=*500 + +let b:undo_indent = "setl cin< cino< cinw<" +" vim: ts=8 sw=4 diff --git a/runtime/syntax/lifelines.vim b/runtime/syntax/lifelines.vim index d825a178a..f8bea015b 100644 --- a/runtime/syntax/lifelines.vim +++ b/runtime/syntax/lifelines.vim @@ -1,15 +1,12 @@ " Vim syntax file -" Language: LifeLines (v 3.0.50) http://lifelines.sourceforge.net -" Maintainer: Patrick Texier <p.texier@genindre.org> -" Location: http://www.genindre.org/ftp/lifelines/lifelines.vim -" Last Change: 2005 Dec 22. +" Language: LifeLines (v 3.0.62) <http://lifelines.sourceforge.net> +" Maintainer: Patrick Texier <p.texier@orsennes.com> +" Location: <http://patrick.texier.free.fr/vim/syntax/lifelines.vim> +" Last Change: 2010 May 7 " option to highlight error obsolete statements -" add the following line to your .vimrc file or here : -" (level2 is for baptism) - -" let lifelines_deprecated=1 -" let lifelines_deprecated_level2=1 +" add the following line to your .vimrc file : +" let lifelines_deprecated = 1 " For version 5.x: Clear all syntax items " For version 6.x: Quit when a syntax file was already loaded @@ -20,94 +17,102 @@ elseif exists("b:current_syntax") finish endif -" A bunch of useful lifelines keywords 3.0.50 +" A bunch of useful LifeLines keywords 3.0.62 -syn keyword lifelinesStatement set -syn keyword lifelinesUser getindi geindiset getfam getint getstr choosechild -syn keyword lifelinesUser chooseindi choosespouse choosesubset menuchoose -syn keyword lifelinesUser choosefam -syn keyword lifelinesProc proc func return call -syn keyword lifelinesInclude include -syn keyword lifelinesDef global +syn keyword lifelinesDecl char_encoding require option include +syn keyword lifelinesStatement set +syn keyword lifelinesUser getindi geindiset getfam getint getstr choosechild +syn keyword lifelinesUser chooseindi choosespouse choosesubset menuchoose +syn keyword lifelinesUser choosefam +syn keyword lifelinesProc proc func return call +syn keyword lifelinesInclude include +syn keyword lifelinesDef global syn keyword lifelinesConditional if else elsif switch -syn keyword lifelinesRepeat continue break while -syn keyword lifelinesLogical and or not eq ne lt gt le ge strcmp eqstr nestr -syn keyword lifelinesArithm add sub mul div mod exp neg incr decr -syn keyword lifelinesArithm cos sin tan arccos arcsin arctan -syn keyword lifelinesArithm deg2dms dms2deg spdist -syn keyword lifelinesIndi name fullname surname givens trimname birth -syn keyword lifelinesIndi death burial -syn keyword lifelinesIndi father mother nextsib prevsib sex male female -syn keyword lifelinesIndi pn nspouses nfamilies parents title key -syn keyword lifelinesIndi soundex inode root indi firstindi nextindi -syn keyword lifelinesIndi previndi spouses families forindi indiset -syn keyword lifelinesIndi addtoset deletefromset union intersect -syn keyword lifelinesIndi difference parentset childset spouseset siblingset -syn keyword lifelinesIndi ancestorset descendentset descendantset uniqueset -syn keyword lifelinesIndi namesort keysort valuesort genindiset getindiset -syn keyword lifelinesIndi forindiset lastindi writeindi -syn keyword lifelinesIndi inset -syn keyword lifelinesFam marriage husband wife nchildren firstchild -syn keyword lifelinesFam lastchild fnode fam firstfam nextfam lastfam -syn keyword lifelinesFam prevfam children forfam writefam -syn keyword lifelinesFam fathers mothers Parents -syn keyword lifelinesList list empty length enqueue dequeue requeue -syn keyword lifelinesList push pop setel getel forlist inlist dup clear -syn keyword lifelinesTable table insert lookup -syn keyword lifelinesGedcom xref tag value parent child sibling savenode -syn keyword lifelinesGedcom fornodes traverse createnode addnode -syn keyword lifelinesGedcom detachnode foreven fornotes forothr forsour -syn keyword lifelinesGedcom reference dereference getrecord -syn keyword lifelinesFunct date place year long short gettoday dayformat -syn keyword lifelinesFunct monthformat dateformat extractdate eraformat -syn keyword lifelinesFunct complexdate complexformat complexpic datepic -syn keyword lifelinesFunct extractnames extractplaces extracttokens lower -syn keyword lifelinesFunct yearformat -syn keyword lifelinesFunct upper capitalize trim rjustify -syn keyword lifelinesFunct concat strconcat strlen substring index -syn keyword lifelinesFunct titlecase gettext -syn keyword lifelinesFunct d card ord alpha roman strsoundex strtoint -syn keyword lifelinesFunct atoi linemode pagemod col row pos pageout nl -syn keyword lifelinesFunct sp qt newfile outfile copyfile print lock unlock test -syn keyword lifelinesFunct database version system stddate program -syn keyword lifelinesFunct pvalue pagemode level extractdatestr debug -syn keyword lifelinesFunct f float int free getcol getproperty heapused -syn keyword lifelinesFunct sort rsort -syn keyword lifelinesFunct deleteel -syn keyword lifelinesFunct bytecode convertcode setlocale - -" option to highlight error obsolete statements -" please read ll-reportmanual +syn keyword lifelinesRepeat continue break while +syn keyword lifelinesLogical and or not eq ne lt gt le ge strcmp eqstr nestr +syn keyword lifelinesArithm add sub mul div mod exp neg incr decr +syn keyword lifelinesArithm cos sin tan arccos arcsin arctan +syn keyword lifelinesArithm deg2dms dms2deg spdist +syn keyword lifelinesIndi name fullname surname givens trimname birth +syn keyword lifelinesIndi death burial baptism +syn keyword lifelinesIndi father mother nextsib prevsib sex male female +syn keyword lifelinesIndi pn nspouses nfamilies parents title key +syn keyword lifelinesIndi soundex inode root indi firstindi nextindi +syn keyword lifelinesIndi previndi spouses families forindi indiset +syn keyword lifelinesIndi addtoset deletefromset union intersect +syn keyword lifelinesIndi difference parentset childset spouseset siblingset +syn keyword lifelinesIndi ancestorset descendentset descendantset uniqueset +syn keyword lifelinesIndi namesort keysort valuesort genindiset getindiset +syn keyword lifelinesIndi forindiset lastindi writeindi +syn keyword lifelinesIndi inset +syn keyword lifelinesFam marriage husband wife nchildren firstchild +syn keyword lifelinesFam lastchild fnode fam firstfam nextfam lastfam +syn keyword lifelinesFam prevfam children forfam writefam +syn keyword lifelinesFam fathers mothers Parents +syn keyword lifelinesList list empty length enqueue dequeue requeue +syn keyword lifelinesList push pop setel getel forlist inlist dup clear +syn keyword lifelinesTable table insert lookup +syn keyword lifelinesGedcom xref tag value parent child sibling savenode +syn keyword lifelinesGedcom fornodes traverse createnode addnode +syn keyword lifelinesGedcom detachnode foreven fornotes forothr forsour +syn keyword lifelinesGedcom reference dereference getrecord +syn keyword lifelinesGedcom gengedcomstrong +syn keyword lifelinesFunct date place year long short gettoday dayformat +syn keyword lifelinesFunct monthformat dateformat extractdate eraformat +syn keyword lifelinesFunct complexdate complexformat complexpic datepic +syn keyword lifelinesFunct extractnames extractplaces extracttokens lower +syn keyword lifelinesFunct yearformat +syn keyword lifelinesFunct upper capitalize trim rjustify +syn keyword lifelinesFunct concat strconcat strlen substring index +syn keyword lifelinesFunct titlecase gettext +syn keyword lifelinesFunct d card ord alpha roman strsoundex strtoint +syn keyword lifelinesFunct atoi linemode pagemod col row pos pageout nl +syn keyword lifelinesFunct sp qt newfile outfile copyfile print lock unlock test +syn keyword lifelinesFunct database version system stddate program +syn keyword lifelinesFunct pvalue pagemode level extractdatestr debug +syn keyword lifelinesFunct f float int free getcol getproperty heapused +syn keyword lifelinesFunct sort rsort +syn keyword lifelinesFunct deleteel +syn keyword lifelinesFunct bytecode convertcode setlocale +" New dates functions (since 3.0.51) +syn keyword lifelinesFunct jd2date date2jd dayofweek setdate + +" options to highlight as error obsolete statements +" please read ll-reportmanual. if exists("lifelines_deprecated") - syn keyword lifelinesError getintmsg getindimsg getstrmsg - syn keyword lifelinesError gengedcom gengedcomstrong gengedcomweak deletenode - syn keyword lifelinesError save strsave - syn keyword lifelinesError lengthset + syn keyword lifelinesError getintmsg getindimsg getstrmsg + syn keyword lifelinesError gengedcom gengedcomweak deletenode + syn keyword lifelinesError save strsave + syn keyword lifelinesError lengthset + if version >= 700 + let g:omni_syntax_group_exclude_lifelines = 'lifelinesError' + endif else - syn keyword lifelinesUser getintmsg getindimsg getstrmsg - syn keyword lifelinesGedcom gengedcom gengedcomstrong gengedcomweak deletenode - syn keyword lifelinesFunct save strsave - syn keyword lifelinesIndi lengthset -endif -if exists("lifelines_deprecated_level2") - syn keyword lifelinesError baptism -else - syn keyword lifelinesIndi baptism + syn keyword lifelinesUser getintmsg getindimsg getstrmsg + syn keyword lifelinesGedcom gengedcom gengedcomweak deletenode + syn keyword lifelinesFunct save strsave + syn keyword lifelinesIndi lengthset endif -syn region lifelinesString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=lifelinesSpecial +syn region lifelinesString start=+L\="+ skip=+\\\\\|\\"+ end=+"+ contains=lifelinesSpecial -syn match lifelinesSpecial "\\\(\\\|\(n\|t\)\)" contained +syn match lifelinesSpecial "\\\(\\\|\(n\|t\)\)" contained -syn region lifelinesComment start="/\*" end="\*/" +syn keyword lifelinesTodo contained TODO FIXME XXX +syn region lifelinesComment start="/\*" end="\*/" contains=lifelinesTodo " integers -syn match lifelinesNumber "-\=\<\d\+\>" +syn match lifelinesNumber "-\=\<\d\+\>" "floats, with dot -syn match lifelinesNumber "-\=\<\d\+\.\d*\>" +syn match lifelinesNumber "-\=\<\d\+\.\d*\>" "floats, starting with a dot -syn match lifelinesNumber "-\=\.\d\+\>" +syn match lifelinesNumber "-\=\.\d\+\>" + +" folding using {} +if version >= 600 + syn region lifelinesFoldBlock start="{" end="}" transparent fold +endif "catch errors caused by wrong parenthesis "adapted from original c.vim written by Bram Moolenaar @@ -130,31 +135,33 @@ if version >= 508 || !exists("did_lifelines_syn_inits") endif HiLink lifelinesConditional Conditional - HiLink lifelinesArithm Operator - HiLink lifelinesLogical Conditional - HiLink lifelinesInclude Include - HiLink lifelinesComment Comment - HiLink lifelinesStatement Statement - HiLink lifelinesUser Statement - HiLink lifelinesFunct Statement - HiLink lifelinesTable Statement - HiLink lifelinesGedcom Statement - HiLink lifelinesList Statement - HiLink lifelinesRepeat Repeat - HiLink lifelinesFam Statement - HiLink lifelinesIndi Statement - HiLink lifelinesProc Statement - HiLink lifelinesDef Statement - HiLink lifelinesString String - HiLink lifelinesSpecial Special - HiLink lifelinesNumber Number + HiLink lifelinesArithm Operator + HiLink lifelinesLogical Conditional + HiLink lifelinesInclude Include + HiLink lifelinesComment Comment + HiLink lifelinesStatement Statement + HiLink lifelinesUser Statement + HiLink lifelinesFunct Statement + HiLink lifelinesTable Statement + HiLink lifelinesGedcom Statement + HiLink lifelinesList Statement + HiLink lifelinesRepeat Repeat + HiLink lifelinesFam Statement + HiLink lifelinesIndi Statement + HiLink lifelinesProc Statement + HiLink lifelinesDef Statement + HiLink lifelinesString String + HiLink lifelinesSpecial Special + HiLink lifelinesNumber Number HiLink lifelinesParenError Error HiLink lifelinesErrInParen Error - HiLink lifelinesError Error + HiLink lifelinesError Error + HiLink lifelinesTodo Todo + HiLink lifelinesDecl PreProc delcommand HiLink endif let b:current_syntax = "lifelines" -" vim: ts=8 +" vim: ts=8 sw=4 diff --git a/src/eval.c b/src/eval.c index 1803e0e55..df116ad0f 100644 --- a/src/eval.c +++ b/src/eval.c @@ -573,6 +573,7 @@ static void f_getpos __ARGS((typval_T *argvars, typval_T *rettv)); static void f_getqflist __ARGS((typval_T *argvars, typval_T *rettv)); static void f_getreg __ARGS((typval_T *argvars, typval_T *rettv)); static void f_getregtype __ARGS((typval_T *argvars, typval_T *rettv)); +static void f_gettabvar __ARGS((typval_T *argvars, typval_T *rettv)); static void f_gettabwinvar __ARGS((typval_T *argvars, typval_T *rettv)); static void f_getwinposx __ARGS((typval_T *argvars, typval_T *rettv)); static void f_getwinposy __ARGS((typval_T *argvars, typval_T *rettv)); @@ -677,6 +678,7 @@ static void f_setmatches __ARGS((typval_T *argvars, typval_T *rettv)); static void f_setpos __ARGS((typval_T *argvars, typval_T *rettv)); static void f_setqflist __ARGS((typval_T *argvars, typval_T *rettv)); static void f_setreg __ARGS((typval_T *argvars, typval_T *rettv)); +static void f_settabvar __ARGS((typval_T *argvars, typval_T *rettv)); static void f_settabwinvar __ARGS((typval_T *argvars, typval_T *rettv)); static void f_setwinvar __ARGS((typval_T *argvars, typval_T *rettv)); static void f_shellescape __ARGS((typval_T *argvars, typval_T *rettv)); @@ -7663,6 +7665,7 @@ static struct fst {"getqflist", 0, 0, f_getqflist}, {"getreg", 0, 2, f_getreg}, {"getregtype", 0, 1, f_getregtype}, + {"gettabvar", 2, 2, f_gettabvar}, {"gettabwinvar", 3, 3, f_gettabwinvar}, {"getwinposx", 0, 0, f_getwinposx}, {"getwinposy", 0, 0, f_getwinposy}, @@ -7769,6 +7772,7 @@ static struct fst {"setpos", 2, 2, f_setpos}, {"setqflist", 1, 2, f_setqflist}, {"setreg", 2, 3, f_setreg}, + {"settabvar", 3, 3, f_settabvar}, {"settabwinvar", 4, 4, f_settabwinvar}, {"setwinvar", 3, 3, f_setwinvar}, {"shellescape", 1, 2, f_shellescape}, @@ -11328,6 +11332,32 @@ f_getregtype(argvars, rettv) } /* + * "gettabvar()" function + */ + static void +f_gettabvar(argvars, rettv) + typval_T *argvars; + typval_T *rettv; +{ + tabpage_T *tp; + dictitem_T *v; + char_u *varname; + + rettv->v_type = VAR_STRING; + rettv->vval.v_string = NULL; + + varname = get_tv_string_chk(&argvars[1]); + tp = find_tabpage((int)get_tv_number_chk(&argvars[0], NULL)); + if (tp != NULL && varname != NULL) + { + /* look up the variable */ + v = find_var_in_ht(&tp->tp_vars.dv_hashtab, varname, FALSE); + if (v != NULL) + copy_tv(&v->di_tv, rettv); + } +} + +/* * "gettabwinvar()" function */ static void @@ -15824,6 +15854,48 @@ f_setreg(argvars, rettv) } /* + * "settabvar()" function + */ + static void +f_settabvar(argvars, rettv) + typval_T *argvars; + typval_T *rettv; +{ + tabpage_T *save_curtab; + char_u *varname, *tabvarname; + typval_T *varp; + tabpage_T *tp; + + rettv->vval.v_number = 0; + + if (check_restricted() || check_secure()) + return; + + tp = find_tabpage((int)get_tv_number_chk(&argvars[0], NULL)); + varname = get_tv_string_chk(&argvars[1]); + varp = &argvars[2]; + + if (tp != NULL && varname != NULL && varp != NULL) + { + save_curtab = curtab; + goto_tabpage_tp(tp); + + tabvarname = alloc((unsigned)STRLEN(varname) + 3); + if (tabvarname != NULL) + { + STRCPY(tabvarname, "t:"); + STRCPY(tabvarname + 2, varname); + set_var(tabvarname, varp, TRUE); + vim_free(tabvarname); + } + + /* Restore current tabpage */ + if (valid_tabpage(save_curtab)) + goto_tabpage_tp(save_curtab); + } +} + +/* * "settabwinvar()" function */ static void |