0
0
mirror of https://github.com/vim/vim.git synced 2025-09-23 03:43:49 -04:00

updated for version 7.0220

This commit is contained in:
Bram Moolenaar
2006-03-10 21:46:58 +00:00
parent a94bc430e8
commit ade0083d3a
5 changed files with 100 additions and 50 deletions

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.0aa. Last change: 2006 Mar 09 *todo.txt* For Vim version 7.0aa. Last change: 2006 Mar 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,6 +30,11 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs* *known-bugs*
-------------------- Known bugs and current work ----------------------- -------------------- Known bugs and current work -----------------------
--remote-tab to open file in new tab in existing Vim server?
--remote-tab-silent
--remote-tab-wait
--remote-tab-wait-silent
Win32: Describe how to do debugging. (George Reilly) Win32: Describe how to do debugging. (George Reilly)
Mac unicode patch (Da Woon Jung): Mac unicode patch (Da Woon Jung):
@@ -45,58 +50,19 @@ Mac unicode patch (Da Woon Jung):
- With 'nopaste' pasting is wrong, with 'paste' Command-V doesn't work. - With 'nopaste' pasting is wrong, with 'paste' Command-V doesn't work.
(Alan Schmitt) (Alan Schmitt)
Add ShellCmdPre/ShellCmdPost/ShellFilterPre/ShellFilterPost ?
Useful for updating the diretory listing in netrw.
CONSIDERED FOR VERSION 7.0: CONSIDERED FOR VERSION 7.0:
Omni completion: Omni completion:
ccomplete: ccomplete:
- For C add tag "kind" field to each match? - For C add tag "kind" field to each match?
- Flickering because of syntax highlighting redrawing further lines.
- When a typedef or struct is local to a file only use it in that file? - When a typedef or struct is local to a file only use it in that file?
UI: UI:
- Add an "auto" mode: after typing a character (or string) completion is
done for the longest common string. plugin defines the possible
characters/strings. (Martin Stubenschrott)
And/or: Provide a function to popup the menu, so that an insert mode
mapping can start it (with a specific selection).
- Show "info" from a match in preview window (with an option or by opening - Show "info" from a match in preview window (with an option or by opening
a preview window with a specific name). a preview window with a specific name).
Or use one window for matches, another for context/info (Doug Kearns, Or use one window for matches, another for context/info (Doug Kearns,
2005 Sep 13) 2005 Sep 13)
- Ideas on: http://www.wholetomato.com/
Completion logic:
Ideas from others:
http://www.vim.org/scripts/script.php?script_id=747
http://sourceforge.net/projects/insenvim
or http://insenvim.sourceforge.net
Java, XML, HTML, C++, JSP, SQL, C#
MS-Windows only, lots of dependencies (e.g. Perl, Internet
explorer), uses .dll shared libraries.
For C++ uses $INCLUDE environment var.
Uses Perl for C++.
Uses ctags to find the info:
ctags -f $allTagsFile --fields=+aiKmnsSz --language-force=C++ --C++-kinds=+cefgmnpsut-dlux -u $files
www.vim.org script 1213 (Java Development Environment) (Fuchuan Wang)
IComplete: http://www.vim.org/scripts/script.php?script_id=1265
and http://stud4.tuwien.ac.at/~e0125672/icomplete/
http://cedet.sourceforge.net/intellisense.shtml (for Emacs)
Ivan Villanueva has something for Java.
Emads: http://www.xref-tech.com/xrefactory/more_c_completion.html
Ideas from the Vim 7 BOF at SANE:
- For interpreted languages, use the interpreter to obtain information.
Should work for Java (Eclipse does this), Python, Tcl, etc.
Richard Emberson mentioned working on an interface to Java.
- Check Readline for its completion interface.
- Use ctags for other languages. Writing a file could trigger running
ctags, merging the tags of the changed file.
Completion in .NET framework SharpDevelop: http://www.icsharpcode.net
- Pre-expand abbreviations, show which abbrevs would match?
- UNDO TREE: keep all states of the text, don't delete undo info. - UNDO TREE: keep all states of the text, don't delete undo info.
When making a change, instead of clearing any future undo (thus redo) When making a change, instead of clearing any future undo (thus redo)
@@ -2186,6 +2152,36 @@ Autocommands:
them save the file itself besides the swapfile. them save the file itself besides the swapfile.
Omni completion:
- Ideas from the Vim 7 BOF at SANE:
- For interpreted languages, use the interpreter to obtain information.
Should work for Java (Eclipse does this), Python, Tcl, etc.
Richard Emberson mentioned working on an interface to Java.
- Check Readline for its completion interface.
- Use ctags for other languages. Writing a file could trigger running
ctags, merging the tags of the changed file.
- Ideas from others:
http://www.wholetomato.com/
http://www.vim.org/scripts/script.php?script_id=747
http://sourceforge.net/projects/insenvim
or http://insenvim.sourceforge.net
Java, XML, HTML, C++, JSP, SQL, C#
MS-Windows only, lots of dependencies (e.g. Perl, Internet
explorer), uses .dll shared libraries.
For C++ uses $INCLUDE environment var.
Uses Perl for C++.
Uses ctags to find the info:
ctags -f $allTagsFile --fields=+aiKmnsSz --language-force=C++ --C++-kinds=+cefgmnpsut-dlux -u $files
www.vim.org script 1213 (Java Development Environment) (Fuchuan Wang)
IComplete: http://www.vim.org/scripts/script.php?script_id=1265
and http://stud4.tuwien.ac.at/~e0125672/icomplete/
http://cedet.sourceforge.net/intellisense.shtml (for Emacs)
Ivan Villanueva has something for Java.
Emads: http://www.xref-tech.com/xrefactory/more_c_completion.html
Completion in .NET framework SharpDevelop: http://www.icsharpcode.net
- Pre-expand abbreviations, show which abbrevs would match?
Insert mode completion/expansion: Insert mode completion/expansion:
- GUI implementation of the popup menu. - GUI implementation of the popup menu.
8 When there is no word before the cursor but something like "sys." complete 8 When there is no word before the cursor but something like "sys." complete
@@ -2605,6 +2601,7 @@ Mappings and Abbreviations:
8 To make a mapping work with a prepended "x to select a register, store the 8 To make a mapping work with a prepended "x to select a register, store the
last _typed_ register name and access it with "&. last _typed_ register name and access it with "&.
8 Add ":amap", like ":amenu". 8 Add ":amap", like ":amenu".
7 Add a mapping that works always, for remapping the keyboard.
8 Add ":cab!", abbreviations that only apply to Command-line mode and not to 8 Add ":cab!", abbreviations that only apply to Command-line mode and not to
entering search strings. entering search strings.
8 Add a flag to ":abbrev" to eat the character that triggers the 8 Add a flag to ":abbrev" to eat the character that triggers the
@@ -2625,12 +2622,17 @@ Mappings and Abbreviations:
7 Make it possible to map 'wildchar', but only when it's a special character 7 Make it possible to map 'wildchar', but only when it's a special character
(like CTRL-E). Currently it's only recognized when typed. Useful for (like CTRL-E). Currently it's only recognized when typed. Useful for
mapping a key to do something and then completion. mapping a key to do something and then completion.
7 Add a mapping that works always, for remapping the keyboard.
6 Context-sensitive abbreviations: Specify syntax group(s) in which the 6 Context-sensitive abbreviations: Specify syntax group(s) in which the
abbreviations are to be used. abbreviations are to be used.
- Add mappings that take arguments. Could work like the ":s" command. For - Add mappings that take arguments. Could work like the ":s" command. For
example, for a mouse escape sequence: example, for a mouse escape sequence:
:mapexp <Esc>{\([0-9]*\),\([0-9]*\); H\1j\2l :mapexp <Esc>{\([0-9]*\),\([0-9]*\); H\1j\2l
- Add optional <Number> argument for mappings:
:map <Number>q ^W^W<Number>G
:map <Number>q<Number>t ^W^W<Number1-1>G<Number2>l
:map q<Char> :s/<Char>/\u\0/g
Or implicit:
:map q <Register>d<Number>$
- Make it possible to include a <Nul> in the lhs and rhs of a mapping. - Make it possible to include a <Nul> in the lhs and rhs of a mapping.
- Add command to repeat a whole mapping ("." only repeats the last change in - Add command to repeat a whole mapping ("." only repeats the last change in
a mapping). Also: Repeat a whole insert command, including any mappings a mapping). Also: Repeat a whole insert command, including any mappings
@@ -2645,17 +2647,9 @@ Mappings and Abbreviations:
mappings first, then remove them again when a mapping matches. Avoids mappings first, then remove them again when a mapping matches. Avoids
that characters that are the start of some mapping are not shown until you that characters that are the start of some mapping are not shown until you
hit another character. hit another character.
- Add optional <Number> argument for mappings:
:map <Number>q ^W^W<Number>G
:map <Number>q<Number>t ^W^W<Number1-1>G<Number2>l
:map q<Char> :s/<Char>/\u\0/g
Or implicit:
:map q <Register>d<Number>$
- Add mappings for replace mode: ":rmap". How do we then enter mappings for - Add mappings for replace mode: ":rmap". How do we then enter mappings for
non-replace Insert mode? non-replace Insert mode?
- Add separate mappings for Visual-character/block/line mode? - Add separate mappings for Visual-character/block/line mode?
6 Alias for Normal mode commands, works like :substitute? Would allow
mappings with arguments.
- Add 'mapstop' command, to stop recursive mappings. - Add 'mapstop' command, to stop recursive mappings.
- List mappings that have a raw escape sequence both with the name of the key - List mappings that have a raw escape sequence both with the name of the key
for that escape sequence (if there is one) and the sequence itself. for that escape sequence (if there is one) and the sequence itself.

View File

@@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.0aa. Last change: 2006 Mar 09 *version7.txt* For Vim version 7.0aa. Last change: 2006 Mar 10
VIM REFERENCE MANUAL by Bram Moolenaar VIM REFERENCE MANUAL by Bram Moolenaar
@@ -32,6 +32,7 @@ POSIX compatibility |new-posix|
Debugger support |new-debug-support| Debugger support |new-debug-support|
Remote file explorer |new-netrw-explore| Remote file explorer |new-netrw-explore|
Define an operator |new-define-operator| Define an operator |new-define-operator|
Mapping to an expression |new-map-expression|
Location list |new-location-list| Location list |new-location-list|
Various new items |new-items-7| Various new items |new-items-7|
@@ -400,6 +401,17 @@ through the |g@| operator.
See |:map-operator| for the explanation and an example. See |:map-operator| for the explanation and an example.
Mapping to an expression *new-map-expression*
------------------------
The {rhs} argument of a mapping can be an expression. That means the
resulting characters can depend on the context. Example: >
:inoremap <expr> . InsertDot()
Here the dot will be mapped to whatever InsertDot() returns.
Also works for abbreviations. See |:map-<expr>| for the details.
Location list *new-location-list* Location list *new-location-list*
------------- -------------
@@ -647,6 +659,9 @@ New autocommand events: ~
|SpellFileMissing| when a spell file can't be found |SpellFileMissing| when a spell file can't be found
|ShellCmdPost| after executing a shell command
|ShellFilterPost| after filtering with a shell command
|SourcePre| before sourcing a Vim script |SourcePre| before sourcing a Vim script
|CursorHoldI| the user doesn't press a key for a while in Insert mode |CursorHoldI| the user doesn't press a key for a while in Insert mode

View File

@@ -467,6 +467,7 @@ static void f_char2nr __ARGS((typval_T *argvars, typval_T *rettv));
static void f_cindent __ARGS((typval_T *argvars, typval_T *rettv)); static void f_cindent __ARGS((typval_T *argvars, typval_T *rettv));
static void f_col __ARGS((typval_T *argvars, typval_T *rettv)); static void f_col __ARGS((typval_T *argvars, typval_T *rettv));
#if defined(FEAT_INS_EXPAND) #if defined(FEAT_INS_EXPAND)
static void f_complete __ARGS((typval_T *argvars, typval_T *rettv));
static void f_complete_add __ARGS((typval_T *argvars, typval_T *rettv)); static void f_complete_add __ARGS((typval_T *argvars, typval_T *rettv));
static void f_complete_check __ARGS((typval_T *argvars, typval_T *rettv)); static void f_complete_check __ARGS((typval_T *argvars, typval_T *rettv));
#endif #endif
@@ -6884,6 +6885,7 @@ static struct fst
{"cindent", 1, 1, f_cindent}, {"cindent", 1, 1, f_cindent},
{"col", 1, 1, f_col}, {"col", 1, 1, f_col},
#if defined(FEAT_INS_EXPAND) #if defined(FEAT_INS_EXPAND)
{"complete", 2, 2, f_complete},
{"complete_add", 1, 1, f_complete_add}, {"complete_add", 1, 1, f_complete_add},
{"complete_check", 0, 0, f_complete_check}, {"complete_check", 0, 0, f_complete_check},
#endif #endif
@@ -8101,6 +8103,35 @@ f_col(argvars, rettv)
} }
#if defined(FEAT_INS_EXPAND) #if defined(FEAT_INS_EXPAND)
/*
* "complete()" function
*/
/*ARGSUSED*/
static void
f_complete(argvars, rettv)
typval_T *argvars;
typval_T *rettv;
{
int startcol;
if ((State & INSERT) == 0)
{
EMSG(_("E785: complete() can only be used in Insert mode"));
return;
}
if (argvars[1].v_type != VAR_LIST || argvars[1].vval.v_list == NULL)
{
EMSG(_(e_invarg));
return;
}
startcol = get_tv_number_chk(&argvars[0], NULL);
if (startcol <= 0)
return;
set_completion(startcol - 1, argvars[1].vval.v_list);
}
/* /*
* "complete_add()" function * "complete_add()" function
*/ */

