-*os_unix.txt* For Vim version 7.0aa. Last change: 2003 Mar 15
+*os_unix.txt* For Vim version 7.0aa. Last change: 2005 Mar 25
VIM REFERENCE MANUAL by Bram Moolenaar
For real color terminals the ":highlight" command can be used.
-The file "tools/Vim132" is a shell script that can be used to put Vim in 132
+The file "tools/vim132" is a shell script that can be used to put Vim in 132
column mode on a vt100 and lookalikes.
vim:tw=78:ts=8:ft=help:norl:
-*quickfix.txt* For Vim version 7.0aa. Last change: 2005 Feb 24
+*quickfix.txt* For Vim version 7.0aa. Last change: 2005 Mar 25
VIM REFERENCE MANUAL by Bram Moolenaar
In Vim the quickfix commands are used more generally to find a list of
positions in files. For example, |:vimgrep| finds pattern matches. You can
-use the positions in a script with the |errorlist()| function. Thus you can
+use the positions in a script with the |getqflist()| function. Thus you can
do a lot more than the edit/compile/fix cycle!
If you are using Manx's Aztec C compiler on the Amiga look here for how to use
uses the length for the column number)
%*{conv} any scanf non-assignable conversion
%% the single '%' character
+ %s search text (finds a string)
The "%f" conversion depends on the current 'isfname' setting.
to indicate the column of the error. This is to be used in a multi-line error
message. See |errorformat-javac| for a useful example.
+The "%s" conversion specifies the text to search for to locate the error line.
+The text is used as a literal string. The anchors "^" and "$" are added to
+the text to locate the error line exactly matching the search text and the
+text is prefixed with the "\V" atom to make it "very nomagic". The "%s"
+conversion can be used to locate lines without a line number in the error
+output. Like the output of the "grep" shell command.
+When the pattern is present the line number will not be used.
Changing directory
-*todo.txt* For Vim version 7.0aa. Last change: 2005 Mar 22
+*todo.txt* For Vim version 7.0aa. Last change: 2005 Mar 25
VIM REFERENCE MANUAL by Bram Moolenaar
*known-bugs*
-------------------- Known bugs and current work -----------------------
-Problem with hang in setmouse() -> update_mouseshape() (Froloff)
- - check for termcap_active in option.c
- - add gui.starting in misc2.c
+Check that xterm function keys XHOME and ZHOME do work.
-":e" causes a scroll (in spell.c).
+Wildcard expansion failure: ":w /tmp/$$.`echo test`" (Adri Verhoef)
Mac unicode patch (Da Woon Jung):
- selecting proportional font breaks display
helpfile doc/myscript.txt
For the "helpfile" item ":helptags" is run.
+Win32: Balloon text can't contain line break.
+
Awaiting response:
- Patch for mch_FullName() also in Vim 6.3? os_mswin.c
- Win32: tearoff menu window should have a scrollbar when it's taller than
the screen.
-When on a line with a single character, "A CTRL-O <Home>" puts cursor back
-after end-of-line. (Peter Winters) Make "o_eol" global and reset it when
-moving cursor?
-
PLANNED FOR VERSION 7.0:
- Add SPELLCHECKER, with support for many languages.
- Use "engspchk" from Charles Campbell for ideas.
+ - Alternative: use MySpell library (in OpenOffice.org).
+ http://spellchecker.mozdev.org/source.html
- Alternative: use aspell library.
- - Implement 's addition.
+ - Dump pre-parsed spell structs in a file?
+ - More complicated: Regions with different languages? E.g. comments in
+ English, strings in German (po file).
- Commands required:
add word to private dict: wrong and OK (in popup menu for evim)
:spell good <word> zg
Add ":syntax contains {pattern} add=@Spell" command? A bit like ":syn
cluster" but change the contains list directly for matching syntax
items.
+ - Install spell files with src/main.aap.
Alternatives using ispell or aspell:
8 Add spell checking. Use "ispell -a" somehow.
~/vim/patches/wm_vim-5_4d.zip can be used as an example (includes
Searching:
7 Add "g/" and "gb" to search for a pattern in the Visually selected text?
"g?" is already used for rot13.
-8 Add a mechanism for recursiveness: "\(([^()]*\@@[^()]*)\)\@r". \@@ stands
- for "go recursive here" and \@r marks the recursive atom.
+8 Add a mechanism for recursiveness: "\@(([^()]*\@g[^()]*)\)". \@g stands
+ for "go recursive here" and \@( \) marks the recursive part.
+ Perl does it this way:
+ $paren = qr/ \(( [^()] | (??{ $paren }) )* \) /x;
+ Here $paren is evaluated when it's encountered. This is like a regexp
+ inside a regexp. In the above terms it would be:
+ \@((\([^()]\|\@g\)*)\)
8 Add an item for a big character range, so that one can search for a
chinese character: \z[234-1234] or \z[XX-YY] or \z[0x23-0x234].
7 Add an item stack to allow matching (). One side is "push X on
'}' as the start of a section (e.g. one shiftwidth to the right).
7 Allow using Vim in a pipe: "ls | vim -u xxx.vim - | yyy". Only needs
implementing ":w" to stdout in the buffer that was read from stdin.
+ Perhaps writing to stdout will work, since stderr is used for the terminal
+ I/O.
8 Allow opening an unnamed buffer with ":e !cmd" and ":sp !cmd". Vile can
do it.
- Add commands like ]] and [[ that do not include the line jumped to.
-*version7.txt* For Vim version 7.0aa. Last change: 2005 Mar 20
+*version7.txt* For Vim version 7.0aa. Last change: 2005 Mar 24
VIM REFERENCE MANUAL by Bram Moolenaar
|:vimgrep|.
If you want to use the search results in a script you can use the
-|errorlist()| function.
+|getqflist()| function.
POSIX compatibility *new-posix*
|count()| count nr of times a value is in a List or Dictionary
|deepcopy()| make a full copy of a List or Dictionary
|empty()| check if List or Dictionary is empty
-|errorlist()| list of quickfix errors
+|getqflist()| list of quickfix errors
|extend()| append one List to another or add items from one
Dictionary to another
|filter()| remove selected items from a List or Dictionary
|remove()| remove one or more items from a List or Dictionary
|repeat()| Repeat "expr" "count" times. (Christophe Poucet)
|reverse()| reverse the order of a List
+|setqflist()| create a quickfix list
|sort()| sort a List
|split()| split a String into a List
|string()| String representation of a List or Dictionary
When 'encoding' is "sjis" inserting CTRL-V u d800 a few times causes a crash.
Don't insert a DBCS character with a NUL second byte.
+In Insert mode CTRL-O <Home> didn't move the cursor. Made "ins_at_eol" global
+and reset it in nv_home().
+
vim:tw=78:ts=8:ft=help:norl:
changes in a fold. 'foldcolumn' is set to two to make it easy to spot the
folds and open or close them.
.SH OPTIONS
-Vertical splits are used to align the lines, as if the "-O" argument was used.
-To use horizontal splits intead, use the "-o" argument.
+Vertical splits are used to align the lines, as if the "\-O" argument was used.
+To use horizontal splits intead, use the "\-o" argument.
.PP
For all other arguments see vim(1).
.SH SEE ALSO
" Vim plugin for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2004 Jul 30
+" Last Change: 2005 Mar 24
" Exit quickly when:
" - this plugin was already loaded
" don't do anything if the cmd is not supported
if s:check(a:cmd)
" Rename the file before compressing it.
- let nm = expand("<afile>")
+ let nm = resolve(expand("<afile>"))
let nmt = s:tempname(nm)
if rename(nm, nmt) == 0
call system(a:cmd . " " . nmt)
static void f_diff_filler __ARGS((typval_T *argvars, typval_T *rettv));
static void f_diff_hlID __ARGS((typval_T *argvars, typval_T *rettv));
static void f_empty __ARGS((typval_T *argvars, typval_T *rettv));
-static void f_errorlist __ARGS((typval_T *argvars, typval_T *rettv));
static void f_escape __ARGS((typval_T *argvars, typval_T *rettv));
static void f_eval __ARGS((typval_T *argvars, typval_T *rettv));
static void f_eventhandler __ARGS((typval_T *argvars, typval_T *rettv));
static void f_getftime __ARGS((typval_T *argvars, typval_T *rettv));
static void f_getftype __ARGS((typval_T *argvars, typval_T *rettv));
static void f_getline __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_getwinposx __ARGS((typval_T *argvars, typval_T *rettv));
static void f_setbufvar __ARGS((typval_T *argvars, typval_T *rettv));
static void f_setcmdpos __ARGS((typval_T *argvars, typval_T *rettv));
static void f_setline __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_setwinvar __ARGS((typval_T *argvars, typval_T *rettv));
static void f_simplify __ARGS((typval_T *argvars, typval_T *rettv));
}
/*
- * Add a dictionary to a list. Used by errorlist().
+ * Add a dictionary to a list. Used by getqflist().
* Return FAIL when out of memory.
*/
int
return HI2DI(hi);
}
+/*
+ * Get a string item from a dictionary in allocated memory.
+ * Returns NULL if the entry doesn't exist or out of memory.
+ */
+ char_u *
+get_dict_string(d, key)
+ dict_T *d;
+ char_u *key;
+{
+ dictitem_T *di;
+
+ di = dict_find(d, key, -1);
+ if (di == NULL)
+ return NULL;
+ return vim_strsave(get_tv_string(&di->di_tv));
+}
+
+/*
+ * Get a number item from a dictionary.
+ * Returns 0 if the entry doesn't exist or out of memory.
+ */
+ long
+get_dict_number(d, key)
+ dict_T *d;
+ char_u *key;
+{
+ dictitem_T *di;
+
+ di = dict_find(d, key, -1);
+ if (di == NULL)
+ return 0;
+ return get_tv_number(&di->di_tv);
+}
+
/*
* Return an allocated string with the string representation of a Dictionary.
* May return NULL.
{"diff_filler", 1, 1, f_diff_filler},
{"diff_hlID", 2, 2, f_diff_hlID},
{"empty", 1, 1, f_empty},
- {"errorlist", 0, 0, f_errorlist},
{"escape", 2, 2, f_escape},
{"eval", 1, 1, f_eval},
{"eventhandler", 0, 0, f_eventhandler},
{"getftime", 1, 1, f_getftime},
{"getftype", 1, 1, f_getftype},
{"getline", 1, 2, f_getline},
+ {"getqflist", 0, 0, f_getqflist},
{"getreg", 0, 1, f_getreg},
{"getregtype", 0, 1, f_getregtype},
{"getwinposx", 0, 0, f_getwinposx},
{"setbufvar", 3, 3, f_setbufvar},
{"setcmdpos", 1, 1, f_setcmdpos},
{"setline", 2, 2, f_setline},
+ {"setqflist", 1, 1, f_setqflist},
{"setreg", 2, 3, f_setreg},
{"setwinvar", 3, 3, f_setwinvar},
{"simplify", 1, 1, f_simplify},
rettv->vval.v_number = n;
}
-/*
- * "errorlist()" function
- */
-/*ARGSUSED*/
- static void
-f_errorlist(argvars, rettv)
- typval_T *argvars;
- typval_T *rettv;
-{
-#ifdef FEAT_QUICKFIX
- list_T *l;
-#endif
-
- rettv->vval.v_number = FALSE;
-#ifdef FEAT_QUICKFIX
- l = list_alloc();
- if (l != NULL)
- {
- if (get_errorlist(l) != FAIL)
- {
- rettv->vval.v_list = l;
- rettv->v_type = VAR_LIST;
- ++l->lv_refcount;
- }
- else
- list_free(l);
- }
-#endif
-}
-
/*
* "escape({string}, {chars})" function
*/
}
}
+/*
+ * "getqflist()" function
+ */
+/*ARGSUSED*/
+ static void
+f_getqflist(argvars, rettv)
+ typval_T *argvars;
+ typval_T *rettv;
+{
+#ifdef FEAT_QUICKFIX
+ list_T *l;
+#endif
+
+ rettv->vval.v_number = FALSE;
+#ifdef FEAT_QUICKFIX
+ l = list_alloc();
+ if (l != NULL)
+ {
+ if (get_errorlist(l) != FAIL)
+ {
+ rettv->vval.v_list = l;
+ rettv->v_type = VAR_LIST;
+ ++l->lv_refcount;
+ }
+ else
+ list_free(l);
+ }
+#endif
+}
+
/*
* "getreg()" function
*/
}
}
+/*
+ * "setqflist()" function
+ */
+/*ARGSUSED*/
+ static void
+f_setqflist(argvars, rettv)
+ typval_T *argvars;
+ typval_T *rettv;
+{
+ rettv->vval.v_number = -1;
+
+#ifdef FEAT_QUICKFIX
+ if (argvars[0].v_type != VAR_LIST)
+ EMSG(_(e_listreq));
+ else
+ {
+ list_T *l = argvars[0].vval.v_list;
+
+ if (l != NULL && set_errorlist(l) == OK)
+ rettv->vval.v_number = 0;
+ }
+#endif
+}
+
/*
* "setreg()" function
*/
gvimdiffname=${15}
eviewname=${16}
-if test $what = "install" -a (-e $destdir/$vimname.1 -o -e $destdir/$vimdiffname.1 -o -e $destdir/$eviewname.1); then
+if test $what = "install" -a \( -e $destdir/$vimname.1 -o -e $destdir/$vimdiffname.1 -o -e $destdir/$eviewname.1 \); then
if test ! -d $destdir; then
echo creating $destdir
./mkinstalldirs $destdir
msgstr "%ld / %ld ÁÙ --%d%%-- Ä "
#: buffer.c:2868
-msgid "[No file]"
-msgstr "[ÆÄÀÏ ¾øÀ½]"
+msgid "[No Name]"
+msgstr "[À̸§ ¾øÀ½]"
#. must be a help buffer
#: buffer.c:2908
void ex_vimgrep __ARGS((exarg_T *eap));
char_u *skip_vimgrep_pat __ARGS((char_u *p, char_u **s, int *flags));
int get_errorlist __ARGS((list_T *list));
+int set_errorlist __ARGS((list_T *list));
void ex_cbuffer __ARGS((exarg_T *eap));
void ex_helpgrep __ARGS((exarg_T *eap));
/* vim: set ft=c : */