updated for version 7.0038

This commit is contained in:
Bram Moolenaar
2005-01-14 21:53:12 +00:00
parent d8b0273231
commit 8c711458a6
7 changed files with 1104 additions and 537 deletions

View File

@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.0aa. Last change: 2005 Jan 11
*todo.txt* For Vim version 7.0aa. Last change: 2005 Jan 14
VIM REFERENCE MANUAL by Bram Moolenaar
@ -30,13 +30,42 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
Fixes in ex_getln.c also in Vim 6.3.
"daw" doesn't delete white space before single word in line. (Jens Paulus)
Dictionary:
- filter() for dictionaries: :call filter(dict, '& =~ "bla.*"')
& for key, &v for value?
- functions:
len(dict) nr of items
copy(dict) make a copy
deepcopy(dict) make a copy recursively
has_key(dict, key) whether key is present
getval(dict, key [, default])
extend(dict1, dict2) add items from dict2 to dict1
- Using "self" in function with "dict" attribute. Also allow l:self.
Such a function must be called from a dictionary entry.
Third argument of call() passes dictionary:
:let res = call(function("DictFunc"), arglist, mydict)
- Define nameless function: ":function dict.key(arg)"
- ":delfunc dict.key".
- ":unlet dict.key" "unlet list[idx]"
Mention Rsync command on runtime.php page:
rsync -avzcP --delete --exclude="dos" --delete-excluded ftp.nluug.nl::Vim/runtime/ vim63-runtime
List type:
- Make second index in list[i:j] exclusive, like Python?
Marcus Aurelius: yes
- Add List functions to version7.txt.
- Add List functions to overview of funtions in user manual.
- Explain Lists in the user manual?
Add +=, -= and .= assignments.
netrw plugin:
- provide :Explore and :Sexplore like the old file explorer?
- alignment of long listing isn't very good.
Better way to get temp file for tcltags and vimspell scripts. (javier Pena)
Possibly leave out code for temp directory.
@ -124,6 +153,10 @@ PLANNED FOR VERSION 7.0:
- 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.
Also see "Visual Assist" http://www.wholetomato.com/products:
- Put the list of choices right under the place where they would be
inserted.
- Pre-expand abbreviations, show which abbrevs would match?
- 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)
info, make a new branch.
@ -144,6 +177,7 @@ PLANNED FOR VERSION 7.0:
extension: ".filename.un~" (like swapfile but "un~" instead of "swp").
7 Support WINDOW TABS. Works like several pages, each with their own
split windows. Patch for GTK 1.2 passed on by Christian Michon, 2004 Jan 6.
Don't forget to provide an "X" to close a tab.
Also for the console!
In Emacs these are called frames. Could also call them "pages".
Use "1gt" - "99gt" to switch to a tab?
@ -244,6 +278,10 @@ List data type performance:
- Cache the last used index?
- Use blocks of items, so that finding an item by index is faster?
Dictionary data type performance:
- Use a hash to locate items
Awaiting updated patches:
--- awaiting updated patch ---
7 Add patch from Wall for this one ( ~/Mail/oldmail/wall/in.00019 ):

View File