View File

@@ -949,9 +949,14 @@ do_bang(addr_count, eap, forceit, do_in, do_out)
do_shell(newcmd, 0); do_shell(newcmd, 0);
} }
else /* :range! */ else /* :range! */
{
/* Careful: This may recursively call do_bang() again! (because of /* Careful: This may recursively call do_bang() again! (because of
* autocommands) */ * autocommands) */
do_filter(line1, line2, eap, newcmd, do_in, do_out); do_filter(line1, line2, eap, newcmd, do_in, do_out);
#ifdef FEAT_AUTOCMD
apply_autocmds(EVENT_SHELLFILTERPOST, NULL, NULL, FALSE, curbuf);
#endif
}
if (free_newcmd) if (free_newcmd)
vim_free(newcmd); vim_free(newcmd);
} }
@@ -1419,6 +1424,10 @@ do_shell(cmd, flags)
/* display any error messages now */ /* display any error messages now */
display_errors(); display_errors();
#ifdef FEAT_AUTOCMD
apply_autocmds(EVENT_SHELLCMDPOST, NULL, NULL, FALSE, curbuf);
#endif
} }
/* /*

View File

@@ -9,6 +9,7 @@ void backspace_until_column __ARGS((int col));
int vim_is_ctrl_x_key __ARGS((int c)); int vim_is_ctrl_x_key __ARGS((int c));
int ins_compl_add_infercase __ARGS((char_u *str, int len, int icase, char_u *fname, int dir, int flags)); int ins_compl_add_infercase __ARGS((char_u *str, int len, int icase, char_u *fname, int dir, int flags));
int ins_compl_add __ARGS((char_u *str, int len, int icase, char_u *fname, char_u *extra, int cdir, int flags)); int ins_compl_add __ARGS((char_u *str, int len, int icase, char_u *fname, char_u *extra, int cdir, int flags));
void set_completion __ARGS((int startcol, list_T *list));
void ins_compl_show_pum __ARGS((void)); void ins_compl_show_pum __ARGS((void));
char_u *find_word_start __ARGS((char_u *ptr)); char_u *find_word_start __ARGS((char_u *ptr));
char_u *find_word_end __ARGS((char_u *ptr)); char_u *find_word_end __ARGS((char_u *ptr));