@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.0aa. Last change: 2005 Jan 11
*version7.txt* For Vim version 7.0aa. Last change: 2005 Jan 14
VIM REFERENCE MANUAL by Bram Moolenaar
@ -51,6 +51,10 @@ buffer is still modified compared to the original file. And when undoing
all changes the file would actually be marked modified. It does mean that
":quit" fails now.
In a |literal-string| a single quote can be doubled to get one.
":echo 'a''b'" would result in "a b", but now that two quotes stand for one it
results in "a'b".
Minor incompatibilities:
@ -76,9 +80,9 @@ Win32: The effect of the <F10> key depended on 'winaltkeys'. Now it depends
on whether <F10> has been mapped or not. This allows mapping <F10> without
changing 'winaltkeys'.
When using CTRL-A on "08" it became "018", which is illogical. Now it becomes
"9". The leading zero(s) is(are) removed to avoid the number becoming octal
after incrementing "009" to "010".
When 'octal' is in 'nrformats' and using CTRL-A on "08" it became "018", which
is illogical. Now it becomes "9". The leading zero(s) is(are) removed to
avoid the number becoming octal after incrementing "009" to "010".
When 'encoding' is set to a Unicode encoding, the value for 'fileencodings'
now includes "default" before "latin1". This means that for files with 8-bit
@ -106,10 +110,6 @@ The |string()| function can be used to get a string representation of a
variable. Works for Numbers, Strings and composites of them. Then |eval()|
can be used to turn the string back into the variable value.
The |sharp-string| has been added as a convenient way to put an expression in
a string. Examples: >
:let l = filter(mylist, # & =~ '^\A'#)
KDE support *new-KDE*
-----------
@ -392,6 +392,8 @@ a bit less dependent on the X11 font management.
When a register is empty it is not stored in the viminfo file.
Removed the tcltags script, it's obsolete.
==============================================================================
COMPILE TIME CHANGES *compile-changes-7*
@ -662,4 +664,7 @@ mode. (Peter Winters)
"2daw" didn't work at end of file if the last word is a single character.
Completion for ":next a'<Tab>" put a backslash before single quote, but it was
not removed when editing a file. Now halve backslashes in save_patterns().
vim:tw=78:ts=8:ft=help:norl:

View File

@ -1,6 +1,8 @@
" Polish letters keymap for cp1250
" Maintainer: HS6_06 <hs6_06@o2.pl>
" Last Changed: 2005 Jan 9
" Last Changed: 2005 Jan 12
" Current version: 1.0.2
" History: see polish-slash.vim
" This keymap adds the special Polish letters
" to an existing Latin keyboard.
@ -9,7 +11,7 @@
" instead of AltGr+{acelnosxz} you ve to use "/" followed by {acelnosxz}
" short keymap name for statusline
let b:keymap_name = "polish-slash-cp1250"
let b:keymap_name = "PL-slash-WIN"
scriptencoding latin1

View File

@ -1,159 +0,0 @@
#!/bin/sh
# vim:ts=4:
# Generates a tag file for TCL code. Slow, but gets the job done.
#
# Written by Darren Hiebert <darren@hiebert.com>
program_name=`basename $0`
program_version="0.3"
program_author="Darren Hiebert"
author_email="darren@hiebert.com"
tmp_tagfile=/tmp/${program_name}.$$
usage="\
Usage: $program_name [-au] [-{f|o} tagfile] [--format=n] file(s)
-a append to current tag file
-f tagfile specify output tag file name (default=tags)
-o alternative for -f
-u unsorted
--format=n specify tag file format (default=2)
--help print this help message
"
# defaults
#
append=0
format=2
sorted=1
tagfile=tags
filelist=
# read options
#
getparam()
{
if [ -n "$1" ]; then
# set variable to word passed in
echo "$2='$1'; opt="
else
# set variable to next word on command line
echo "$2="'$1'"; shift"
fi
}
finished=0
while [ $# -gt 0 -a $finished -eq 0 ]
do
case "$1" in
--*)
opt=`echo "$1" | cut -c 3-`
shift
opt_name=`echo "$opt" | awk -F= '{print $1}'`
opt_value=`echo "$opt" | awk -F= '{print $2}'`
case "$opt_name" in
format) case "$opt_value" in
1|2) format=$opt_value;;
*) echo "--$opt: unsupported value" >&2; exit 1;;
esac
;;
help) echo "$usage"; exit 0;;
*) echo "$opt_name: unsupported option" >&2; exit 1;;
esac
;;
-*)
# chop off leading '-'
opt=`echo "$1" | cut -c 2-`
shift
while [ -n "$opt" ]
do
opt_char=`echo "$opt" | cut -c 1`
opt=`echo "$opt" | cut -c 2-`
case "$opt_char" in
a) append=1;;
u) sorted=0;;
o|f) eval `getparam "$opt" tagfile`;;
*) echo "$opt: unsupported option" >&2; exit 1;;
esac
done
;;
*) filelist="$*"; break;;
esac
done
if [ -z "$filelist" ] ;then
echo "$usage" >&2; exit 1
fi
# awk program for generating tags
#
ext_flags=""
ttype=""
if [ $format -eq 2 ] ;then
ext_flags=';\" %s'
ttype=", type"
fi
awkprg='
function trim_comment(string) {
comment = index(string, "#")
if (comment != 0)
string = substr(string, 0, comment-1)
return string
}
function maketag(tagname, pattern, type, line_end) {
gsub(/\\/, "\\\\", pattern)
gsub(/\//, "\\/", pattern)
if (line_end)
terminator="$"
else
terminator=""
printf("%s\t%s\t/^%s%s/'"$ext_flags"'\n", \
tagname, FILENAME, pattern, terminator'"$ttype"')
}
$1 == "proc" && $3 ~ /^{/ {
pattern = substr($0, 0, index($0, "{"))
maketag($2, pattern, "f", 0)
}
/^set[ \t]/ && $2 !~ /\(/ {
pattern = substr($0, 0, index($0, $2) + length($2))
maketag($2, pattern, "v", 0)
}
/^array[ \t]*set[ \t]/ && $3 !~ /\(/ {
pattern = substr($0, 0, index($0, $3) + length($3))
maketag($3, pattern, "v", 0)
}'
# add or correct the pseudo tags
#
if [ "$tagfile" != "-" ] ;then
if [ $append -eq 1 ]; then
# ensure existing sort flag is correct
sed -e "/^!_TAG_FILE_SORTED/s/ [01] / $sorted /" \
-e "/^!_TAG_FILE_FORMAT/s/ 1 / $format /" \
$tagfile > $tmp_tagfile
else
echo -ne "\
!_TAG_FILE_FORMAT $format /extended format; --format=1 will not append ;\" to lines/
!_TAG_FILE_SORTED $sorted /0=unsorted, 1=sorted/
!_TAG_PROGRAM_AUTHOR $program_author /$author_email/
!_TAG_PROGRAM_NAME $program_name //
!_TAG_PROGRAM_VERSION $program_version //
" > $tmp_tagfile
fi
fi
# generate tags
#
awk "$awkprg" $filelist >> $tmp_tagfile
if [ $sorted -eq 1 ] ;then
sort -u -o $tmp_tagfile $tmp_tagfile
fi
if [ "$tagfile" = '-' ] ;then
cat $tmp_tagfile
else
cp $tmp_tagfile $tagfile
fi
rm $tmp_tagfile
exit 0

1407
src/eval.c

File diff suppressed because it is too large Load Diff

View File

@ -905,6 +905,9 @@ do_filter(line1, line2, eap, cmd, do_in, do_out)
curbuf->b_op_end.lnum -= linecount; /* adjust '] */
write_lnum_adjust(-linecount); /* adjust last line
for next write */
#ifdef FEAT_FOLDING
foldUpdate(curwin, curbuf->b_op_start.lnum, curbuf->b_op_end.lnum);
#endif
}
else
{
@ -914,6 +917,7 @@ do_filter(line1, line2, eap, cmd, do_in, do_out)
curwin->w_cursor.lnum = curbuf->b_op_end.lnum;
linecount = curbuf->b_op_end.lnum - curbuf->b_op_start.lnum + 1;
}
beginline(BL_WHITE | BL_FIX); /* cursor on first non-blank */
--no_wait_return;

View File

@ -4240,7 +4240,7 @@ gui_mch_font_dialog(char_u *oldval)
GTK_FONT_SELECTION_DIALOG(dialog), (const char *)oldname);
if (oldname != oldval)
vim_free(oldval);
vim_free(oldname);
}
response = gtk_dialog_run(GTK_DIALOG(dialog));