Compare commits

...

20 Commits

Author SHA1 Message Date
Bram Moolenaar
7b0294cb9f updated for version 7.0018 2004-10-11 10:16:09 +00:00
Bram Moolenaar
7171abea1a updated for version 7.0018 2004-10-11 10:06:20 +00:00
Bram Moolenaar
349b2f643a updated for version 7.0018 2004-10-11 10:00:50 +00:00
Bram Moolenaar
3fdfa4a9a5 updated for version 7.0017 2004-10-07 21:02:47 +00:00
Bram Moolenaar
e5f258eb4c updated for version 7.0017 2004-10-07 20:45:47 +00:00
Bram Moolenaar
c0197e2815 updated for version 7.0016 2004-09-13 20:26:32 +00:00
Bram Moolenaar
15d0a8c77d updated for version 7.0015 2004-09-06 17:44:46 +00:00
Bram Moolenaar
d4755bb0e0 updated for version 7.0014 2004-09-02 19:12:26 +00:00
Bram Moolenaar
269ec658f0 updated for version 7.0013 2004-07-29 08:43:53 +00:00
Bram Moolenaar
5eb86f9199 updated for version 7.0012 2004-07-26 12:53:41 +00:00
Bram Moolenaar
89cb5e0f64 updated for version 7.0011 2004-07-19 20:55:54 +00:00
Bram Moolenaar
ab79bcbac3 updated for version 7.0010 2004-07-18 21:34:53 +00:00
Bram Moolenaar
21cf823a90 updated for version 7.0009 2004-07-16 20:18:37 +00:00
Bram Moolenaar
2df6dcc596 updated for version 7.0008 2004-07-12 15:53:54 +00:00
Bram Moolenaar
8299df966a updated for version 7.0007 2004-07-10 09:47:34 +00:00
Bram Moolenaar
325b7a2fb5 updated for version 7.0006 2004-07-05 15:58:32 +00:00
Bram Moolenaar
592e0a2a1d updated for version 7.0005 2004-07-03 16:05:59 +00:00
Bram Moolenaar
cfbc5ee48e updated for version 7.0004 2004-07-02 15:38:35 +00:00
Bram Moolenaar
843ee41eb8 updated for version 7.0003 2004-06-30 16:16:41 +00:00
Bram Moolenaar
f4b8e57ffd updated for version 7.0002 2004-06-24 15:53:16 +00:00
288 changed files with 46212 additions and 8501 deletions

View File

@@ -130,6 +130,7 @@ SRC_UNIX = \
pixmaps/gen-inline-pixbufs.sh \
pixmaps/stock_icons.h \
src/INSTALL \
src/INSTALLkde.txt \
src/Makefile \
src/auto/configure \
src/config.aap.in \
@@ -146,6 +147,11 @@ SRC_UNIX = \
src/gui_gtk_f.c \
src/gui_gtk_f.h \
src/gui_gtk_x11.c \
src/gui_kde.cc \
src/gui_kde_wid.cc \
src/gui_kde_wid.h \
src/gui_kde_x11.cc \
src/kvim_iface.h \
src/gui_motif.c \
src/gui_x11.c \
src/hangulin.c \
@@ -164,6 +170,8 @@ SRC_UNIX = \
src/proto/gui_athena.pro \
src/proto/gui_gtk.pro \
src/proto/gui_gtk_x11.pro \
src/proto/gui_kde.pro \
src/proto/gui_kde_x11.pro \
src/proto/gui_motif.pro \
src/proto/gui_x11.pro \
src/proto/hangulin.pro \
@@ -189,12 +197,15 @@ SRC_UNIX = \
SRC_DOS_UNIX = \
src/if_cscope.c \
src/if_cscope.h \
src/if_mzsch.c \
src/if_mzsch.h \
src/if_perl.xs \
src/if_perlsfio.c \
src/if_python.c \
src/if_ruby.c \
src/if_tcl.c \
src/proto/if_cscope.pro \
src/proto/if_mzsch.pro \
src/proto/if_perl.pro \
src/proto/if_perlsfio.pro \
src/proto/if_python.pro \
@@ -204,7 +215,19 @@ SRC_DOS_UNIX = \
# source files for DOS (also in the extra archive)
SRC_DOS = \
src/GvimExt \
src/GvimExt/*.mak \
src/GvimExt/GvimExt.reg \
src/GvimExt/Makefile \
src/GvimExt/README.txt \
src/GvimExt/gvimext.cpp \
src/GvimExt/gvimext.def \
src/GvimExt/gvimext.h \
src/GvimExt/gvimext.inf \
src/GvimExt/gvimext.rc \
src/GvimExt/gvimext_ming.def \
src/GvimExt/gvimext_ming.rc \
src/GvimExt/resource.h \
src/GvimExt/uninst.bat \
README_srcdos.txt \
src/INSTALLpc.txt \
src/Make_bc3.mak \
@@ -335,7 +358,14 @@ SRC_MAC = \
src/gui_mac.c \
src/gui_mac.icns \
src/gui_mac.r \
src/os_mac* \
src/os_mac.build \
src/os_mac.c \
src/os_mac.h \
src/os_mac.rsr.hqx \
src/os_mac.sit.hqx \
src/os_mac_conv.c \
src/os_macosx.c \
src/os_mac.pbproj/project.pbxproj \
src/proto/gui_mac.pro \
src/proto/os_mac.pro \
@@ -492,6 +522,13 @@ RT_SCRIPTS = \
# Unix runtime
RT_UNIX = \
README_unix.txt \
runtime/KVim.desktop \
runtime/hi16-action-make.png \
runtime/hi22-action-make.png \
runtime/kde-tips \
runtime/kvim32x32.png \
runtime/kvim48x48.png \
runtime/kvim64x64.png \
runtime/vim16x16.png \
runtime/vim16x16.xpm \
runtime/vim32x32.png \
@@ -618,8 +655,6 @@ EXTRA = \
src/tee/Makefile* \
src/tee/tee.c \
csdpmi4b.zip \
emx.dll \
emxlibcs.dll \
# generic language files
LANG_GEN = \

View File

@@ -354,6 +354,7 @@ lang: dist prepare
touch dist/$(VIMRTDIR)/src/po/sk.cp1250.po
touch dist/$(VIMRTDIR)/src/po/zh_CN.cp936.po
touch dist/$(VIMRTDIR)/src/po/ru.cp1251.po
touch dist/$(VIMRTDIR)/src/po/uk.cp1251.po
cd dist && tar cf $(VIMVER)-lang.tar $(VIMRTDIR)
gzip -9 dist/$(VIMVER)-lang.tar
@@ -568,9 +569,9 @@ doslang: dist prepare no_title.vim dist/$(COMMENT_LANG)
find dist/vim/$(VIMRTDIR) -type f -exec $(VIM) -e -u no_title.vim -c ":set tx|wq" {} \;
# Add the message translations. Trick: skip ja.mo and use ja.sjis.mo instead.
# Same for cs.mo / cs.cp1250.mo, pl.mo / pl.cp1250.mo, sk.mo / sk.cp1250.mo,
# zh_CN.mo / zh_CN.cp936.mo and ru.mo / ru.cp1251.mo.
# zh_CN.mo / zh_CN.cp936.mo, uk.mo / uk.cp1251.mo and ru.mo / ru.cp1251.mo.
for i in $(LANG_DOS); do \
if test "$$i" != "src/po/ja.mo" -a "$$i" != "src/po/pl.mo" -a "$$i" != "src/po/cs.mo" -a "$$i" != "src/po/sk.mo" -a "$$i" != "src/po/zh_CN.mo" -a "$$i" != "src/po/ru.mo"; then \
if test "$$i" != "src/po/ja.mo" -a "$$i" != "src/po/pl.mo" -a "$$i" != "src/po/cs.mo" -a "$$i" != "src/po/sk.mo" -a "$$i" != "src/po/zh_CN.mo" -a "$$i" != "src/po/ru.mo" -a "$$i" != "src/po/uk.mo"; then \
n=`echo $$i | sed -e "s+src/po/\([-a-zA-Z0-9_]*\(.UTF-8\)*\)\(.sjis\)*\(.cp1250\)*\(.cp1251\)*\(.cp936\)*.mo+\1+"`; \
mkdir dist/vim/$(VIMRTDIR)/lang/$$n; \
mkdir dist/vim/$(VIMRTDIR)/lang/$$n/LC_MESSAGES; \

BIN
emx.dll

Binary file not shown.

Binary file not shown.

44
runtime/KVim.desktop Normal file
View File

@@ -0,0 +1,44 @@
# KDE Config File
[Desktop Entry]
Type=Application
Exec=kvim -f %F
Icon=kvim
MiniIcon=kvim
DocPath=kvim/index.html
Comment=
Comment[xx]=xx
Terminal=0
Name=KVim
Name[eo]=VIM-fasado
Name[sv]=Kvim
Name[xx]=xx
Comment=Text Editor
Comment[ar]=محرر نصوص
Comment[bg]=Текст Редактор
Comment[de]=Texteditor
Comment[el]=Διορθωτής Κειμένου
Comment[eo]=Tekstredaktilo
Comment[et]=Tekstiredaktor
Comment[eu]=Testu Editorea
Comment[fi]=Tekstieditori
Comment[he]=עורך טקסט
Comment[is]=Textaritill
Comment[ja]=テキストエディタ
Comment[lt]=Teksto redaktorius
Comment[mt]=Editur tat-test
Comment[pt_BR]=Editor de Texto
Comment[ro]=Editor de text
Comment[ru]=редактор
Comment[sk]=Textový editor
Comment[sl]=Urejevalnik besedil
Comment[ta]=¯¨Ã ¦¾¡ÌôÀ¡Ç÷
Comment[tr]=Metin Düzenleyici
Comment[uk]=Редактор текстів
Comment[vi]=Trình soạn văn bản
Comment[xx]=xx
Comment[zh_CN]=文本编辑器
Comment[zh_TW]=文字編輯器
MimeType=application/mathml+xml;application/xhtml+xml;application/x-perl;application/x-python;application/x-shellscript;audio/x-mpegurl;audio/x-scpls;image/svg+xml;message/news;message/rfc822;text/calendar;text/css;text/english;text/html;text/mrml;text/plain;text/rdf;text/rss;text/rtf;text/sgml;text/vnd.wap.wml;text/x-adasrc;text/x-bibtex;text/x-chdr;text/x-c++hdr;text/x-csrc;text/x-c++src;text/x-csv;text/x-diff;text/x-java;text/x-katefilelist;text/x-latex;text/x-log;text/x-lyx;text/x-makefile;text/xmcd;text/xml;text/x-moc;text/x-mswinurl;text/x-objcsrc;text/x-pascal;text/x-perl;text/x-python;text/x-tcl;text/x-tex;text/x-vcalendar;text/x-vcard;text/x-xslfo;text/x-xslt
X-KDE-StartupNotify=true
X-KDE-AuthorizeAction=shell access

28
runtime/compiler/php.vim Normal file
View File

@@ -0,0 +1,28 @@
" Vim compiler file
" Compiler: PHP
" Maintainer: Doug Kearns <djkea2@mugca.its.monash.edu.au>
" URL: http://mugca.its.monash.edu.au/~djkea2/vim/compiler/php.vim
" Last Change: 2004 Sep 05
if exists("current_compiler")
finish
endif
let current_compiler = "php"
if exists(":CompilerSet") != 2 " older Vim always used :setlocal
command -nargs=* CompilerSet setlocal <args>
endif
let s:cpo_save = &cpo
set cpo-=C
CompilerSet makeprg=php\ -lq
CompilerSet errorformat=%E<b>Parse\ error</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
\%W<b>Notice</b>:\ %m\ in\ <b>%f</b>\ on\ line\ <b>%l</b><br\ />,
\%EParse\ error:\ %m\ in\ %f\ on\ line\ %l,
\%WNotice:\ %m\ in\ %f</b>\ on\ line\ %l,
\%-G%.%#
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -2,7 +2,7 @@
" Compiler: splint/lclint (C source code checker)
" Maintainer: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
" Splint Home: http://www.splint.org/
" Last Change: $Date$
" Last Change: 2004 Oct 02
" $Revision$
if exists("current_compiler")
@@ -64,7 +64,7 @@ CompilerSet errorformat=%OLCLint*m,
\%D%*\\a[%*\\d]:\ Entering\ directory\ `%f',
\%X%*\\a[%*\\d]:\ Leaving\ directory\ `%f',
\%DMaking\ %*\\a\ in\ %f,
\%C\ \ %m
\%C\ %#%m
let &cpo = s:cpo_save
unlet s:cpo_save

View File

@@ -71,6 +71,7 @@ DOCS = \
pi_gzip.txt \
pi_netrw.txt \
pi_spec.txt \
print.txt \
quickfix.txt \
quickref.txt \
quotes.txt \
@@ -126,6 +127,7 @@ DOCS = \
version4.txt \
version5.txt \
version6.txt \
version7.txt \
vi_diff.txt \
visual.txt \
windows.txt \
@@ -189,6 +191,7 @@ HTMLS = \
pi_gzip.html \
pi_netrw.html \
pi_spec.html \
print.html \
quickfix.html \
quickref.html \
quotes.html \
@@ -245,6 +248,7 @@ HTMLS = \
version4.html \
version5.html \
version6.html \
version7.html \
vi_diff.html \
visual.html \
windows.html \

View File

@@ -1,4 +1,4 @@
*autocmd.txt* For Vim version 7.0aa. Last change: 2004 Apr 20
*autocmd.txt* For Vim version 7.0aa. Last change: 2004 Sep 17
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -24,10 +24,10 @@ For a basic explanation, see section |40.3| in the user manual.
==============================================================================
1. Introduction *autocmd-intro*
You can specify commands to be executed automatically for when reading or
writing a file, when entering or leaving a buffer or window, and when exiting
Vim. For example, you can create an autocommand to set the 'cindent' option
for files matching *.c. You can also use autocommands to implement advanced
You can specify commands to be executed automatically when reading or writing
a file, when entering or leaving a buffer or window, and when exiting Vim.
For example, you can create an autocommand to set the 'cindent' option for
files matching *.c. You can also use autocommands to implement advanced
features, such as editing compressed files (see |gzip-example|). The usual
place to put autocommands is in your .vimrc or .exrc file.
@@ -234,22 +234,26 @@ BufWriteCmd Before writing the whole buffer to a file.
should not be changed. |Cmd-event|
*FileWritePre*
FileWritePre Before writing to a file, when not writing the
whole buffer.
whole buffer. Use the '[ and '] marks for the
range of lines.
*FileWritePost*
FileWritePost After writing to a file, when not writing the
whole buffer.
*FileWriteCmd*
FileWriteCmd Before writing to a file, when not writing the
whole buffer. Should do the writing to the
file. Should not change the buffer.
file. Should not change the buffer. Use the
'[ and '] marks for the range of lines.
|Cmd-event|
*FileAppendPre*
FileAppendPre Before appending to a file.
FileAppendPre Before appending to a file. Use the '[ and ']
marks for the range of lines.
*FileAppendPost*
FileAppendPost After appending to a file.
*FileAppendCmd*
FileAppendCmd Before appending to a file. Should do the
appending to the file. |Cmd-event|
appending to the file. Use the '[ and ']
marks for the range of lines.|Cmd-event|
*FilterWritePre*
FilterWritePre Before writing a file for a filter command or
making a diff.
@@ -304,7 +308,8 @@ FocusGained When Vim got input focus. Only for the GUI
*FocusLost*
FocusLost When Vim lost input focus. Only for the GUI
version and a few console versions where this
can be detected.
can be detected. May also happen when a
dialog pops up.
*FuncUndefined*
FuncUndefined When a user function is used but it isn't
defined. Useful for defining a function only
@@ -467,9 +472,26 @@ VimLeave Before exiting Vim, just after writing the
*EncodingChanged*
EncodingChanged Fires off when the 'encoding' option is
changed. Useful to set up fonts, for example.
*InsertEnter*
InsertEnter When starting Insert mode. Also for Replace
mode and Virtual Replace mode. The
|v:insertmode| variable indicates the mode.
Be careful not to move the cursor or do
anything else that the user does not expect.
*InsertChange*
InsertChange When typing <Insert> while in Insert or
Replace mode. The |v:insertmode| variable
indicates the new mode.
Be careful not to move the cursor or do
anything else that the user does not expect.
*InsertLeave*
InsertLeave When leaving Insert mode. Also when using
CTRL-O |i_CTRL-O|.
*FileEncoding*
FileEncoding Obsolete. It still works and is equivalent
to |EncodingChanged|.
*ColorScheme*
ColorScheme After loading a color scheme. |:colorscheme|
*RemoteReply*
RemoteReply When a reply from a Vim that functions as
server was received |server2client()|.
@@ -720,8 +742,9 @@ The '[ and '] marks have a special position:
the new lines will be inserted.
- Before the *ReadPost event the '[ mark is set to the first line that was
just read, the '] mark to the last line.
- Before executing the *WritePre and *AppendPre autocommands the '[ mark is
set to the first line that will be written, the '] mark to the last line.
- Before executing the *WriteCmd, *WritePre and *AppendPre autocommands the '[
mark is set to the first line that will be written, the '] mark to the last
line.
Careful: '[ and '] change when using commands that change the buffer.
In commands which expect a file name, you can use "<afile>" for the file name

View File

@@ -1,4 +1,4 @@
*change.txt* For Vim version 7.0aa. Last change: 2004 Jun 16
*change.txt* For Vim version 7.0aa. Last change: 2004 Sep 16
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -659,7 +659,7 @@ magic nomagic action ~
\0 replaced with the whole matched pattern *\0* *s/\0*
\1 replaced with the matched pattern in the first
pair of () *s/\1*
\2 replaced with the matched pattern in the first
\2 replaced with the matched pattern in the second
pair of () *s/\2*
.. .. *s/\3*
\9 replaced with the matched pattern in the ninth

View File

@@ -1,4 +1,4 @@
*cmdline.txt* For Vim version 7.0aa. Last change: 2004 Mar 31
*cmdline.txt* For Vim version 7.0aa. Last change: 2004 Jul 14
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -45,12 +45,13 @@ thus you cannot edit beyond that.
*cmdline-history* *history*
The command-lines that you enter are remembered in a history table. You can
recall them with the up and down cursor keys. There are actually four
recall them with the up and down cursor keys. There are actually five
history tables:
- one for ':' commands
- one for search strings
- one for expressions
- one for input lines, typed for the |input()| function.
- one for debug mode commands
These are completely separate. Each history can only be accessed when
entering the same type of line.
Use the 'history' option to set the number of lines that are remembered
@@ -163,6 +164,8 @@ CTRL-R CTRL-A *c_CTRL-R_CTRL-A* *c_<C-R>_<C-A>*
'path' as in |gf|
CTRL-W the Word under the cursor
CTRL-A the WORD under the cursor; see |WORD|
When 'incsearch' is set the cursor position of the currently
displayed match is used.
{not in Vi}
CTRL-F and CTRL-P: {only when +file_in_path feature is
included}
@@ -305,6 +308,7 @@ terminals)
s[earch] or / search string history
e[xpr] or = expression register history
i[nput] or @ input line history
d[ebug] or > debug command history
a[ll] all of the above
{not in Vi}

View File

@@ -1,4 +1,4 @@
*diff.txt* For Vim version 7.0aa. Last change: 2004 May 01
*diff.txt* For Vim version 7.0aa. Last change: 2004 Jul 20
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -83,7 +83,7 @@ While already in Vim you can start diff mode in three ways.
*:difft* *:diffthis*
:diffthis Make the current window part of the diff windows. This sets
the option like for "vimdiff".
the options like for "vimdiff".
:diffpatch {patchfile} *:diffp* *:diffpatch*
Use the current buffer, patch it with the diff found in
@@ -109,10 +109,22 @@ There can be up to four buffers with 'diff' set.
Since the option values are remembered with the buffer, you can edit another
file for a moment and come back to the same file and be in diff mode again.
If you don't want diff mode, reset the 'diff' option. And you probably want
to get rid of the fold column: >
:set nodiff foldcolumn=0
*:diffo* *:diffoff*
:diffoff Switch off diff mode for the current window.
:diffoff! Switch off diff mode for all windows.
The ":diffoff" command resets the relevant options to their default value.
This may be different from what the values were before diff mode was started,
the old values are not remembered.
'diff' off
'scrollbind' off
'scrollopt' without "hor"
'wrap' on
'foldmethod' "manual"
'foldcolumn' 0
==============================================================================
2. Viewing diffs *view-diffs*
@@ -332,6 +344,10 @@ get an error message. Possible causes:
If it's not clear what the problem is set the 'verbose' option to see more
messages.
The self-installing Vim includes a diff program. If you don't have it you
might want to download a diff.exe. For example from
http://jlb.twu.net/code/unixkit.php.
USING PATCHES *diff-patchexpr*

View File

@@ -1,4 +1,4 @@
*digraph.txt* For Vim version 7.0aa. Last change: 2001 Sep 03
*digraph.txt* For Vim version 7.0aa. Last change: 2004 Oct 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -28,7 +28,8 @@ An alternative is using the 'keymap' option.
*E104* *E39*
:dig[raphs] {char1}{char2} {number} ...
Add digraph {char1}{char2} to the list. {number} is
the decimal representation of the character.
the decimal representation of the character. Normally
it is the Unicode character, see |digraph-encoding|.
Example: >
:digr e: 235 a: 228
< Avoid defining a digraph with '_' (underscore) as the
@@ -48,7 +49,24 @@ In the middle of each column is the resulting character. This may be mangled
if you look at it on a system that does not support digraphs or if you print
this file.
The decimal number is the number of the character.
*digraph-encoding*
The decimal number normally is the Unicode number of the character. Note that
the meaning doesn't change when 'encoding' changes. The character will be
converted from Unicode to 'encoding' when needed. This does require the
conversion to be available, it might fail.
When Vim was compiled without the +multi_byte feature, you need to specify the
character in the encoding given with 'encoding'. You might want to use
something like this: >
if has("multi_byte")
digraph oe 339
elseif &encoding == "iso-8859-15"
digraph oe 189
endif
This defines the "oe" digraph for a character that is number 339 in Unicode
and 189 in latin9 (iso-8859-15).
==============================================================================
2. Using digraphs *digraphs-use*
@@ -142,6 +160,9 @@ Example: a: is
These are the RFC1345 digraphs for the one-byte characters. See the output of
":digraphs" for the others. The characters above 255 are only available when
Vim was compiled with the |+multi_byte| feature.
Exception: RFC1345 doesn't specify the euro sign. In Vim the digraph =e was
added for this.
*digraph-table*
char digraph hex dec official name ~
^@ NU 0x00 0 NULL (NUL)

View File

@@ -1,4 +1,4 @@
*editing.txt* For Vim version 7.0aa. Last change: 2004 Jun 17
*editing.txt* For Vim version 7.0aa. Last change: 2004 Oct 09
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -29,16 +29,26 @@ Editing a file with Vim means:
*current-file*
As long as you don't write the buffer, the original file remains unchanged.
If you start editing a file (read a file into the buffer), the file name is
remembered as the "current file name".
remembered as the "current file name". This is also known as the name of the
current buffer.
*alternate-file*
If there already was a current file name, then that one becomes the alternate
file name. All file names are remembered in the file list. When you enter a
file name, for editing (e.g., with ":e filename") or writing (e.g., with (:w
file name"), the file name is added to the list. You can use this list to
remember which files you edited and to quickly switch from one file to
another with the CTRL-^ command (e.g., to copy text). First type the number
of the file and then hit CTRL-^. {Vi: only one alternate file name}
file name. It can later be used with "#" on the command line |:_#|. However,
the alternate file name is not changed when |:keepalt| is used.
*:keepalt* *:keepa*
:keepalt {cmd} Execute {cmd} while keeping the current alternate file
name. Note that commands invoked indirectly (e.g.,
with a function) may still set the alternate file
name. {not in Vi}
All file names are remembered in the file list. When you enter a file name,
for editing (e.g., with ":e filename") or writing (e.g., with (:w file name"),
the file name is added to the list. You can use this list to remember which
files you edited and to quickly switch from one file to another with the
CTRL-^ command (e.g., to copy text). First type the number of the file and
then hit CTRL-^. {Vi: only one alternate file name}
CTRL-G or *CTRL-G* *:f* *:fi* *:file*
:f[ile] Prints the current file name (as typed), the
@@ -48,6 +58,9 @@ CTRL-G or *CTRL-G* *:f* *:fi* *:file*
make this message shorter. {Vi does not include
column number}
:f[ile]! like |:file|, but don't truncate the name even when
'shortmess' indicates this.
{count}CTRL-G Like CTRL-G, but prints the current file name with
full path. If the count is higher than 1 the current
buffer number is also given. {not in Vi}
@@ -69,7 +82,15 @@ g CTRL-G Prints the current position of the cursor in four
{not in VI}
*:file_f*
:f[ile] {name} Sets the current file name to {name}.
:f[ile][!] {name} Sets the current file name to {name}. The optional !
avoids truncating the message, as with |:file|.
If the buffer did have a name, that name becomes the
|alternate-file| name. An unlisted buffer is created
to hold the old name.
:0f[ile][!] Remove the name of the current buffer. The optional !
avoids truncating the message, as with |:file|. {not
in Vi}
:buffers
:files

View File

@@ -1,4 +1,4 @@
*eval.txt* For Vim version 7.0aa. Last change: 2004 Jun 20
*eval.txt* For Vim version 7.0aa. Last change: 2004 Oct 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -125,8 +125,8 @@ Expression syntax summary, from least to most significant:
|expr8| expr9[expr1] index in String
|expr9| number number constant
"string" string constant
'string' literal string constant
"string" string constant, backslash is special
'string' string constant
&option option value
(expr1) nested expression
variable internal variable
@@ -355,13 +355,18 @@ Note that "\000" and "\x00" force the end of the string.
literal-string *literal-string* *E115*
---------------
'string' literal string constant *expr-'*
'string' string constant *expr-'*
Note that single quotes are used.
This string is taken literally. No backslashes are removed or have a special
meaning. A literal-string cannot contain a single quote. Use a normal string
for that.
This string is taken as it is. No backslashes are removed or have a special
meaning. A literal-string cannot contain a single quote. Use a normal,
double-quoted string for that.
Single quoted strings are useful for patterns, so that backslashes do not need
to be doubled. These two commands are equivalent: >
if a =~ "\\s*"
if a =~ '\s*'
option *expr-option* *E112* *E113*
@@ -665,19 +670,26 @@ v:fname_diff The name of the diff (patch) file. Only valid while
*v:folddashes* *folddashes-variable*
v:folddashes Used for 'foldtext': dashes representing foldlevel of a closed
fold.
Read-only. |fold-foldtext|
Read-only in the |sandbox|. |fold-foldtext|
*v:foldlevel* *foldlevel-variable*
v:foldlevel Used for 'foldtext': foldlevel of closed fold.
Read-only. |fold-foldtext|
Read-only in the |sandbox|. |fold-foldtext|
*v:foldend* *foldend-variable*
v:foldend Used for 'foldtext': last line of closed fold.
Read-only. |fold-foldtext|
Read-only in the |sandbox|. |fold-foldtext|
*v:foldstart* *foldstart-variable*
v:foldstart Used for 'foldtext': first line of closed fold.
Read-only. |fold-foldtext|
Read-only in the |sandbox|. |fold-foldtext|
*v:insertmode* *insertmode-variable*
v:insertmode Used for the |InsertEnter| and |InsertChange| autocommand
events. Values:
i Insert mode
r Replace mode
v Virtual Replace mode
*v:lang* *lang-variable*
v:lang The current locale setting for messages of the runtime
@@ -698,9 +710,9 @@ v:lc_time The current locale setting for time messages of the runtime
command. See |multi-lang|.
*v:lnum* *lnum-variable*
v:lnum Line number for the 'foldexpr' and 'indentexpr' expressions.
Only valid while one of these expressions is being evaluated.
Read-only. |fold-expr| 'indentexpr'
v:lnum Line number for the 'foldexpr' |fold-expr| and 'indentexpr'
expressions. Only valid while one of these expressions is
being evaluated. Read-only when in the |sandbox|.
*v:prevcount* *prevcount-variable*
v:prevcount The count given for the last but one Normal mode command.
@@ -800,6 +812,7 @@ argidx() Number current index in the argument list
argv( {nr}) String {nr} entry of the argument list
browse( {save}, {title}, {initdir}, {default})
String put up a file requester
browsedir( {title}, {initdir}) String put up a directory requester
bufexists( {expr}) Number TRUE if buffer {expr} exists
buflisted( {expr}) Number TRUE if buffer {expr} is listed
bufloaded( {expr}) Number TRUE if buffer {expr} is loaded
@@ -807,6 +820,7 @@ bufname( {expr}) String Name of the buffer {expr}
bufnr( {expr}) Number Number of the buffer {expr}
bufwinnr( {expr}) Number window number of buffer {expr}
byte2line( {byte}) Number line number at byte count {byte}
byteidx( {expr}, {nr}) Number byte index of {nr}'th char in {expr}
char2nr( {expr}) Number ASCII value of first char in {expr}
cindent( {lnum}) Number C indent for line {lnum}
col( {expr}) Number column nr of cursor or mark
@@ -823,6 +837,8 @@ executable( {expr}) Number 1 if executable {expr} exists
exists( {expr}) Number TRUE if {expr} exists
expand( {expr}) String expand special keywords in {expr}
filereadable( {file}) Number TRUE if {file} is a readable file
findfile( {name}[, {path}[, {count}]])
String Find fine {name} in {path}
filewritable( {file}) Number TRUE if {file} is a writable file
fnamemodify( {fname}, {mods}) String modify file name
foldclosed( {lnum}) Number first line of fold at {lnum} if closed
@@ -836,8 +852,10 @@ getbufvar( {expr}, {varname}) variable {varname} in buffer {expr}
getcmdline() String return the current command-line
getcmdpos() Number return cursor position in command-line
getcwd() String the current working directory
getfsize( {fname}) Number size in bytes of file
getfperm( {fname}) String file permissions of file {fname}
getfsize( {fname}) Number size in bytes of file {fname}
getftime( {fname}) Number last modification time of file
getftype( {fname}) String description of type of file {fname}
getline( {lnum}) String line {lnum} from current buffer
getreg( [{regname}]) String contents of register
getregtype( [{regname}]) String type of register
@@ -871,12 +889,12 @@ lispindent( {lnum}) Number Lisp indent for line {lnum}
localtime() Number current time
maparg( {name}[, {mode}]) String rhs of mapping {name} in mode {mode}
mapcheck( {name}[, {mode}]) String check for mappings matching {name}
match( {expr}, {pat}[, {start}])
match( {expr}, {pat}[, {start}[, {count}]])
Number position where {pat} matches in {expr}
matchend( {expr}, {pat}[, {start}])
matchend( {expr}, {pat}[, {start}[, {count}]])
Number position where {pat} ends in {expr}
matchstr( {expr}, {pat}[, {start}])
String match of {pat} in {expr}
matchstr( {expr}, {pat}[, {start}[, {count}]])
String {count}'th match of {pat} in {expr}
mode() String current editing mode
nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum}
nr2char( {expr}) String single char with ASCII value {expr}
@@ -890,6 +908,7 @@ remote_read( {serverid}) String read reply string
remote_send( {server}, {string} [, {idvar}])
String send key sequence
rename( {from}, {to}) Number rename (move) file from {from} to {to}
repeat( {expr}, {count}) String repeat {expr} {count} times
resolve( {filename}) String get filename a shortcut points to
search( {pattern} [, {flags}]) Number search for {pattern}
searchpair( {start}, {middle}, {end} [, {flags} [, {skip}]])
@@ -917,10 +936,12 @@ synID( {line}, {col}, {trans}) Number syntax ID at {line} and {col}
synIDattr( {synID}, {what} [, {mode}])
String attribute {what} of syntax ID {synID}
synIDtrans( {synID}) Number translated syntax ID of {synID}
system( {expr}) String output of shell command {expr}
system( {expr} [, {input}]) String output of shell command/filter {expr}
tempname() String name for a temporary file
tolower( {expr}) String the String {expr} switched to lowercase
toupper( {expr}) String the String {expr} switched to uppercase
tr( {src}, {fromstr}, {tostr}) String translate chars of {src} in {fromstr}
to chars in {tostr}
type( {name}) Number type of variable {name}
virtcol( {expr}) Number screen column of cursor or mark
visualmode( [expr]) String last visual mode used
@@ -967,6 +988,19 @@ browse({save}, {title}, {initdir}, {default})
{initdir} directory to start browsing in
{default} default file name
When the "Cancel" button is hit, something went wrong, or
browsing is not possible, an empty string is returned.
*browsedir()*
browsedir({title}, {initdir})
Put up a directory requester. This only works when
"has("browse")" returns non-zero (only in some GUI versions).
On systems where a directory browser is not supported a file
browser is used. In that case: select a file in the directory
to be used.
The input fields are:
{title} title for the requester
{initdir} directory to start browsing in
When the "Cancel" button is hit, something went wrong, or
browsing is not possible, an empty string is returned.
bufexists({expr}) *bufexists()*
@@ -1063,6 +1097,22 @@ byte2line({byte}) *byte2line()*
{not available when compiled without the |+byte_offset|
feature}
byteidx({expr}, {nr}) *byteidx()*
Return byte index of the {nr}'th character in the string
{expr}. Use zero for the first character, it returns zero.
This function is only useful when there are multibyte
characters, otherwise the returned value is equal to {nr}.
Composing characters are counted as a separate character.
Example : >
echo matchstr(str, ".", byteidx(str, 3))
< will display the fourth character. Another way to do the
same: >
let s = strpart(str, byteidx(str, 3))
echo strpart(s, 0, byteidx(s, 1))
< If there are less than {nr} characters -1 is returned.
If there are exactly {nr} characters the length of the string
is returned.
char2nr({expr}) *char2nr()*
Return number value of the first char in {expr}. Examples: >
char2nr(" ") returns 32
@@ -1080,7 +1130,7 @@ cindent({lnum}) *cindent()*
feature, -1 is returned.
*col()*
col({expr}) The result is a Number, which is the column of the file
col({expr}) The result is a Number, which is the byte index of the column
position given with {expr}. The accepted positions are:
. the cursor position
$ the end of the cursor line (the result is the
@@ -1236,10 +1286,19 @@ eventhandler() *eventhandler()*
executable({expr}) *executable()*
This function checks if an executable with the name {expr}
exists. {expr} must be the name of the program without any
arguments. executable() uses the normal $PATH.
On MS-DOS and MS-Windows the ".exe", ".bat", etc. must be
included. It only checks if the file exists and is not a
directory, not if it's really executable.
arguments.
executable() uses the value of $PATH and/or the normal
searchpath for programs. *PATHEXT*
On MS-DOS and MS-Windows the ".exe", ".bat", etc. can
optionally be included. Then the extensions in $PATHEXT are
tried. Thus if "foo.exe" does not exist, "foo.exe.bat" can be
found. If $PATHEXT is not set then ".exe;.com;.bat;.cmd" is
used. A dot by itself can be used in $PATHEXT to try using
the name without an extension. When 'shell' looks like a
Unix shell, then the name is also tried without adding an
extension.
On MS-DOS and MS-Windows it only checks if the file exists and
is not a directory, not if it's really executable.
The result is a Number:
1 exists
0 does not exist
@@ -1376,6 +1435,23 @@ filereadable({file}) *filereadable()*
*file_readable()*
Obsolete name: file_readable().
finddir({name}[, {path}[, {count}]]) *finddir()*
Find directory {name} in {path}.
If {path} is omitted or empty then 'path' is used.
If the optional {count} is given, find {count}'s occurrence of
{name} in {path}.
This is quite similar to the ex-command |:find|.
When the found directory is below the current directory a
relative path is returned. Otherwise a full path is returned.
Example: >
:echo findfile("tags.vim", ".;")
< Searches from the current directory upwards until it finds
the file "tags.vim".
{only available when compiled with the +file_in_path feature}
findfile({name}[, {path}[, {count}]]) *findfile()*
Just like |finddir()|, but find a file instead of a directory.
filewritable({file}) *filewritable()*
The result is a Number, which is 1 when a file with the
name {file} exists, and can be written. If {file} doesn't
@@ -1425,6 +1501,16 @@ foldtext() Returns a String, to be displayed for a closed fold. This is
first non-blank line of the fold. Leading white space, "//"
or "/*" and the text from the 'foldmarker' and 'commentstring'
options is removed.
{not available when compiled without the |+folding| feature}
foldtextresult({lnum}) *foldtextresult()*
Returns the text that is displayed for the closed fold at line
{lnum}. Evaluates 'foldtext' in the appropriate context.
When there is no closed fold at {lnum} an empty string is
returned.
{lnum} is used like with |getline()|. Thus "." is the current
line, "'m" mark m, etc.
Useful when exporting folded text, e.g., to HTML.
{not available when compiled without the |+folding| feature}
*foreground()*
@@ -1525,6 +1611,20 @@ getfsize({fname}) *getfsize()*
If {fname} is a directory, 0 is returned.
If the file {fname} can't be found, -1 is returned.
getfperm({fname}) *getfperm()*
The result is a String, which is the read, write, and execute
permissions of the given file {fname}.
If {fname} does not exist or its directory cannot be read, an
empty string is returned.
The result is of the form "rwxrwxrwx", where each group of
"rwx" flags represent, in turn, the permissions of the owner
of the file, the group the file belongs to, and other users.
If a user does not have a given permission the flag for this
is replaced with the string "-". Example: >
:echo getfperm("/etc/passwd")
< This will hopefully (from a security point of view) display
the string "rw-r--r--" or even "rw-------".
getftime({fname}) *getftime()*
The result is a Number, which is the last modification time of
the given file {fname}. The value is measured as seconds
@@ -1532,6 +1632,26 @@ getftime({fname}) *getftime()*
|localtime()| and |strftime()|.
If the file {fname} can't be found -1 is returned.
getftype({fname}) *getftype()*
The result is a String, which is a description of the kind of
file of the given file {fname}.
If {fname} does not exist an empty string is returned.
Here is a table over different kinds of files and their
results:
Normal file "file"
Directory "dir"
Symbolic link "link"
Block device "bdev"
Character device "cdev"
Socket "socket"
FIFO "fifo"
All other "other"
Example: >
getftype("/home")
< Note that a type such as "link" will only be returned on
systems that support it. On some systems only "dir" and
"file" are returned.
*getline()*
getline({lnum}) The result is a String, which is line {lnum} from the current
buffer. Example: >
@@ -1991,14 +2111,20 @@ mapcheck({name}[, {mode}]) *mapcheck()*
< This avoids adding the "_vv" mapping when there already is a
mapping for "_v" or for "_vvv".
match({expr}, {pat}[, {start}]) *match()*
match({expr}, {pat}[, {start}[, {count}]]) *match()*
The result is a Number, which gives the index (byte offset) in
{expr} where {pat} matches. A match at the first character
returns zero. If there is no match -1 is returned. Example: >
{expr} where {pat} matches.
A match at the first character returns zero.
If there is no match -1 is returned.
Example: >
:echo match("testing", "ing")
< results in "4".
See |string-match| for how {pat} is used.
If {start} is given, the search starts from index {start}.
When {count} is given use the {count}'th match. When a match
is found the search for the next one starts on character
further. Thus this example results in 1: >
echo match("testing", "..", 0, 2)
< If {start} is given, the search starts from index {start}.
The result, however, is still the index counted from the
first character. Example: >
:echo match("testing", "ing", 2)
@@ -2014,7 +2140,7 @@ match({expr}, {pat}[, {start}]) *match()*
the pattern. 'smartcase' is NOT used. The matching is always
done like 'magic' is set and 'cpoptions' is empty.
matchend({expr}, {pat}[, {start}]) *matchend()*
matchend({expr}, {pat}[, {start}[, {count}]]) *matchend()*
Same as match(), but return the index of first character after
the match. Example: >
:echo matchend("testing", "ing")
@@ -2025,7 +2151,7 @@ matchend({expr}, {pat}[, {start}]) *matchend()*
:echo matchend("testing", "ing", 5)
< result is "-1".
matchstr({expr}, {pat}[, {start}]) *matchstr()*
matchstr({expr}, {pat}[, {start}[, {count}]]) *matchstr()*
Same as match(), but return the matched string. Example: >
:echo matchstr("testing", "ing")
< results in "ing".
@@ -2134,8 +2260,9 @@ remote_read({serverid}) *remote_read()*
<
*remote_send()* *E241*
remote_send({server}, {string} [, {idvar}])
Send the {string} to {server}. The string is sent as
input keys and the function returns immediately.
Send the {string} to {server}. The string is sent as input
keys and the function returns immediately. At the Vim server
the keys are not mapped |:map|.
If {idvar} is present, it is taken as the name of a
variable and a {serverid} for later use with
remote_read() is stored there.
@@ -2161,6 +2288,12 @@ rename({from}, {to}) *rename()*
successfully, and non-zero when the renaming failed.
This function is not available in the |sandbox|.
repeat({expr}, {count}) *repeat()*
Repeat {expr} {count} times and return the concatenated
result. Example: >
:let seperator = repeat('-', 80)
< When {count} is zero or negative the result is empty.
resolve({filename}) *resolve()* *E655*
On MS-Windows, when {filename} is a shortcut (a .lnk file),
returns the path the shortcut points to in a simplified form.
@@ -2179,14 +2312,16 @@ search({pattern} [, {flags}]) *search()*
cursor position.
{flags} is a String, which can contain these character flags:
'b' search backward instead of forward
'n' do Not move the cursor
'w' wrap around the end of the file
'W' don't wrap around the end of the file
If neither 'w' or 'W' is given, the 'wrapscan' option applies.
When a match has been found its line number is returned, and
the cursor will be positioned at the match. If there is no
match a 0 is returned and the cursor doesn't move. No error
message is given.
When a match has been found its line number is returned.
The cursor will be positioned at the match, unless the 'n'
flag is used).
If there is no match a 0 is returned and the cursor doesn't
move. No error message is given.
Example (goes over all files in the argument list): >
:let n = 1
@@ -2453,6 +2588,7 @@ strridx({haystack}, {needle}) *strridx()*
{haystack}. The search is done case-sensitive. For advanced
searches use |match()|.
If the {needle} does not occur in {haystack} it returns -1.
If the {needle} is empty the length of {haystack} is returned.
See also |stridx()|. Examples: >
:echo strridx("an angry armadillo", "an") 3
<
@@ -2546,10 +2682,15 @@ synIDtrans({synID}) *synIDtrans()*
highlight the character. Highlight links given with
":highlight link" are followed.
*system()*
system({expr}) Get the output of the shell command {expr}. Note: newlines
in {expr} may cause the command to fail. The characters in
'shellquote' and 'shellxquote' may also cause trouble.
system({expr} [, {input}]) *system()* *E677*
Get the output of the shell command {expr}.
When {input} is given, this string is written to a file and
passed as stdin to the command. The string is written as-is,
you need to take care of using the correct line separators
yourself.
Note: newlines in {expr} may cause the command to fail. The
characters in 'shellquote' and 'shellxquote' may also cause
trouble.
This is not to be used for interactive commands.
The result is a String. Example: >
@@ -2592,6 +2733,20 @@ toupper({expr}) *toupper()*
characters turned into uppercase (just like applying |gU| to
the string).
tr({src}, {fromstr}, {tostr}) *tr()*
The result is a copy of the {src} string with all characters
which appear in {fromstr} replaced by the character in that
position in the {tostr} string. Thus the first character in
{fromstr} is translated into the first character in {tostr}
and so on. Exactly like the unix "tr" command.
This code also deals with multibyte characters properly.
Examples: >
echo tr("hello there", "ht", "HT")
< returns "Hello THere" >
echo tr("<blob>", "<>", "{}")
< returns "{blob}"
type({expr}) *type()*
The result is a Number:
0 if {expr} has the type Number
@@ -2666,9 +2821,15 @@ winline() The result is a Number, which is the screen line of the cursor
the window. The first line is one.
*winnr()*
winnr() The result is a Number, which is the number of the current
window. The top window has number 1. The number can be used
with |CTRL-W_w| and ":wincmd w" |:wincmd|.
winnr([{arg}]) The result is a Number, which is the number of the current
window. The top window has number 1.
When the optional argument is "$", the number of the
last window is returnd (the window count).
When the optional argument is "#", the number of the last
accessed window is returned (where |CTRL-W_p| goes to).
If there is no previous window 0 is returned.
The number can be used with |CTRL-W_w| and ":wincmd w"
|:wincmd|.
*winrestcmd()*
winrestcmd() Returns a sequence of |:resize| commands that should restore
@@ -2756,6 +2917,7 @@ gui_athena Compiled with Athena GUI.
gui_beos Compiled with BeOS GUI.
gui_gtk Compiled with GTK+ GUI (any version).
gui_gtk2 Compiled with GTK+ 2 GUI (gui_gtk is also defined).
gui_kde Compiled with KDE GUI |KVim|
gui_mac Compiled with Macintosh GUI.
gui_motif Compiled with Motif GUI.
gui_photon Compiled with Photon GUI.
@@ -2791,6 +2953,7 @@ mouse_xterm Compiled with support for xterm mouse.
multi_byte Compiled with support for editing Korean et al.
multi_byte_ime Compiled with support for IME input method.
multi_lang Compiled with support for multiple languages.
mzscheme Compiled with MzScheme interface |mzscheme|.
netbeans_intg Compiled with support for |netbeans|.
ole Compiled with OLE automation support for Win32.
os2 OS/2 version of Vim.
@@ -4577,7 +4740,7 @@ options are evaluated in a sandbox. This means that you are protected from
these expressions having nasty side effects. This gives some safety for when
these options are set from a modeline. It is also used when the command from
a tags file is executed.
This is not guaranteed 100% secure, but it should block most attacks.
The sandbox is also used for the |:sandbox| command.
These items are not allowed in the sandbox:
- changing the buffer text
@@ -4586,5 +4749,12 @@ These items are not allowed in the sandbox:
- executing a shell command
- reading or writing a file
- jumping to another buffer or editing a file
This is not guaranteed 100% secure, but it should block most attacks.
*:san* *:sandbox*
:sandbox {cmd} Execute {cmd} in the sandbox. Useful to evaluate an
option that may have been set from a modeline, e.g.
'foldexpr'.
vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*filetype.txt* For Vim version 7.0aa. Last change: 2004 May 05
*filetype.txt* For Vim version 7.0aa. Last change: 2004 Aug 31
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -82,6 +82,9 @@ You can disable it again with: >
The filetype detection is not switched off then. But if you do switch off
filetype detection, the indent files will not be loaded either.
This actually loads the file "indoff.vim" in 'runtimepath'.
This disables auto-indenting for files you will open. It will keep working in
already opened files. Reset 'autoindent', 'cindent', 'smartindent' and/or
'indentexpr' to disable indenting in an opened file.
*:filetype-off*
To disable file type detection, use this command: >
@@ -147,15 +150,15 @@ is used. The default value is set like this: >
This means that the contents of compressed files are not inspected.
*new-filetype*
If a file type that you want to use is not detected yet, there are three ways
to add it. In any way, it's better not modify the $VIMRUNTIME/filetype.vim
If a file type that you want to use is not detected yet, there are four ways
to add it. In any way, it's better not to modify the $VIMRUNTIME/filetype.vim
file. It will be overwritten when installing a new version of Vim.
A. If you want to overrule all default file type checks.
This works by writing one file for each filetype. The disadvantage is that
means there can be many files. The advantage is that you can simply drop
this file in the right directory to make it work.
*ftdetect*
1. Create your user runtime directory. You would normally use the first
item of the 'runtimepath' option. Then create the directory "ftdetect"
inside it. Example for Unix: >

View File

@@ -25,8 +25,8 @@ Other GUI documentation:
First you must make sure you actually have a version of Vim with the GUI code
included. You can check this with the ":version" command, it should include
"+GUI_Athena", "+GUI_BeOS", "+GUI_GTK", "+GUI_Motif" or "MS-Windows ... bit
GUI version".
"+GUI_Athena", "+GUI_BeOS", "+GUI_GTK", "+GUI_KDE", "+GUI_Motif" or
"MS-Windows ... bit GUI version".
How to start the GUI depends on the system used. Mostly you can run the
GUI version of Vim with:
@@ -94,8 +94,8 @@ There are a number of options which only have meaning in the GUI version of
Vim. These are 'guicursor', 'guifont', 'guipty' and 'guioptions'. They are
documented in |options.txt| with all the other options.
If using the Motif or Athena version of the GUI (but not for the GTK+ or Win32
version), a number of X resources are available. See |gui-resources|.
If using the Motif or Athena version of the GUI (but not for the KDE, GTK+ or
Win32 version), a number of X resources are available. See |gui-resources|.
Another way to set the colors for different occasions is with highlight
groups. The "Normal" group is used to set the background and foreground
@@ -479,7 +479,7 @@ a menu entry. Hit <Enter> to execute it. Hit <Esc> if you want to cancel.
This does require the |+menu| feature enabled at compile time.
*tear-off-menus*
GTK+ and Motif support Tear-off menus. These are sort of sticky menus or
KDE, GTK+ and Motif support Tear-off menus. These are sort of sticky menus or
pop-up menus that are present all the time. If the resizing does not work
correctly, this may be caused by using something like "Vim*geometry" in the
defaults. Use "Vim.geometry" instead.
@@ -646,8 +646,8 @@ because the item will never be selected. Use a single colon to keep it
simple.
*gui-toolbar*
The toolbar is currently available in the Win32, Athena, Motif, GTK+ (X11) and
Photon GUI. It should turn up in other GUIs in due course. The default
The toolbar is currently available in the Win32, Athena, Motif, GTK+ (X11),
KDE 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.
@@ -735,7 +735,7 @@ from the main menu bar. You must then use the |:popup| or |:tearoff| command
to display it.
*popup-menu*
In the Win32, GTK+, Motif, Athena and Photon GUI, you can define the special
In the Win32, KDE, GTK+, Motif, Athena and Photon GUI, you can define the special
menu "PopUp". This is the menu that is displayed when the right mouse button
is pressed, if 'mousemodel' is set to popup or popup_setpos.

View File

@@ -1,4 +1,4 @@
*gui_x11.txt* For Vim version 7.0aa. Last change: 2004 Mar 16
*gui_x11.txt* For Vim version 7.0aa. Last change: 2004 Jul 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -12,8 +12,9 @@ Vim's Graphical User Interface *gui-x11* *GUI-X11*
4. Various |gui-x11-various|
5. GTK version |gui-gtk|
6. GNOME version |gui-gnome|
7. Compiling |gui-x11-compiling|
8. X11 selection mechanism |x11-selection|
7. KDE version |gui-kde|
8. Compiling |gui-x11-compiling|
9. X11 selection mechanism |x11-selection|
Other relevant documentation:
|gui.txt| For generic items of the GUI.
@@ -59,7 +60,7 @@ flag in 'guioptions'. |-f|.
==============================================================================
2. GUI Resources *gui-resources* *.Xdefaults*
If using the Motif or Athena version of the GUI (not for the GTK+ or Win32
If using the Motif or Athena version of the GUI (not for the KDE, GTK+ or Win32
version), a number of X resources are available. You should use Vim's class
"Vim" when setting these. They are as follows:
@@ -434,7 +435,61 @@ the WM to identify the window by restoring the window role (using the |--role|
command line argument).
==============================================================================
7. Compiling *gui-x11-compiling*
7. KDE version *gui-kde* *kde* *KDE* *KVim*
The KDE version of Vim works with KDE 2.x and KDE 3.x.
KVim (name code for gui-kde) does not use traditional X settings for its
configuration.
Most important difference is the font handling, KVim uses QFont to display the
text. To set your font use the following syntax :
>
:set guifont=Fixed\ [Misc]/10/-1/5/50/0/0/0/1/0
<
the '10' value is the font size, other settings concerns more specific Qt
options which you should not need to care with.
The suggested way to choose your font is through the font selection dialog
available with the command :
:set guifont=*
Note: X Font names are not supported any more, so if you use GVim too, you'll
have to set something like this in your ~/.gvimrc : >
if has("gui_kde")
:set guifont=Fixed\ [Misc]/10/-1/5/50/0/0/0/1/0
else if has("gui_gtk")
:set guifont=-misc-fixed-medium-r-normal-*-*-100-*-*-c-*-iso10646-1
endif
<
*antialias*
KVim uses antialias for its font, so that the text looks better, to disable
this you have to refer to Qt's documentation (export QT_XFT=0 for QT 2.x).
KDE provides some other features, like being able to move the menubar and the
toolbar wherever you want around the text area.
*kde-toolbar*
KVim can be used with a KDE-look toolbar instead of Vim's default toolbar. To
enable this feature you have to run the configure script with the
--enable-kde-toolbar switch. It may be moved to a runtime option in the
future.
*DCOP*
Since Vim 6.0, the new ClientServer feature has been added, it works fine in
KVim too. KVim also provides its own communication scheme based on DCOP. This
is mainly used by the |vimpart| but can freely be used by other applications
or manually through KDE's DCOP tools. The DCOP servername is synchronized with
the X11 servername so that it's easier to identify the same KVim through the
two communication systems.
*vimpart* *vim-kpart*
KVim developers are also working on a component to allow embedding of Vim into
KDE's applications. As of this writing, the component is working and can be
used in different KDE applications. New KDE applications should support it
soon. To get more information about this component, refer to
http://freehackers.org/kvim or to the KDE project.
==============================================================================
8. Compiling *gui-x11-compiling*
If using X11, Vim's Makefile will by default first try to find the necessary
GTK+ files on your system. If the GTK+ files cannot be found, then the Motif
@@ -489,6 +544,12 @@ menus look a bit better. Edit the Makefile and look for "XAW_LIB". The
scrollbars will remain the same, because Vim has its own, which are already
3D (in fact, they look more like Motif).
*gui-x11-kde*
For Vim-KDE, you need at least Qt(>=2.x) and the corresponding kdelibs.
To compile, you must use the --with-qt-dir configure flag because QTDIR is not
automatically detected yet. Giving KDE's directories to the configure script
may also help in some cases.
*gui-x11-neXtaw*
The neXtaw version is mostly like Athena, but uses different widgets.
@@ -499,7 +560,7 @@ X11R5 with a library for X11R6 probably doesn't work (although the linking
won't give an error message, Vim will crash later).
==============================================================================
8. X11 selection mechanism *x11-selection*
9. X11 selection mechanism *x11-selection*
If using X11, in either the GUI or an xterm with an X11-aware Vim, then Vim
provides varied access to the X11 selection and clipboard. These are accessed

View File

@@ -96,6 +96,6 @@ Bug or Comment
Send comments, patches and suggestions to:
Chi-Deok Hwang <hwang@mizi.co.kr>
Nam SungHyun <namsh@lge.com>
Nam SungHyun <namsh@kldp.org>
vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*help.txt* For Vim version 7.0aa. Last change: 2004 May 04
*help.txt* For Vim version 7.0aa. Last change: 2004 Jul 05
VIM - main help file
k
@@ -129,6 +129,7 @@ Advanced editing ~
|fold.txt| hide (fold) ranges of lines
Special issues ~
|print.txt| printing
|remote.txt| using Vim as a server or client
|term.txt| using different terminals and mice
|digraph.txt| list of available digraphs
@@ -148,7 +149,8 @@ GUI ~
|gui_x11.txt| X11 GUI
Interfaces ~
|if_cscop.txt| using cscope with Vim
|if_cscop.txt| using Cscope with Vim
|if_mzsch.txt| MzScheme interface
|if_perl.txt| Perl interface
|if_pyth.txt| Python interface
|if_sniff.txt| SNiFF+ interface
@@ -187,6 +189,12 @@ Standard plugins ~
|pi_expl.txt| File explorer
LOCAL ADDITIONS: *local-additions*
|engspchk.txt| English Spelling Checker (v57) May 25, 2004
|example.txt| Example for a locally added help file
|matchit.txt| Extended "%" matching
|test.txt| Testing the h<>lp c<>mm<6D>nd n<>w
|typecorr.txt| Plugin for correcting typing mistakes
|helpp.txt| Dummy line to avoid an error message
------------------------------------------------------------------------------
*bars* Bars example

View File

@@ -1,4 +1,4 @@
*if_cscop.txt* For Vim version 7.0aa. Last change: 2004 Jan 17
*if_cscop.txt* For Vim version 7.0aa. Last change: 2004 Jul 23
VIM REFERENCE MANUAL by Andy Kahn
@@ -335,6 +335,9 @@ cscope version for Win32 see:
http://iamphet.nm.ru/cscope/index.html
The DJGPP-built version from http://cscope.sourceforge.net is known to not
work with Vim.
There are a couple of hard-coded limitations:
1. The maximum number of cscope connections allowed is 8. Do you

243
runtime/doc/if_mzsch.txt Normal file
View File

@@ -0,0 +1,243 @@
*if_mzsch.txt* For Vim version 7.0aa. Last change: 2004 Jul 05
VIM REFERENCE MANUAL by Sergey Khorev
The MzScheme Interface to Vim *mzscheme* *MzScheme*
1. Commands |mzscheme-commands|
2. Examples |mzscheme-examples|
3. Threads |mzscheme-threads|
4. The Vim access procedures |mzscheme-vim|
{Vi does not have any of these commands}
The MzScheme interface is available only if Vim was compiled with the
|+mzscheme| feature.
Based on the work of Brent Fulgham.
For downloading MzScheme and other info:
http://www.plt-scheme.org/software/mzscheme/
==============================================================================
1. Commands *mzscheme-commands*
*:mzscheme* *:mz*
:[range]mz[scheme] {stmt}
Execute MzScheme statement {stmt}. {not in Vi}
:[range]mz[scheme] << {endmarker}
{script}
{endmarker}
Execute inlined MzScheme script {script}.
Note: This command doesn't work if the MzScheme
feature wasn't compiled in. To avoid errors, see
|script-here|.
*:mzfile* *:mzf*
:[range]mzf[ile] {file} Execute the MzScheme script in {file}. {not in Vi}
All statements are executed in the namespace of the
buffer that was current during :mzfile start.
If you want to access other namespaces, use
'parameterize'.
All of these commands do essentially the same thing - they execute a piece of
MzScheme code, with the "current range" set to the given line
range.
In the case of :mzscheme, the code to execute is in the command-line.
In the case of :mzfile, the code to execute is the contents of the given file.
Each buffer has its own MzScheme namespace. Global namespace is bound to
the `global-namespace' value from the 'vimext' module.
MzScheme interface defines exception exn:vim, derived from exn.
It is raised for various Vim errors.
During compilation, the MzScheme interface will remember the current MzScheme
collection path. If you want to specify additional paths use the
'current-library-collection-paths' parameter. E.g., to cons the user-local
MzScheme collection path: >
:mz << EOF
(current-library-collection-paths
(cons
(build-path (find-system-path 'addon-dir) (version) "collects")
(current-library-collection-paths)))
EOF
<
All functionality is provided through module vimext.
The exn:vim is available without explicit import.
To avoid clashes with MzScheme, consider using prefix when requiring module,
e.g.: >
:mzscheme (require (prefix vim- vimext))
<
All the examples below assume this naming scheme. Note that you need to do
this again for every buffer.
The auto-instantiation can be achieved with autocommands, e.g. you can put
something like this in your .vimrc (EOFs should not have indentation): >
function s:MzRequire()
if has("mzscheme")
:mz << EOF
(require (prefix vim- vimext))
(let ((buf (vim-get-buff-by-name (vim-eval "expand(\"<afile>\")"))))
(when (and buf (not (eq? buf (vim-curr-buff))))
(parameterize ((current-namespace (vim-get-buff-namespace buf)))
(namespace-attach-module vim-global-namespace 'vimext)
(namespace-require '(prefix vim vimext)))))
EOF
endif
endfunction
function s:MzStartup()
if has("mzscheme")
au BufNew,BufNewFile,BufAdd,BufReadPre * :call s:MzRequire()
:mz << EOF
(current-library-collection-paths
(cons
(build-path (find-system-path 'addon-dir) (version) "collects")
(current-library-collection-paths)))
EOF
endif
endfunction
call s:MzStartup()
<
The global namespace just instantiated this module with the prefix "vimext:".
==============================================================================
2. Examples *mzscheme-examples*
>
:mzscheme (display "Hello")
:mzscheme (vim-set-buff-line 10 "This is line #10")
<
Inline script usage: >
function! <SID>SetFirstLine()
:mz << EOF
(display "!!!")
(vim-set-buff-line 1 "This is line #1")
(vim-beep)
EOF
endfunction
nmap <F9> :call <SID>SetFirstLine() <CR>
<
File execution: >
:mzfile supascript.scm
<
Accessing the current buffer namespace from an MzScheme program running in
another buffer within |:mzfile|-executed script : >
; Move to the window below
(vim-command "wincmd j")
; execute in the context of buffer, to which window belongs
; assume that buffer has 'textstring' defined
(parameterize ((current-namespace
(vim-get-buff-namespace (vim-curr-buff))))
(eval '(vim-set-buff-line 1 textstring)))
<
==============================================================================
3. Threads *mzscheme-threads*
The MzScheme interface supports threads. They are independent from OS threads,
thus scheduling is required. The option 'mzquantum' determines how often
Vim should poll for available MzScheme threads.
NOTE
Thread scheduling in the console version of Vim is less reliable than in the
GUI version.
==============================================================================
5. VIM Functions *mzscheme-vim*
*mzscheme-vimext*
The 'vimext' module provides access to procedures defined in the MzScheme
interface.
Common
------
(command {command-string}) Perform the vim ":Ex" style command.
(eval {expr-string}) Evaluate the vim command string.
NOTE clashes with MzScheme eval
(range-start) Start/End of the range passed with
(range-end) the Scheme command.
(beep) beep
(get-option {option-name} [buffer-or-window]) Get Vim option value (either
local or global, see set-option).
(set-option {string} [buffer-or-window])
Set a Vim option. String must have option
setting form (like optname=optval, or
optname+=optval, etc.) When called with
{buffer} or {window} the local option will
be set. The symbol 'global can be passed
as {buffer-or-window}. Then |:setglobal|
will be used.
global-namespace The MzScheme main namespace.
Buffers *mzscheme-buffer*
-------
(buff? {object}) Is object a buffer?
(buff-valid? {object}) Is object a valid buffer? (i.e.
corresponds to the real Vim buffer)
(get-buff-line {linenr} [buffer])
Get line from a buffer.
(set-buff-line {linenr} {string} [buffer])
Set a line in a buffer. If {string} is #f,
the line gets deleted. The [buffer]
argument is optional. If omitted, the
current buffer will be used.
(get-buff-line-list {start} {end} [buffer])
Get a list of lines in a buffer. {Start}
and {end} are 1-based. {Start} is
inclusive, {end} - exclusive.
(set-buff-line-list {start} {end} {string-list} [buffer])
Set a list of lines in a buffer. If
string-list is #f or null, the lines get
deleted. If a list is shorter than
{end}-{start} the remaining lines will
be deleted.
(get-buff-name [buffer]) Get a buffer's text name.
(get-buff-num [buffer]) Get a buffer's number.
(get-buff-size [buffer]) Get buffer line count.
(insert-buff-line-list {linenr} {string/string-list} [buffer])
Insert a list of lines into a buffer after
{linenr}. If {linenr} is 0, lines will be
inserted at start.
(curr-buff) Get the current buffer. Use procedures
from `vimcmd' module to change it.
(buff-count) Get count of total buffers in the editor.
(get-next-buff [buffer]) Get next buffer.
(get-prev-buff [buffer]) Get previous buffer. Return #f when there
are no more buffers.
(open-buff {filename}) Open a new buffer (for file "name")
(get-buff-by-name {buffername}) Get a buffer by its filename or #f
if there is no such buffer.
(get-buff-by-num {buffernum}) Get a buffer by its number (return #f if
there is no buffer with this number).
(get-buff-namespace [buffer]) Get buffer namespace.
Windows *mzscheme-window*
------
(win? {object}) Is object a window?
(win-valid? {object}) Is object a valid window (i.e. corresponds
to the real Vim window)?
(curr-win) Get the current window.
(win-count) Get count of windows.
(get-win-num [window]) Get window number.
(get-win-by-num {windownum}) Get window by its number.
(get-win-buffer [window]) Get the buffer for a given window.
(get-win-height [window])
(set-win-height {height} [window]) Get/Set height of window.
(get-win-width [window])
(set-win-width {width} [window])Get/Set width of window.
(get-win-list [buffer]) Get list of windows for a buffer.
(get-cursor [window]) Get cursor position in a window as
a pair (linenr . column).
(set-cursor (line . col) [window]) Set cursor position.
======================================================================
vim:tw=78:ts=8:sts=4:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*if_perl.txt* For Vim version 7.0aa. Last change: 2004 May 01
*if_perl.txt* For Vim version 7.0aa. Last change: 2004 Aug 30
VIM REFERENCE MANUAL by Sven Verdoolaege
@@ -156,6 +156,8 @@ VIM::Buffers([{bn}...]) With no arguments, returns a list of all the buffers
numbers {bn}, returns a list of the buffers matching
{bn}, using the same rules as Vim's internal
|bufname()| function.
WARNING: the list becomes invalid when |:bwipe| is
used. Using it anyway may crash Vim.
*perl-Windows*
VIM::Windows([{wn}...]) With no arguments, returns a list of all the windows
@@ -163,6 +165,8 @@ VIM::Windows([{wn}...]) With no arguments, returns a list of all the windows
in a scalar context. For a list of window numbers
{wn}, returns a list of the windows with those
numbers.
WARNING: the list becomes invalid when a window is
closed. Using it anyway may crash Vim.
*perl-DoCommand*
VIM::DoCommand({cmd}) Executes Ex command {cmd}.

View File

@@ -1,4 +1,4 @@
*if_pyth.txt* For Vim version 7.0aa. Last change: 2004 Feb 28
*if_pyth.txt* For Vim version 7.0aa. Last change: 2004 Jul 25
VIM REFERENCE MANUAL by Paul Moore
@@ -91,23 +91,23 @@ module before using it: >
:python import vim
Overview >
print "Hello" # displays a message
vim.command(cmd) # execute an ex command
w = vim.windows[n] # gets window "n"
cw = vim.current.window # gets the current window
b = vim.buffers[n] # gets buffer "n"
cb = vim.current.buffer # gets the current buffer
w.height = lines # sets the window height
w.cursor = (row, col) # sets the window cursor position
pos = w.cursor # gets a tuple (row, col)
name = b.name # gets the buffer file name
line = b[n] # gets a line from the buffer
lines = b[n:m] # gets a list of lines
num = len(b) # gets the number of lines
b[n] = str # sets a line in the buffer
b[n:m] = [str1, str2, str3] # sets a number of lines at once
del b[n] # deletes a line
del b[n:m] # deletes a number of lines
:py print "Hello" # displays a message
:py vim.command(cmd) # execute an ex command
:py w = vim.windows[n] # gets window "n"
:py cw = vim.current.window # gets the current window
:py b = vim.buffers[n] # gets buffer "n"
:py cb = vim.current.buffer # gets the current buffer
:py w.height = lines # sets the window height
:py w.cursor = (row, col) # sets the window cursor position
:py pos = w.cursor # gets a tuple (row, col)
:py name = b.name # gets the buffer file name
:py line = b[n] # gets a line from the buffer
:py lines = b[n:m] # gets a list of lines
:py num = len(b) # gets the number of lines
:py b[n] = str # sets a line in the buffer
:py b[n:m] = [str1, str2, str3] # sets a number of lines at once
:py del b[n] # deletes a line
:py del b[n:m] # deletes a number of lines
Methods of the "vim" module
@@ -115,8 +115,8 @@ Methods of the "vim" module
vim.command(str) *python-command*
Executes the vim (ex-mode) command str. Returns None.
Examples: >
vim.command("set tw=72")
vim.command("%s/aaa/bbb/g")
:py vim.command("set tw=72")
:py vim.command("%s/aaa/bbb/g")
< The following definition executes Normal mode commands: >
def normal(str):
vim.command("normal "+str)
@@ -126,15 +126,15 @@ vim.command(str) *python-command*
< *E659*
The ":python" command cannot be used recursively with Python 2.2 and
older. This only works with Python 2.3 and later: >
:python vim.command("python print 'Hello again Python'")
:py vim.command("python print 'Hello again Python'")
vim.eval(str) *python-eval*
Evaluates the expression str using the vim internal expression
evaluator (see |expression|). Returns the expression result as a
string.
Examples: >
text_width = vim.eval("&tw")
str = vim.eval("12+12") # NB result is a string! Use
:py text_width = vim.eval("&tw")
:py str = vim.eval("12+12") # NB result is a string! Use
# string.atoi() to convert to
# a number.
@@ -158,18 +158,18 @@ Constants of the "vim" module
vim.buffers *python-buffers*
A sequence object providing access to the list of vim buffers. The
object supports the following operations: >
b = vim.buffers[i] # Indexing (read-only)
b in vim.buffers # Membership test
n = len(vim.buffers) # Number of elements
for b in vim.buffers: # Sequential access
:py b = vim.buffers[i] # Indexing (read-only)
:py b in vim.buffers # Membership test
:py n = len(vim.buffers) # Number of elements
:py for b in vim.buffers: # Sequential access
<
vim.windows *python-windows*
A sequence object providing access to the list of vim windows. The
object supports the following operations: >
w = vim.windows[i] # Indexing (read-only)
w in vim.windows # Membership test
n = len(vim.windows) # Number of elements
for w in vim.windows: # Sequential access
:py w = vim.windows[i] # Indexing (read-only)
:py w in vim.windows # Membership test
:py n = len(vim.windows) # Number of elements
:py for w in vim.windows: # Sequential access
<
vim.current *python-current*
An object providing access (via specific attributes) to various
@@ -236,17 +236,21 @@ The buffer object methods are:
represents the part of the given buffer between line
numbers s and e |inclusive|.
Note that when adding a line it must not contain a line break character '\n'.
A trailing '\n' is allowed and ignored, so that you can do: >
:py b.append(f.readlines())
Examples (assume b is the current buffer) >
print b.name # write the buffer file name
b[0] = "hello!!!" # replace the top line
b[:] = None # delete the whole buffer
del b[:] # delete the whole buffer (same as above)
b[0:0] = [ "a line" ] # add a line at the top
del b[2] # delete a line (the third)
b.append("bottom") # add a line at the bottom
n = len(b) # number of lines
(row,col) = b.mark('a') # named mark
r = b.range(1,5) # a sub-range of the buffer
:py print b.name # write the buffer file name
:py b[0] = "hello!!!" # replace the top line
:py b[:] = None # delete the whole buffer
:py del b[:] # delete the whole buffer
:py b[0:0] = [ "a line" ] # add a line at the top
:py del b[2] # delete a line (the third)
:py b.append("bottom") # add a line at the bottom
:py n = len(b) # number of lines
:py (row,col) = b.mark('a') # named mark
:py r = b.range(1,5) # a sub-range of the buffer
==============================================================================
4. Range objects *python-range*

View File

@@ -1,4 +1,4 @@
*indent.txt* For Vim version 7.0aa. Last change: 2004 Apr 25
*indent.txt* For Vim version 7.0aa. Last change: 2004 Sep 02
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -425,8 +425,8 @@ assume a 'shiftwidth' of 4.
The defaults, spelled out in full, are:
cinoptions=>s,e0,n0,f0,{0,}0,^0,:s,=s,l0,gs,hs,ps,ts,+s,c3,C0,(2s,us,
\U0,w0,m0,j0,)20,*30
cinoptions=>s,e0,n0,f0,{0,}0,^0,:s,=s,l0,b0,gs,hs,ps,ts,is,+s,c3,C0,
/0,(2s,us,U0,w0,W0,m0,j0,)20,*30
Vim puts a line in column 1 if:
- It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
@@ -519,4 +519,15 @@ In addition, you can turn the verbose mode for debug issue: >
Make sure to do ":set cmdheight=2" first to allow the display of the message.
VIM *vim-indent*
For indenting Vim scripts there is one variable that specifies the amount of
indent for a continuation line, a line that starts with a backslash: >
:let g:vim_indent_cont = &sw * 3
Three times shiftwidth is the default value.
vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*index.txt* For Vim version 7.0aa. Last change: 2004 Jun 16
*index.txt* For Vim version 7.0aa. Last change: 2004 Sep 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -89,7 +89,7 @@ tag char action ~
|i_CTRL-V_digit| CTRL-V {number} insert three digit decimal number as a single
byte.
|i_CTRL-W| CTRL-W delete word before the cursor
|i_CTRL-X| CTRL-X {mode} enter CTRL-X sub mode, see below
|i_CTRL-X| CTRL-X {mode} enter CTRL-X sub mode, see |i_CTRL-X_index|
|i_CTRL-Y| CTRL-Y insert the character which is above the cursor
|i_CTRL-Z| CTRL-Z when 'insertmode' set: suspend Vim
|i_<Esc>| <Esc> end insert mode (unless 'insertmode' set)
@@ -141,7 +141,7 @@ tag char action ~
|i_<MouseUp>| <MouseUp> scroll three lines upwards
|i_<S-MouseUp>| <S-MouseUp> scroll a full page upwards
commands in CTRL-X submode
commands in CTRL-X submode *i_CTRL-X_index*
|i_CTRL-X_CTRL-D| CTRL-X CTRL-D complete defined identifiers
|i_CTRL-X_CTRL-E| CTRL-X CTRL-E scroll up
@@ -153,6 +153,8 @@ commands in CTRL-X submode
|i_CTRL-X_CTRL-P| CTRL-X CTRL-P previous completion
|i_CTRL-X_CTRL-T| CTRL-X CTRL-T complete identifiers from thesaurus
|i_CTRL-X_CTRL-Y| CTRL-X CTRL-Y scroll down
|i_CTRL-X_CTRL-U| CTRL-X CTRL-U complete with 'completefunc'
|i_CTRL-X_CTRL-V| CTRL-X CTRL-V complete like in : command line
|i_CTRL-X_CTRL-]| CTRL-X CTRL-] complete tags
{not available when compiled without the +insert_expand feature}
@@ -449,6 +451,8 @@ These can be used after an operator or in Visual mode to select an object.
tag command action in Normal mode ~
------------------------------------------------------------------------------
|v_aquote| a" double quoted string
|v_a'| a' single quoted string
|v_a(| a( same as ab
|v_a)| a) same as ab
|v_a<| a< "a <>" from '<' to the matching '>'
@@ -457,12 +461,15 @@ tag command action in Normal mode ~
|v_aW| aW "a WORD" (with white space)
|v_a[| a[ "a []" from '[' to the matching ']'
|v_a]| a] same as a[
|v_a`| a` string in backticks
|v_ab| ab "a block" from "[(" to "])" (with braces)
|v_ap| ap "a paragraph" (with white space)
|v_as| as "a sentence" (with white space)
|v_aw| aw "a word" (with white space)
|v_a{| a{ same as aB
|v_a}| a} same as aB
|v_iquote| i" double quoted string without the quotes
|v_i'| i' single quoted string without the quotes
|v_i(| i( same as ib
|v_i)| i) same as ib
|v_i<| i< "inner <>" from '<' to the matching '>'
@@ -471,6 +478,7 @@ tag command action in Normal mode ~
|v_iW| iW "inner WORD"
|v_i[| i[ "inner []" from '[' to the matching ']'
|v_i]| i] same as i[
|v_i`| i` string in backticks without the backticks
|v_ib| ib "inner block" from "[(" to "])"
|v_ip| ip "inner paragraph"
|v_is| is "inner sentence"
@@ -1095,12 +1103,14 @@ The commands are sorted on the non-optional part of their name.
|:cunmenu| :cunme[nu] remove menu for Command-line mode
|:cwindow| :cw[indow] open or close quickfix window
|:delete| :d[elete] delete lines
|:delmarks| :delm[arks] delete marks
|:debug| :deb[ug] run a command in debugging mode
|:debuggreedy| :debugg[reedy] read debug mode commands from normal input
|:delcommand| :delc[ommand] delete user-defined command
|:delfunction| :delf[unction] delete a user function
|:diffupdate| :dif[fupdate] update 'diff' buffers
|:diffget| :diffg[et] remove differences in current buffer
|:diffoff| :diffo[ff] switch off diff mode
|:diffpatch| :diffp[atch] apply a patch and show differences
|:diffput| :diffpu[t] remove differences in other buffer
|:diffsplit| :diffs[plit] show differences with another file
@@ -1216,6 +1226,8 @@ The commands are sorted on the non-optional part of their name.
|:mkvimrc| :mkv[imrc] write current mappings and settings to a file
|:mkview| :mkvie[w] write view of current window to a file
|:mode| :mod[e] show or change the screen mode
|:mzscheme| :mz[scheme] execute MzScheme command
|:mzfile| :mzf[ile] execute MzScheme script file
|:next| :n[ext] go to next file in the argument list
|:new| :new create a new empty window
|:nmap| :nm[ap] like ":map" but for Normal mode
@@ -1344,6 +1356,7 @@ The commands are sorted on the non-optional part of their name.
|:stop| :st[op] suspend the editor or escape to a shell
|:stag| :sta[g] split window and jump to a tag
|:startinsert| :star[tinsert] start Insert mode
|:startreplace| :startr[eplace] start Replace mode
|:stopinsert|| :stopi[nsert] stop Insert mode
|:stjump| :stj[ump] do ":tjump" and split window
|:stselect| :sts[elect] do ":tselect" and split window

View File

@@ -1,4 +1,4 @@
*insert.txt* For Vim version 7.0aa. Last change: 2004 Jun 16
*insert.txt* For Vim version 7.0aa. Last change: 2004 Jul 04
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -375,6 +375,11 @@ This redefines the backspace key to start a new undo sequence. You can now
undo the effect of the backspace key, without changing what you typed before
that, with CTRL-O u.
Using CTRL-O splits undo: the text typed before and after it is undone
separately. If you want to avoid this (e.g., in a mapping) you might be able
to use CTRL-R = |i_CTRL-R|. E.g., to call a function: >
:imap <F2> <C-R>=MyFunc()<CR>
When the 'whichwrap' option is set appropriately, the <Left> and <Right>
keys on the first/last character in the line make the cursor wrap to the
previous/next line.
@@ -849,6 +854,23 @@ CTRL-X CTRL-V Guess what kind of item is in front of the cursor and
completion, for example: >
:imap <Tab> <C-X><C-V>
User defined completing *compl-function*
Completion is done by a function that can be defined by the user with the
'completefunc' option. See the option for how the function is called and an
example.
*i_CTRL-X_CTRL-U*
CTRL-X CTRL-U Guess what kind of item is in front of the cursor and
find the first match for it.
CTRL-U or
CTRL-N Use the next match. This match replaces the previous
one.
CTRL-P Use the previous match. This match replaces the
previous one.
Completing keywords from different sources *compl-generic*
*i_CTRL-N*
@@ -969,6 +991,19 @@ NOTE: ":append" and ":insert" don't work properly in between ":if" and
typing <Esc> in Insert mode.
Can be used in an autocommand, example: >
:au BufEnter scratch stopinsert
<
*replacing-ex* *:startreplace*
:startr[eplace][!] Start Replace mode just after executing this command.
Works just like typing "R" in Normal mode. When the
! is included it acts just like "$R" had been typed
(ie. begin replace mode at the end-of-line). Other-
wise replacement begins at the cursor position.
Note that when using this command in a function or
script that the replacement will only start after
the function or script is finished.
{not in Vi}
{not available when compiled without the +ex_extra
feature}
==============================================================================
10. Inserting a file *inserting-file*

View File

@@ -1,4 +1,4 @@
*intro.txt* For Vim version 7.0aa. Last change: 2004 Jun 12
*intro.txt* For Vim version 7.0aa. Last change: 2004 Oct 08
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -226,12 +226,14 @@ Vim would never have become what it is now, without the help of these people!
Kayhan Demirel sent me news in Uganda
Chris & John Downey xvi (ideas for multi-windows version)
Henk Elbers first VMS port
Daniel Elstner GTK+ 2 port
Eric Fischer Mac port, 'cindent', and other improvements
Benji Fisher Answering lots of user questions
Bill Foster Athena GUI port
Loic Grenie xvim (ideas for multi windows version)
Sven Guckes Vim promotor and previous WWW page maintainer
Darren Hiebert Exuberant ctags
Jason Hildebrand GTK+ 2 port
Bruce Hunsaker improvements for VMS port
Andy Kahn Cscope support, GTK+ GUI port
Oezguer Kesim Maintainer of Vim Mailing Lists

View File

@@ -1,4 +1,4 @@
*mbyte.txt* For Vim version 7.0aa. Last change: 2004 Jun 16
*mbyte.txt* For Vim version 7.0aa. Last change: 2004 Jul 05
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -742,6 +742,8 @@ is suitable for complex input, such as CJK.
Traditional and Simplified Chinese characters. And it can accept other
locale if you make a correct input table. Xcin can be found at:
http://xcin.linux.org.tw/
Others are scim: http://scim.freedesktop.org/ and fcitx:
http://www.fcitx.org/
- Conversion Server
*conversion-server*
@@ -1360,7 +1362,7 @@ options.txt for detailed information.
Contributions specifically for the multi-byte features by:
Chi-Deok Hwang <hwang@mizi.co.kr>
Nam SungHyun <namsh@lge.com>
Nam SungHyun <namsh@kldp.org>
K.Nagano <nagano@atese.advantest.co.jp>
Taro Muraoka <koron@tka.att.ne.jp>
Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>

View File

@@ -1,4 +1,4 @@
*message.txt* For Vim version 7.0aa. Last change: 2004 Jan 17
*message.txt* For Vim version 7.0aa. Last change: 2004 Aug 26
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -412,6 +412,12 @@ abandon the buffer forcefully, e.g., with ":qa!". Careful, make sure you
don't throw away changes you really want to keep. You might have forgotten
about a buffer, especially when 'hidden' is set.
>
[No write since last change]
This appears when executing a shell command while at least one buffer was
changed. To avoid the message reset the 'warn' option.
*E38* >
Null argument
@@ -643,6 +649,7 @@ and |+X11| features.
A command line started with a backslash or the range of a command contained a
backslash in a wrong place. This is often caused by command-line continuation
being disabled. Remove the 'C' flag from the 'cpoptions' option to enable it.
Or use ":set nocp".
*E471* >
Argument required

View File

@@ -1,4 +1,4 @@
*motion.txt* For Vim version 7.0aa. Last change: 2004 Jun 17
*motion.txt* For Vim version 7.0aa. Last change: 2004 Sep 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -83,6 +83,7 @@ are however, two general exceptions:
end of the motion is moved to the end of the previous line and the motion
becomes inclusive. Example: "}" moves to the first line after a paragraph,
but "d}" will not include that line.
*exclusive-linewise*
2. If the motion is exclusive, the end of the motion is in column 1 and the
start of the motion was at or before the first non-blank in the line, the
motion becomes linewise. Example: If a paragraph begins with some blanks
@@ -424,20 +425,24 @@ between Vi and Vim.
*]]*
]] [count] sections forward or to the next '{' in the
first column. When used after an operator, then the
'}' in the first column. |linewise|
first column. When used after an operator, then also
stops below a '}' in the first column. |exclusive|
Note that |exclusive-linewise| often applies.
*][*
][ [count] sections forward or to the next '}' in the
first column. |linewise|
first column. |exclusive|
Note that |exclusive-linewise| often applies.
*[[*
[[ [count] sections backward or to the previous '{' in
the first column. |linewise|
the first column. |exclusive|
Note that |exclusive-linewise| often applies.
*[]*
[] [count] sections backward or to the previous '}' in
the first column. |linewise|
the first column. |exclusive|
Note that |exclusive-linewise| often applies.
These commands move over three kinds of text objects.
@@ -597,6 +602,26 @@ iB "inner Block", select [count] Blocks, from "[count] [{"
|[{|).
When used in Visual mode it is made characterwise.
a" *v_aquote* *aquote*
a' *v_a'* *a'*
a` *v_a`* *a`*
"a quoted string". Selects the text from the previous
quote until the next quote. The 'quoteescape' is used
to skip escaped quotes.
When the cursor starts on a quote, Vim will figure out
which quote pairs form a string by searching from the
start of the line.
Any trailing or leading white space is included.
When used in Visual mode it is made characterwise.
Repeating this object in Visual mode another string is
included. A count is currently not used.
i" *v_iquote* *iquote*
i' *v_i'* *i'*
i` *v_i`* *i`*
Like a", a' and a`, but exclude the quotes and
repeating won't extend the Visual selection.
When used after an operator:
For non-block objects:
For the "a" commands: The operator applies to the object and the white
@@ -707,6 +732,24 @@ g'{mark} g`{mark}
:marks aB
< to list marks 'a' and 'B'. {not in Vi}
*:delm* *:delmarks*
:delm[arks] {marks} Delete the specified marks. Marks that can be deleted
include A-Z and 0-9. You cannot delete the ' mark.
They can be specified by giving the list of mark
names, or with a range, separated with a dash. Spaces
are ignored. Examples: >
:delmarks a deletes mark a
:delmarks a b 1 deletes marks a, b and 1
:delmarks Aa deletes marks A and a
:delmarks p-z deletes marks in the range p to z
:delmarks ^.[] deletes marks ^ . [ ]
:delmarks \" deletes mark "
< {not in Vi}
:delm[arks]! Delete all marks for the current buffer, but not marks
A-Z or 0-9.
{not in Vi}
A mark is not visible in any way. It is just a position in the file that is
remembered. Do not confuse marks with named registers, they are totally
unrelated.

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
*os_amiga.txt* For Vim version 7.0aa. Last change: 2004 Apr 25
*os_amiga.txt* For Vim version 7.0aa. Last change: 2004 Jun 28
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,6 +30,12 @@ the |+digraphs| feature. If you want to use Vim with other terminals you can
recompile with the TERMCAP option. Vim compiles with Manx 5.x and SAS 6.x.
See the makefiles and feature.h.
If you notice Vim crashes on some files when syntax highlighting is on, or
when using a search pattern with nested wildcards, it might be that the stack
is too small. Try increasing the stack size. In a shell use the Stack
command before launching Vim. On the Workbench, select the Vim icon, use the
workbench "Info" menu and change the Stack field in the form.
If you want to use different colors set the termcap codes:
t_mr (for inverted text)
t_md (for bold text)

View File

@@ -1,4 +1,4 @@
*os_mac.txt* For Vim version 7.0aa. Last change: 2004 Jun 19
*os_mac.txt* For Vim version 7.0aa. Last change: 2004 Jul 19
VIM REFERENCE MANUAL by Bram Moolenaar et al.
@@ -9,7 +9,7 @@
This file documents the particularities of the Macintosh version of Vim.
NOTE: This file is a bit outdated. You might find more useful info here:
http://macvim.swdev.org/
http://macvim.org/
1. Filename Convention |mac-filename|
2. .vimrc an .vim files |mac-vimfile|

View File

@@ -1,4 +1,4 @@
*os_msdos.txt* For Vim version 7.0aa. Last change: 2001 Sep 03
*os_msdos.txt* For Vim version 7.0aa. Last change: 2004 Aug 31
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -207,18 +207,24 @@ in such a way that it becomes too long may give unexpected results.
8. Symbolically linked files *msdos-linked-files*
When using Vim to edit a symbolically linked file on a unix NFS file server,
you may run into problems.
When writing the file, Vim does not "write through" the symlink. Instead, it
deletes the symbolic link and creates a new file in its place.
On Unix, Vim is prepared for links (symbolic or hard). A backup copy of
the original file is made and then the original file is overwritten. This
assures that all properties of the file remain the same. On non-Unix systems,
the original file is renamed and a new file is written. Only the protection
bits are set like the original file. However, this doesn't work properly when
you may run into problems. When writing the file, Vim does not "write
through" the symlink. Instead, it deletes the symbolic link and creates a new
file in its place.
On Unix, Vim is prepared for links (symbolic or hard). A backup copy of the
original file is made and then the original file is overwritten. This assures
that all properties of the file remain the same. On non-Unix systems, the
original file is renamed and a new file is written. Only the protection bits
are set like the original file. However, this doesn't work properly when
working on an NFS-mounted file system where links and other things exist. The
only way to fix this in the current version is not making a backup file, by
":set nobackup nowritebackup" |'writebackup'|
A similar problem occurs when mounting a Unix filesystem through Samba or a
similar system. When Vim creates a new file it will get the default user ID
for the mounted file system. This may be different from the original user ID.
To avoid this set the 'backupcopy' option to "yes".
==============================================================================
9. Copy/paste in a dos box *msdos-copy-paste*

View File

@@ -1,4 +1,4 @@
*os_win32.txt* For Vim version 7.0aa. Last change: 2004 May 01
*os_win32.txt* For Vim version 7.0aa. Last change: 2004 Aug 31
VIM REFERENCE MANUAL by George Reilly
@@ -184,8 +184,9 @@ A. There are no good reasons to run the 16-bit DOS version on NT. The Win32
runs on top of an 80x86 emulator.
Q. How do I change the font?
A. In the GUI version, you can use the 'guifont' option.
In the console version, you need to set the font of the console itself.
A. In the GUI version, you can use the 'guifont' option. Example: >
:set guifont=Lucida_Console:h15:cDEFAULT
< In the console version, you need to set the font of the console itself.
You cannot do this from within Vim.
Q. When I change the size of the console window with ':set lines=xx' or
@@ -249,6 +250,16 @@ A. On Unix, Vim is prepared for links (symbolic or hard). A backup copy of
things exist. The only way to fix this in the current version is not
making a backup file, by ":set nobackup nowritebackup" |'writebackup'|
Q. I'm using Vim to edit a file on a Unix file server through Samba. When I
write the file, the owner of the file is changed. Why?
A. When writing a file Vim renames the original file, this is a backup (in
case writing the file fails halfway). Then the file is written as a new
file. Samba then gives it the default owner for the file system, which may
differ from the original owner.
To avoid this set the 'backupcopy' option to "yes". Vim will then make a
copy of the file for the backup, and overwrite the original file. The
owner isn't changed then.
Q. How do I get to see the output of ":make" while it's running?
A. Basically what you need is to put a tee program that will copy its input
(the output from make) to both stdout and to the errorfile. You can find a

View File

@@ -1,4 +1,4 @@
*pattern.txt* For Vim version 7.0aa. Last change: 2004 May 09
*pattern.txt* For Vim version 7.0aa. Last change: 2004 Sep 07
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -382,7 +382,7 @@ More explanation and examples below, follow the links.
|/\%c| \%23c \%23c in column 23 |/zero-width|
|/\%v| \%23v \%23v in virtual column 23 |/zero-width|
Character classes {not in Vi}:
Character classes {not in Vi}: */character-classes*
|/\i| \i \i identifier character (see 'isident' option)
|/\I| \I \I like "\i", but excluding digits
|/\k| \k \k keyword character (see 'iskeyword' option)
@@ -431,7 +431,7 @@ Character classes {not in Vi}:
x x a character with no special meaning matches itself
|/[]| [] \[] any character specified inside the []
|/\%[]| \%[] \%[] a list of optionally matched atoms
|/\%[]| \%[] \%[] a sequence of optionally matched atoms
|/\c| \c \c ignore case
|/\C| \C \C match case
@@ -442,6 +442,12 @@ Character classes {not in Vi}:
|/\Z| \Z \Z ignore differences in Unicode "combining characters".
Useful when searching voweled Hebrew or Arabic text.
|/\%d| \%d \%d match specified decimal character (eg \%d123
|/\%x| \%x \%x match specified hex character (eg \%x2a)
|/\%o| \%o \%o match specified octal character (eg \%o040)
|/\%u| \%u \%u match specified multibyte character (eg \%u20ac)
|/\%U| \%U \%U match specified large multibyte character (eg
\%U12345678)
Example matches ~
\<\I\i* or
@@ -988,6 +994,11 @@ x A single character, with no special meaning, matches itself
\t <Tab>
\r <CR> (NOT end-of-line!)
\b <BS>
\d123 decimal number of character
\o40 octal number of character up to 0377
\x20 hexadecimal number of character up to 0xff
\u20AC hex. number of multibyte character up to 0xffff
\U1234 hex. number of multibyte character up to 0xffffffff
NOTE: The other backslash codes mentioned above do not work inside
[]!
- Matching with a collection can be slow, because each character in
@@ -996,7 +1007,7 @@ x A single character, with no special meaning, matches itself
much faster than "[0-9]" and matches the same characters.
*/\%[]* *E69* *E70* *E369*
\%[] A list of optionally matched atoms. This always matches.
\%[] A sequence of optionally matched atoms. This always matches.
It matches as much of the list of atoms it contains as possible. Thus
it stops at the first atom that doesn't match. For example: >
/r\%[ead]
@@ -1011,6 +1022,17 @@ x A single character, with no special meaning, matches itself
< Matches the words "r", "re", "ro", "rea", "roa", "read" and "road".
{not available when compiled without the +syntax feature}
*/\%d* */\%x* */\%o* */\%u* */\%U/* *E678*
\%d123 Matches the character specified with a decimal number. Must be
followed by a non-digit.
\%o40 Matches the character specified with an octal number up to 0377.
Numbers below 040 must be followed by a non-octal digit or a non-digit.
\%x2a Matches the character specified with up to two hexadecimal characters.
\%u20AC Matches the character specified with up to four hexadecimal
characters.
\%U1234abcd Matches the character specified with up to eight hexadecimal
characters.
==============================================================================
7. Ignoring case in a pattern */ignorecase*

View File

@@ -1,4 +1,4 @@
*pi_netrw.txt* For Vim version 6.2. Last change: Jun 15, 2004
*pi_netrw.txt For Vim version 6.2. Last change: Sep 13, 2004
VIM REFERENCE MANUAL by Charles E. Campbell, Jr.
@@ -16,10 +16,11 @@
4. Transparent File Transfer...........................|netrw-transparent|
5. Ex Commands.........................................|netrw-ex|
6. Variables and Options...............................|netrw-var|
7. Remote Directory Listing............................|netrw-dir|
8. Debugging...........................................|netrw-debug|
9. History.............................................|netrw-history|
10. Credits.............................................|netrw-credits|
7. Directory Browser...................................|netrw-browse|
8. Problems and Fixes..................................|netrw-problems|
9. Debugging...........................................|netrw-debug|
10. History.............................................|netrw-history|
11. Credits.............................................|netrw-credits|
The functionality mentioned here is done via using |standard-plugin|
techniques. This plugin is only available if
@@ -62,31 +63,31 @@ in your <.vimrc> file: >
scp: g:netrw_scp_cmd = "scp -q"
sftp: g:netrw_sftp_cmd = "sftp"
READING
READING *netrw-read* *netrw-nread*
:Nread ? give help
:Nread "machine:file" uses rcp
:Nread "machine file" uses ftp with <.netrc>
:Nread "machine id password file" uses ftp
:Nread "dav://machine[:port]/file" uses cadaver
:Nread "fetch://[user@]machine/file" uses fetch
:Nread "ftp://[user@]machine[[:#]port]/file" uses ftp autodetects <.netrc>
:Nread "http://[user@]machine/file" uses http uses wget
:Nread "rcp://[user@]machine/file" uses rcp
:Nread "rsync://[user@]machine[:port]/file" uses rsync
:Nread "scp://[user@]machine[[:#]port]/file" uses scp
:Nread "sftp://[user@]machine/file" uses sftp
:Nread "machine:path" uses rcp
:Nread "machine path" uses ftp with <.netrc>
:Nread "machine id password path" uses ftp
:Nread "dav://machine[:port]/path" uses cadaver
:Nread "fetch://[user@]machine/path" uses fetch
:Nread "ftp://[user@]machine[[:#]port]/path" uses ftp autodetects <.netrc>
:Nread "http://[user@]machine/path" uses http uses wget
:Nread "rcp://[user@]machine/path" uses rcp
:Nread "rsync://[user@]machine[:port]/path" uses rsync
:Nread "scp://[user@]machine[[:#]port]/path" uses scp
:Nread "sftp://[user@]machine/path" uses sftp
WRITING
WRITING *netrw-write* *netrw-nwrite*
:Nwrite ? give help
:Nwrite "machine:file" uses rcp
:Nwrite "machine file" uses ftp with <.netrc>
:Nwrite "machine id password file" uses ftp
:Nwrite "dav://machine[:port]/file" uses cadaver
:Nwrite "ftp://[user@]machine[[:#]port]/file" uses ftp autodetects <.netrc>
:Nwrite "rcp://[user@]machine/file" uses rcp
:Nwrite "rsync://[user@]machine[:port]/file" uses rsync
:Nwrite "scp://[user@]machine[[:#]port]/file" uses scp
:Nwrite "sftp://[user@]machine/file" uses sftp
:Nwrite "machine:path" uses rcp
:Nwrite "machine path" uses ftp with <.netrc>
:Nwrite "machine id password path" uses ftp
:Nwrite "dav://machine[:port]/path" uses cadaver
:Nwrite "ftp://[user@]machine[[:#]port]/path" uses ftp autodetects <.netrc>
:Nwrite "rcp://[user@]machine/path" uses rcp
:Nwrite "rsync://[user@]machine[:port]/path" uses rsync
:Nwrite "scp://[user@]machine[[:#]port]/path" uses scp
:Nwrite "sftp://[user@]machine/path" uses sftp
http: not supported!
DIRECTORY LISTING
@@ -103,7 +104,7 @@ in your <.vimrc> file: >
:call NetUserPass("uid") -- prompts for password
:call NetUserPass("uid","password") -- sets global uid and password
VARIABLES
VARIABLES *netrw-variables*
b:netrw_lastfile last file Network-read/written retained on
a per-buffer basis (supports plain :Nw )
s:netrw_line during Nw/NetWrite, holds current line number
@@ -114,17 +115,37 @@ in your <.vimrc> file: >
=0 use default ftp (uid password)
=1 use alternate ftp method (user uid password)
g:netrw_ftpmode ="binary" (default)
="ascii" (or your choice)
="ascii"
g:netrw_uid (ftp) user-id, retained on a per-session basis
g:netrw_passwd (ftp) password, retained on a per-session basis
g:netrw_win95ftp =0 use unix-style ftp even if win95/win98/winME
=1 use default method to do ftp
g:netrw_win95ftp =1 if using Win95, will remove four trailing blank
lines that o/s's ftp "provides" on transfers
=0 force normal ftp behavior (no trailing line
removal)
g:netrw_cygwin =1 assume scp under windows is from cygwin
Also permits network browsing to use
ls with time and size sorting
(default if windows)
=0 assume scp under windows accepts
windows-style paths (default otherwise)
g:netrw_use_nt_rcp=0 don't use the rcp of WinNT, Win2000 and WinXP (default)
=1 use the rcp of WinNT,... in binary mode
=0 assume Windows' scp accepts windows-style paths
Network browsing uses dir instead of ls
This option is ignored if you're using unix
g:netrw_use_nt_rcp=0 don't use the rcp of WinNT, Win2000 and WinXP
=1 use WinNT's rcp in binary mode (default)
PATHS *netrw-path*
Paths to files are generally user-directory relative for most protocols.
It is possible that some protocol will make paths relative to some
associated directory, however.
example: vim scp://user@host/somefile
example: vim scp://user@host/subdir1/subdir2/somefile
where "somefile" is the "user"'s home directory. If you wish to get a
file using root-relative paths, use the full path:
example: vim scp://user@host//somefile
example: vim scp://user@host//subdir1/subdir2/somefile
==============================================================================
@@ -152,7 +173,7 @@ transfer/protocol. Files are read from/written to a temporary file
clean up.
One may modify any protocol's implementing external application
by settinbg a variable (ex. scp uses the variable g:netrw_scp_cmd,
by setting a variable (ex. scp uses the variable g:netrw_scp_cmd,
which is defaulted to "scp -q").
Ftp, an old protocol, seems to be blessed by numerous implementations.
@@ -414,6 +435,7 @@ variables listed below, and may be modified by the user.
g:netrw_sftp_cmd variable ="sftp" >
-------------------------------------------------------------------------
<
*netrw-ftp*
The first two options both help with certain ftp's that give trouble otherwise.
In order to best understand how to use these options if ftp is giving you
troubles, a bit of discussion follows on how netrw does ftp reads.
@@ -455,6 +477,11 @@ requested it and the temporary file deleted.
If your ftp doesn't accept the "user" command and immediately just demands
a userid, then try putting "let netrw_ftp=1" in your <.vimrc>.
*netrw-cadaver*
To handle the SSL certificate dialog for untrusted servers, one may pull
down the certificate and place it into /usr/ssl/cert.pem. This operation
renders the server treatment as "trusted".
*netrw-fixup*
If your ftp for whatever reason generates unwanted lines (such as AUTH
messages) you may write a NetReadFixup(tmpfile) function:
@@ -493,32 +520,434 @@ from <netrw.vim> itself:
>
==============================================================================
7. Remote Directory Listing *netrw-dir* *netrw-list*
7. Directory Browser *netrw-browse* *netrw-dir* *netrw-list* *netrw-help*
?..........Help....................................|netrw-help|
<cr>.......Browsing................................|netrw-cr|
<del>......Deleting Files or Directories...........|netrw-delete|
-..........Going Up................................|netrw--|
a..........Hiding Files or Directories.............|netrw-a|
b..........Bookmarking a Directory.................|netrw-b|
B..........Changing to a Bookmarked Directory......|netrw-B|
c..........Make Browsing Directory The Current Dir.|netrw-c|
d..........Make A New Directory....................|netrw-d|
D..........Deleting Files or Directories...........|netrw-D|
<c-h>......Edit File/Directory Hiding List.........|netrw-h|
i..........Long Listing............................|netrw-i|
<c-l>......Refreshing the Listing..................|netrw-ctrl-l|
o..........Browsing with a Horizontal Split........|netrw-o|
p..........Preview Window..........................|netrw-p|
q..........Listing Bookmarks.......................|netrw-q|
r..........Reversing Sorting Order.................|netrw-r|
R..........Renaming Files or Directories...........|netrw-R|
s..........Selecting Sorting Style.................|netrw-s|
S..........Editing the Sorting Sequence............|netrw-S|
v..........Browsing with a Vertical Split..........|netrw-v|
x..........Customizing Browsing....................|netrw-x|
Netrw supports listing (browsing) directories on remote hosts; simply attempt
to read a "file" with a trailing slash and it will be interpreted as a
request to browse a directory:
QUICK REFERENCE COMMANDS TABLE *netrw-browse-cmds*
>
------- -----------
Command Explanation
------- -----------
< ? Causes Netrw to issue help
<cr> Netrw will enter the directory or read the file
<del> Netrw will attempt to remove the file/directory
d Make a directory
D Netrw will attempt to remove the file(s)/directory(ies)
R Netrw will attempt to rename the file(s)/directory(ies)
- Makes Netrw go up one directory
a Toggles between normal display,
hiding (suppress display of files matching g:netrw_list_hide)
showing (display only files which match g:netrw_list_hide)
c Make current browsing directory the current directory
<c-h> Edit file hiding list
i Toggles between long and short listing
<c-l> Causes Netrw to refresh the directory listing
o Enter the file/directory under the cursor in a new browser
window. A horizontal split is used.
r Reverse sorting order
s Select sorting style: by name, time, or file size
v Enter the file/directory under the cursor in a new browser
window. A vertical split is used.
x Apply a function to a file.
NETRW BROWSER VARIABLES *netrw-browse-var*
>
--- -----------
Var Explanation
--- -----------
< g:netrw_alto change from above splitting to
below splitting by setting this
variable (see |netrw-o|)
g:netrw_altv change from left splitting to
right splitting by setting this
variable (see |netrw-v|)
g:netrw_ftp_browse_reject ftp can produce a number of errors
and warnings that can show up as
"directories" and "files" in the
listing. This pattern is used to
remove such embedded messages.
g:netrw_keepdir =1 (default) keep current directory
immune from the browsing directory.
=0 keep the current directory the
same as the browsing directory.
The browsing directory is contained in
b:netrw_curdir
g:netrw_list_cmd command for listing remote directories
g:netrw_longlist if =1, then long listing will be default
g:netrw_ftp_list_cmd options for passing along to ftp for
directory listing. Defaults:
unix or g:netrw_cygwin set: : "ls -lF"
otherwise "dir"
g:netrw_list_hide comma separated list of patterns for
hiding files
g:netrw_local_mkdir command for making a local directory
g:netrw_local_rmdir remove directory command (rmdir)
g:netrw_local_rename rename file/directory command
unix-default: rm win32-default: ren
g:netrw_maxfilenamelen =32 by default, selected so as to make
long listings fit on 80 column displays.
If your screen is wider, and you have
file/directory names longer than 32 bytes,
you may set this option to keep listings
columnar.
g:netrw_mkdir_cmd command for making a remote directory
g:netrw_rm_cmd command for removing files
g:netrw_rmdir_cmd command for removing directories
g:netrw_rmf_cmd command for removing softlinks
g:netrw_hide if true, the hiding list is used
g:netrw_sort_by sort by "name", "time", or "size"
g:netrw_sort_direction sorting direction: "normal" or "reverse"
g:netrw_sort_sequence when sorting by name, first sort by the
comma-separated pattern sequence
g:netrw_timefmt specify format string to strftime() (%c)
g:netrw_winsize specify initial size of new o/v windows
INTRODUCTION TO DIRECTORY BROWSING
Netrw supports the browsing of directories on the local system and on remote
hosts, including generating listing directories, entering directories, editing
files therein, deleting files/directories, making new directories, and moving
(renaming) files and directories. The Netrw browser generally implements the
previous explorer maps and commands for remote directories, although details
(such as pertinent global variable names) necessarily differ.
The Netrw remote file and directory browser handles two protocols: ssh and
ftp. The protocol in the url, if it is ftp, will cause netrw to use ftp
in its remote browsing. Any other protocol will be used for file transfers,
but otherwise the ssh protocol will be used to do remote directory browsing.
To enter the netrw directory browser, simply attempt to read a "file" with a
trailing slash and it will be interpreted as a request to list a directory:
vim [protocol]://[user@]hostname/path/
Netrw will modify the command in g:netrw_list to perform the directory listing
operation. By default the command is:
If you'd like to avoid entering the password in for directory listings, scp,
ssh interaction, etc, see |netrw-list-hack|.
ssh HOSTNAME ls -Fa
REFRESHING THE LISTING *netrw-ctrl-l*
where the HOSTNAME becomes the hostname as requested by the attempted
To refresh either a local or remote directory listing, press ctrl-l (<c-l>) or
hit the <cr> when atop the ./ directory entry in the listing. One may also
refresh a local directory by using ":e .".
GOING UP *netrw--*
To go up a directory, press - or his the <cr> when atop the ../ directory
entry in the listing.
Netrw will modify the command in *g:netrw_list_cmd* to perform the directory
listing operation. By default the command is:
ssh HOSTNAME ls -FLa
where the HOSTNAME becomes the [user@]hostname as requested by the attempt to
read. Naturally, the user may override this command with whatever is
preferred. The NetList function which implements remote directory
browsing expects that directories will be flagged by a trailing slash.
preferred. The NetList function which implements remote directory browsing
expects that directories will be flagged by a trailing slash.
BROWSING *netrw-cr*
Browsing is simple: move the cursor onto a file or directory of interest.
Hitting the <cr> (the return key) will select the file or directory. Directories
will themselves be listed, and files will be opened using the protocol given
in the original read request.
Hitting the <cr> (the return key) will select the file or directory.
Directories will themselves be listed, and files will be opened using the
protocol given in the original read request.
LONG VS SHORT LISTING *netrw-i*
The short listing format gives just the files' and directories' names.
The long listing is either based on the "ls" command via ssh for remote
directories or displays the filename, file size (in bytes), and the
time and date of last modification for local directories.
MAKING A NEW DIRECTORY *netrw-d*
With the "d" map one may make a new directory either remotely (which
depends on the global variable g:netrw_mkdir_cmd) or locally (which depends on
the global variable g:netrw_local_mkdir). Netrw will issue a request for the
new directory's name. A bare <CR> at that point will abort the making of the
directory. Attempts to make a local directory that already exists (as either
a file or a directory) will be detected, reported on, and ignored.
DELETING FILES OR DIRECTORIES *netrw-delete* *netrw-D*
Deleting/removing files and directories involves moving the cursor to the
file/directory to be deleted and pressing "D". Directories must be empty first
before they can be successfully removed. If the directory is a softlink to a
directory, then netrw will make two requests to remove the directory before
succeeding. Netrw will ask for confirmation before doing the removal(s).
You may select a range of lines with the "V" command (visual selection),
and then pressing "D".
*g:netrw_rm_cmd*
The g:netrw_rm_cmd, g:netrw_rmf_cmd, and g:netrw_rmdir_cmd variables are used
to control the attempts to remove files and directories. The g:netrw_rm_cmd
is used with files, and its default value is:
g:netrw_rm_cmd: ssh HOSTNAME rm
*g:netrw_rmdir_cmd*
The g:netrw_rmdir_cmd variable is used to support the removal of directories.
Its default value is:
g:netrw_rmdir_cmd: ssh HOSTNAME rmdir
*g:netrw_rmf_cmd*
If removing a directory fails with g:netrw_rmdir_cmd, netrw then will attempt
to remove it again using the g:netrw_rmf_cmd variable. Its default value is:
g:netrw_rmf_cmd: ssh HOSTNAME rm -f
RENAMING FILES OR DIRECTORIES *netrw-move* *netrw-rename* *netrw-R*
Renaming/moving files and directories involves moving the cursor to the
file/directory to be moved (renamed) and pressing "R". You will then be
queried for where you want the file/directory to be moved. You may select a
range of lines with the "V" command (visual selection), and then pressing "R".
The g:netrw_rename_cmd variable is used to implement renaming. By default its
value is:
ssh HOSTNAME mv
One may rename a block of files and directories by selecting them with
the V (|linewise-visual|).
HIDING FILES OR DIRECTORIES *g:netrw-a* *g:netrw_list_hide*
Netrw's browsing facility allows one to use the hiding list in one of
three ways: ignore it, hide files which match, and show only those files
which match. The g:netrw_list_hide variable holds a comma delimited list
of patterns (ex. \.obj) which specify the hiding list. (also see |netrw-h|)
EDIT FILE OR DIRECTORY HIDING LIST *netrw-h*
The "<ctrl-h>" map brings up a requestor allowing the user to change the
file/directory hiding list. The hiding list consists of one or more patterns
delimited by commas. Files and/or directories satisfying these patterns will
be hidden (ie. not shown).
BROWSING WITH A HORIZONTALLY SPLIT WINDOW *netrw-o*
Normally one enters a file or directory using the <cr>. However, the "o" map
allows one to open a new window to hold the new directory listing or file. A
horizontal split is used. (for vertical splitting, see |netrw-v|)
Normally, the o key splits the window horizontally with the new window
and cursor at the top. To change to splitting the window horizontally
with the new window and cursor at the bottom, have
let g:netrw_alto = 1
in your <.vimrc>.
PREVIEW WINDOW
One may use a preview window (currently only for local browsing) by using
the "p" key when the cursor is atop the desired filename to be previewed.
SELECTING SORTING STYLE *netrw-s*
One may select the sorting style by name, time, or (file) size. The
"s" map allows one to circulate among the three choices; the directory
listing will automatically be refreshed to reflect the selected style.
EDITING THE SORTING SEQUENCE *netrw-S*
When "Sorted by" is name, one may specify priority via the sorting
sequence (g:netrw_sort_sequence). The sorting sequence typically
prioritizes the name-listing by suffix, although any pattern will do.
Patterns are delimited by commas. The default sorting sequence is:
>
/$,*,\.bak$,\.o$,\.h$,\.info$,\.swp$,\.obj$
<
The lone * is where all filenames not covered by one of the other
patterns will end up. One may change the sorting sequence by modifying
the g:netrw_sort_sequence variable (either manually or in your <.vimrc>)
or by using the "S" map.
REVERSING SORTING ORDER *netrw-r*
One may toggle between normal and reverse sorting order by pressing the
"r" key.
BROWSING WITH A VERTICALLY SPLIT WINDOW *netrw-v*
Normally one enters a file or directory using the <cr>. However, the "v"
map allows one to open a new window to hold the new directory listing or
file. A vertical split is used. (for horizontal splitting, see |netrw-o|)
Normally, the v key splits the window vertically with the new window
and cursor at the left. To change to splitting the window vertically
with the new window and cursor at the right, have
let g:netrw_altv = 1
in your <.vimrc>.
CUSTOMIZING BROWSING WITH A USER FUNCTION *netrw-x*
One may "enter" a file with a special handler, thereby firing up a browser or
other application, for example, on a file by hitting the "x" key. Presumably
one could write handlers that would start OpenOffice programs (oowriter), etc,
based on the file's extension coupled with the user's hitting the "x" key atop
the file.
The Netrw executor applies a user-defined function to a file, based on its
extension. Of course, the handler function must exist for it to be called!
>
Ex. mypgm.html x ->
NetrwFileHandler_html("scp://user@host/some/path/mypgm.html")
<
See the <plugin/NetrwFileHandlers.vim> for an example of how to handle an html
file with mozilla.
MAKING THE BROWSING DIRECTORY THE CURRENT DIRECTORY *netrw-c* *netrw-curdir*
By default, g:netrw_keepdir is 1. This setting means that the current
directory will not track the browsing directory. However, setting
g:netrw_keepdir to 0 (say, in your <.vimrc>) will tell netrw to have the
currently browsed directory be the current directory.
With the default setting for g:netrw_keepdir, in order to make the two
directories the same, use the "c" map (just type c). That map will set
the current directory to the current browsing directory.
BOOKMARKING A DIRECTORY *netrw-b* *netrw-bookmark* *netrw-bookmarks*
One may easily "bookmark" a directory by using
{cnt}b
Any count may be used. One may use viminfo's "!" option to retain bookmarks
between vim sessions.
CHANGING TO A BOOKMARKED DIRECTORY *netrw-B*
To change directory back to a bookmarked directory, use
{cnt}B
Any count may be used.
LISTING BOOKMARKS *netrw-q*
Pressing "q" will list the bookmarked directories. (query)
IMPROVING DIRECTORY BROWSING *netrw-list-hack*
Especially with the remote directory browser, constantly entering the password
is tedious.
For Linux/Unix systems, I suggest looking into
http://hacks.oreilly.com/pub/h/66
It gives a tip for setting up password-less use of ssh and scp, and discusses
the associated security issues.
==============================================================================
8. Debugging *netrw-debug*
8. Problems and Fixes *netrw-problems*
(This section is likely to grow as I get feedback)
(also see |netrw-debug|)
P1. I use windows 95, and my ftp dumps four blank lines at the
end of every read.
See |netrw-fixup|, and put the following into your
<.vimrc> file:
let g:netrw_win95ftp= 1
P2. I use windows, and my network browsing with ftp doesn't sort by
time or size
Windows' ftp has a minimal support for ls (ie. it doesn't
accept sorting options). It doesn't support the -F which
gives an explanatory character (ABC/ for "ABC is a directory").
Netrw uses dir to get its short and long listings. If you
think your ftp does support a full-up ls, put the following
into your <.vimrc>:
let g:netrw_ftp_list_cmd= "ls -lF"
Alternatively, if you have cygwin on your Windows box, put
into your <.vimrc>:
let g:netrw_cygwin= 1
P3. I tried rcp://user@host/ (or protocol other than ftp) and netrw
used ssh! That wasn't what I asked for...
Netrw has two methods for browsing remote directories: ssh
and ftp. Unless you specify ftp specifically, ssh is used.
When it comes time to do download a file (not just a directory
listing), netrw will use the given protocol to do so.
P4. I would like long listings to be the default.
let g:netrw_longlist=1
Check out |netrw-browse-var| for more customizations that
you can set.
P5. My times come up oddly in local browsing
Does your system's strftime() accept the "%c" to yield dates
such as "Sun Apr 27 11:49:23 1997"? If not, do a "man strftime"
and find out what option should be used. Then put it into
your <.vimrc>:
let g:netrw_timefmt= "%X" (where X is the option)
P6. I want my current directory to track my browsing.
How do I do that?
let g:netrw_keepdir= 0
==============================================================================
9. Debugging *netrw-debug*
The <netrw.vim> script is typically available as:
@@ -533,15 +962,31 @@ which is loaded automatically at startup (assuming :set nocp).
or
http://vim.sourceforge.net/scripts/script.php?script_id=120
and put it into your local plugin directory
and put it into your local plugin directory.
2. <Decho.vim> itself needs the <cecutil.vim> script, so you'll need
to put it into your .vim/plugin, too. You may obtain it from:
2. Edit the <netrw.vim> file as follows:
http://mysite.verizon.net/astronaut/vim/index.html#VimFuncs
as "DrC's Utilities"
3. Edit the <netrw.vim> file by typing:
vim netrw.vim
:DechoOn
:wq
(to restore to normal, use :DechoOff )
To restore to normal non-debugging behavior, edit <netrw.vim>
by typing
3. Then bring up vim and attempt a transfer. A set of messages
vim netrw.vim
:DechoOff
:wq
This command, provided by <Decho.vim>, will comment out all
Decho-debugging statements (Dfunc(), Dret(), Decho(), Dredir()).
4. Then bring up vim and attempt a transfer. A set of messages
should appear concerning the steps that <netrw.vim> took in
attempting to read/write your file over the network. Please
send that information to <netrw.vim>'s maintainer,
@@ -549,32 +994,67 @@ which is loaded automatically at startup (assuming :set nocp).
drchipNOSPAM at campbellfamily.biz - NOSPAM
==============================================================================
9. History *netrw-history*
10. History *netrw-history*
v46: * now handles remote directory browsing
v50: * directories now displayed using buftype=nofile; should keep the
directory names as-is
* attempts to remove empty "[No File]" buffers leftover
from :file ..name.. commands
* bugfix: a "caps-lock" editing difficulty left in v49 was fixed
* syntax highlighting for "Showing:" the hiding list included
* bookmarks can now be retained if "!" is in the viminfo option
v49: * will use ftp for http://.../ browsing v48: * One may use ftp to
do remote host file browsing
* (windows and !cygwin) remote browsing with ftp can now use
the "dir" command internally to provide listings
* g:netrw_keepdir now allows one to keep the initial current
directory as the current directory (normally the local file
browser makes the currently viewed directory the current
directory)
* g:netrw_alto and g:netrw_altv now support alternate placement
of windows started with o or v
* Nread ? and Nwrite ? now uses echomsg (instead of echo) so
:messages can repeat showing the help
* bugfix: avoids problems with partial matches of directory names
to prior buffers with longer names
* one can suppress error messages with g:netrw_quiet ctrl-h used
* instead of <Leader>h for editing hiding list one may edit the
* sorting sequence with the S map now allows confirmation of
* deletion with [y(es) n(o) a(ll) q(uit)] the "x" map now handles
* special file viewing with:
(windows) rundll32 url.dll (gnome) gnome-open (kde)
kfmclient If none of these are on the executable path, then
NetrwFileHandlers.vim is used.
* directory bookmarking during both local and remote browsing
implemented
* one may view all, use the hiding list to suppress, or use the
hiding list to show-only remote and local file/directory
listings
* improved unusual file and directory name handling preview
* window support
v47: * now handles local directory browsing. v46: * now handles
remote directory browsing
* g:netrw_silent (if 1) will cause all transfers to be silent'd
v45: * made the [user@]hostname:path form a bit more restrictive
to better handle errors in using protocols
(e.g. scp:usr@host:file was being recognized as an rcp request)
v44: * changed from "rsync -a" to just "rsync"
v45: * made the [user@]hostname:path form a bit more restrictive to
better handle errors in using protocols (e.g. scp:usr@host:file
was being recognized as an rcp request) v44: * changed from
"rsync -a" to just "rsync"
* somehow an editing error messed up the test to recognize
use of the fetch method for NetRead.
* more debugging statements included
v43: * moved "Explanation" comments to <pi_netrw.txt> help file
as "Network Reference" (|netrw-ref|)
v43: * moved "Explanation" comments to <pi_netrw.txt> help file as
"Network Reference" (|netrw-ref|)
* <netrw.vim> now uses Dfunc() Decho() and Dret() for debugging
* removed superfluous NetRestorePosn() calls
v42: * now does BufReadPre and BufReadPost events on file:///*
and file://localhost/*
v41: * installed file:///* and file://localhost/* handling
v40: * prevents redraw when a protocol error occurs so that the
user may see it
v39: * sftp support
v38: * Now uses NetRestorePosn() calls with Nread/Nwrite commands
v42: * now does BufReadPre and BufReadPost events on file:///* and
file://localhost/* v41: * installed file:///* and
file://localhost/* handling v40: * prevents redraw when a
protocol error occurs so that the user may see it v39: * sftp
support v38: * Now uses NetRestorePosn() calls with
Nread/Nwrite commands
* Temporary files now removed via bwipe! instead of bwipe
(thanks to Dave Roberts)
v37: * Claar's modifications which test if ftp is successful, otherwise
give an error message
(thanks to Dave Roberts) v37: * Claar's modifications which
test if ftp is successful, otherwise give an error message
* After a read, the alternate file was pointing to the temp file.
The temp file buffer is now wiped out.
* removed silent from transfer methods so user can see what's
@@ -582,7 +1062,7 @@ which is loaded automatically at startup (assuming :set nocp).
==============================================================================
10. Credits *netrw-credits*
11. Credits *netrw-credits*
Vim editor by Bram Moolenaar (Thanks, Bram!)
dav support by C Campbell

751
runtime/doc/print.txt Normal file
View File

@@ -0,0 +1,751 @@
*print.txt* For Vim version 7.0aa. Last change: 2004 Jul 05
VIM REFERENCE MANUAL by Bram Moolenaar
Printing *printing*
1. Introduction |print-intro|
2. Print options |print-options|
3. PostScript Printing |postscript-printing|
4. PostScript Printing Encoding |postscript-print-encoding|
5. PostScript CJK Printing |postscript-cjk-printing|
6. PostScript Printing Troubleshooting |postscript-print-trouble|
7. PostScript Utilities |postscript-print-util|
8. Formfeed Characters |printing-formfeed|
{Vi has None of this}
{only available when compiled with the |+printer| feature}
==============================================================================
1. Introduction *print-intro*
On MS-Windows Vim can print your text on any installed printer. On other
systems a PostScript file is produced. This can be directly sent to a
PostScript printer. For other printers a program like ghostscript needs to be
used.
*:ha* *:hardcopy* *E237* *E238* *E324*
:[range]ha[rdcopy][!] [arguments]
Send [range] lines (default whole file) to the
printer.
On MS-Windows a dialog is displayed to allow selection
of printer, paper size etc. To skip the dialog, use
the [!]. In this case the printer defined by
'printdevice' is used, or, if 'printdevice' is empty,
the system default printer.
For systems other than MS-Windows, PostScript is
written in a temp file and 'printexpr' is used to
actually print it. Then [arguments] can be used by
'printexpr' through |v:cmdarg|. Otherwise [arguments]
is ignored. 'printoptions' can be used to specify
paper size, duplex, etc.
:[range]ha[rdcopy][!] >{filename}
As above, but write the resulting PostScript in file
{filename}.
Things like "%" are expanded |cmdline-special|
Careful: An existing file is silently overwritten.
{only available when compiled with the |+postscript|
feature}
On MS-Windows use the "print to file" feature of the
printer driver.
Progress is displayed during printing as a page number and a percentage. To
abort printing use the interrupt key (CTRL-C or, on MS-systems, CTRL-Break).
Printer output is controlled by the 'printfont' and 'printoptions' options.
'printheader' specifies the format of a page header.
The printed file is always limited to the selected margins, irrespective of
the current window's 'wrap' or 'linebreak' settings. The "wrap" item in
'printoptions' can be used to switch wrapping off.
The current highlighting colors are used in the printout, with the following
considerations:
1) The normal background is always rendered as white (i.e. blank paper.)
2) White text or the default foreground is rendered as black, so that it shows
up!
3) If 'background' is "dark", then the colours are darkened to compensate for
the fact that otherwise they would be too bright to show up clearly on
white paper.
==============================================================================
2. Print options *print-options*
Here are the details for the options that change the way printing is done.
For generic info about setting options see |options.txt|.
*pdev-option*
'printdevice' 'pdev' string (default empty)
global
This defines the name of the printer to be used when the |:hardcopy| command
is issued with a bang (!) to skip the printer selection dialog. On Win32, it
should be the printer name exactly as it appears in the standard printer
dialog.
If the option is empty, then vim will use the system default printer for
":hardcopy!"
*penc-option* *E620*
'printencoding' 'penc' String (default empty, except for:
Windows, OS/2: cp1252,
Macintosh: mac-roman,
VMS: dec-mcs,
HPUX: hp-roman8,
EBCDIC: ebcdic-uk)
global
Sets the character encoding used when printing. This option tells VIM which
print character encoding file from the "print" directory in 'runtimepath' to
use.
This option will accept any value from |encoding-names|. Any recognized names
are converted to VIM standard names - see 'encoding' for more details. Names
not recognized by VIM will just be converted to lower case and underscores
replaced with '-' signs.
If 'printencoding' is empty or VIM cannot find the file then it will use
'encoding' (if VIM is compiled with |+multi_byte| and it is set an 8-bit
encoding) to find the print character encoding file. If VIM is unable to find
a character encoding file then it will use the "latin1" print character
encoding file.
When 'encoding' is set to a multi-byte encoding, VIM will try to convert
characters to the printing encoding for printing (if 'printencoding' is empty
then the conversion will be to latin1). Conversion to a printing encoding
other than latin1 will require VIM to be compiled with the |+iconv| feature.
If no conversion is possible then printing will fail. Any characters that
cannot be converted will be replaced with upside down question marks.
Four print character encoding files are provided to support default Mac, VMS,
HPUX, and EBCDIC character encodings and are used by default on these
platforms. Code page 1252 print character encoding is used by default on
Windows and OS/2 platforms.
*pexpr-option*
'printexpr' 'pexpr' String (default: see below)
global
Expression that is evaluated to print the PostScript produced with
|:hardcopy|.
The file name to be printed is in |v:fname_in|.
The arguments to the ":hardcopy" command are in |v:cmdarg|.
The expression must take care of deleting the file after printing it.
When there is an error, the expression must return a non-zero number.
If there is no error, return zero or an empty string.
The default for non MS-Windows or VMS systems is to simply use "lpr" to print
the file: >
system('lpr' . (&printdevice == '' ? '' : ' -P' . &printdevice)
. ' ' . v:fname_in) . delete(v:fname_in) + v:shell_error
On MS-Dos, MS-Windows and OS/2 machines the default is to copy the file to the
currently specified printdevice: >
system('copy' . ' ' . v:fname_in . (&printdevice == ''
? ' LPT1:' : (' \"' . &printdevice . '\"')))
. delete(v:fname_in)
On VMS machines the default is to send the file to either the default or
currently specified printdevice: >
system('print' . (&printdevice == '' ? '' : ' /queue=' .
&printdevice) . ' ' . v:fname_in) . delete(v:fname_in)
If you change this option, using a function is an easy way to avoid having to
escape all the spaces. Example: >
:set printexpr=PrintFile(v:fname_in)
:function PrintFile(fname)
: call system("ghostview " . a:fname)
: call delete(a:fname)
: return v:shell_error
:endfunc
Be aware that some print programs return control before they have read the
file. If you delete the file too soon it will not be printed. These programs
usually offer an option to have them remove the file when printing is done.
*E365*
If evaluating the expression fails or it results in a non-zero number, you get
an error message. In that case Vim will delete the file. In the default
value for non-MS-Windows a trick is used: Adding "v:shell_error" will result
in a non-zero number when the system() call fails.
This option cannot be set from a |modeline| or in the |sandbox|, for security
reasons.
*pfn-option* *E613*
'printfont' 'pfn' string (default "courier")
global
This is the name of the font that will be used for the |:hardcopy| command's
output. It has the same format as the 'guifont' option, except that only one
font may be named, and the special "guifont=*" syntax is not available.
In the Win32 GUI version this specifies a font name with its extra attributes,
as with the 'guifont' option.
For other systems, only ":h11" is recognized, where "11" is the point size of
the font. When omitted, the point size is 10.
*pheader-option*
'printheader' 'pheader' string (default "%<%f%h%m%=Page %N")
global
This defines the format of the header produced in |:hardcopy| output. The
option is defined in the same way as the 'statusline' option. If Vim has not
been compiled with the |+statusline| feature, this option has no effect and a
simple default header is used, which shows the page number.
*pmbcs-option*
'printmbcharset' 'pmbcs' string (default "")
global
Sets the CJK character set to be used when generating CJK output from
|:hardcopy|. The following predefined values are currently recognised by VIM:
Value Description ~
Chinese GB_2312-80
(Simplified) GBT_12345-90
MAC Apple Mac Simplified Chinese
GBT-90_MAC GB/T 12345-90 Apple Mac Simplified
Chinese
GBK GBK (GB 13000.1-93)
ISO10646 ISO 10646-1:1993
Chinese CNS_1993 CNS 11643-1993, Planes 1 & 2
(Traditional) BIG5
ETEN Big5 with ETen extensions
ISO10646 ISO 10646-1:1993
Japanese JIS_C_1978
JIS_X_1983
JIS_X_1990
MSWINDOWS Win3.1/95J (JIS X 1997 + NEC +
IBM extensions)
KANJITALK6 Apple Mac KanjiTalk V6.x
KANJITALK7 Apple Mac KanjiTalk V7.x
Korean KS_X_1992
MAC Apple Macintosh Korean
MSWINDOWS KS X 1992 with MS extensions
ISO10646 ISO 10646-1:1993
Only certain combinations of the above values and 'printencoding' are
possible. The following tables show the valid combinations:
euc-cn gbk ucs-2 utf-8 ~
Chinese GB_2312-80 x
(Simplified) GBT_12345-90 x
MAC x
GBT-90_MAC x
GBK x
ISO10646 x x
euc-tw big5 ucs-2 utf-8 ~
Chinese CNS_1993 x
(Traditional) BIG5 x
ETEN x
ISO10646 x x
euc-jp sjis ucs-2 utf-8 ~
Japanese JIS_C_1978 x x
JIS_X_1983 x x
JIS_X_1990 x x x
MSWINDOWS x
KANJITALK6 x
KANJITALK7 x
euc-kr cp949 ucs-2 utf-8 ~
Korean KS_X_1992 x
MAC x
MSWINDOWS x
ISO10646 x x
To set up the correct encoding and character set for printing some
Japanese text you would do the following; >
:set printencoding=euc-jp
:set printmbcharset=JIS_X_1983
If 'printmbcharset' is not one of the above values then it is assumed to
specify a custom multi-byte character set and no check will be made that it is
compatible with the value for 'printencoding'. VIM will look for a file
defining the character set in the "print" directory in 'runtimepath'.
*pmbfn-option*
'printmbfont' 'pmbfn' string (default "")
global
This is a comma-separated list of fields for font names to be used when
generating CJK output from |:hardcopy|. Each font name has to be preceded
with a letter indicating the style the font is to be used for as follows:
r:{font-name} font to use for normal characters
b:{font-name} font to use for bold characters
i:{font-name} font to use for italic characters
o:{font-name} font to use for bold-italic characters
A field with the r: prefix must be specified when doing CJK printing. The
other fontname specifiers are optional. If a specifier is missing then
another font will be used as follows:
if b: is missing, then use r:
if i: is missing, then use r:
if o: is missing, then use i:
Some CJK fonts do not contain characters for codes in the ASCII code range.
Also, some characters in the CJK ASCII code ranges differ in a few code points
from traditional ASCII characters. There are two additional fields to control
printing of characters in the ASCII code range.
c:yes Use Courier font for characters in the ASCII
c:no (default) code range.
a:yes Use ASCII character set for codes in the ASCII
a:no (default) code range.
The following is an example of specifying two multi-byte fonts, one for normal
and italic printing and one for bold and bold-italic printing, and using
Courier to print codes in the ASCII code range but using the national
character set: >
:set printmbfont=r:WadaMin-Regular,b:WadaMin-Bold,c:yes
<
*popt-option*
'printoptions' 'popt' string (default "")
global
This is a comma-separated list of items that control the format of the output
of |:hardcopy|:
left:{spec} left margin (default: 10pc)
right:{spec} right margin (default: 5pc)
top:{spec} top margin (default: 5pc)
bottom:{spec} bottom margin (default: 5pc)
{spec} is a number followed by "in" for inches, "pt"
for points (1 point is 1/72 of an inch), "mm" for
millimeters or "pc" for a percentage of the media
size.
Weird example:
left:2in,top:30pt,right:16mm,bottom:3pc
If the unit is not recognized there is no error and
the default value is used.
header:{nr} Number of lines to reserve for the header.
Only the first line is actually filled, thus when {nr}
is 2 there is one empty line. The header is formatted
according to 'printheader'.
header:0 Do not print a header.
header:2 (default) Use two lines for the header
syntax:n Do not use syntax highlighting. This is faster and
thus useful when printing large files.
syntax:y Do syntax highlighting.
syntax:a (default) Use syntax highlighting if the printer appears to be
able to print color or grey.
number:y Include line numbers in the printed output.
number:n (default) No line numbers.
wrap:y (default) Wrap long lines.
wrap:n Truncate long lines.
duplex:off Print on one side.
duplex:long (default) Print on both sides (when possible), bind on long
side.
duplex:short Print on both sides (when possible), bind on short
side.
collate:y (default) Collating: 1 2 3, 1 2 3, 1 2 3
collate:n No collating: 1 1 1, 2 2 2, 3 3 3
jobsplit:n (default) Do all copies in one print job
jobsplit:y Do each copy as a separate print job. Useful when
doing N-up postprocessing.
portrait:y (default) Orientation is portrait.
portrait:n Orientation is landscape.
*a4* *letter*
paper:A4 (default) Paper size: A4
paper:{name} Paper size from this table:
{name} size in cm size in inch ~
10x14 25.4 x 35.57 10 x 14
A3 29.7 x 42 11.69 x 16.54
A4 21 x 29.7 8.27 x 11.69
A5 14.8 x 21 5.83 x 8.27
B4 25 x 35.3 10.12 x 14.33
B5 17.6 x 25 7.17 x 10.12
executive 18.42 x 26.67 7.25 x 10.5
folio 21 x 33 8.27 x 13
ledger 43.13 x 27.96 17 x 11
legal 21.59 x 35.57 8.5 x 14
letter 21.59 x 27.96 8.5 x 11
quarto 21.59 x 27.5 8.5 x 10.83
statement 13.97 x 21.59 5.5 x 8.5
tabloid 27.96 x 43.13 11 x 17
formfeed:n (default) Treat form feed characters (0x0c) as a normal print
character.
formfeed:y When a form feed character is encountered, continue
printing of the current line at the beginning of the
first line on a new page.
The item indicated with (default) is used when the item is not present. The
values are not always used, especially when using a dialog to select the
printer and options.
Example: >
:set printoptions=paper:letter,duplex:off
==============================================================================
3. PostScript Printing *postscript-printing*
*E455* *E456* *E457* *E624*
Provided you have enough disk space there should be no problems generating a
PostScript file. You need to have the runtime files correctly installed (if
you can find the help files, they probably are).
There are currently a number of limitations with PostScript printing:
- 'printfont' - The font name is ignored (the Courier family is always used -
it should be available on all PostScript printers) but the font size is
used.
- 'printoptions' - The duplex setting is used when generating PostScript
output, but it is up to the printer to take notice of the setting. If the
printer does not support duplex printing then it should be silently ignored.
Some printers, however, don't print at all.
- 8-bit support - While a number of 8-bit print character encodings are
supported it is possible that some characters will not print. Whether a
character will print depends on the font in the printer knowing the
character. Missing characters will be replaced with an upside down question
mark, or a space if that character is also not known by the font. It may be
possible to get all the characters in an encoding to print by installing a
new version of the Courier font family.
- Multi-byte support - Currently VIM will try to convert multi-byte characters
to the 8-bit encoding specified by 'printencoding' (or latin1 if it is
empty). Any characters that are not successfully converted are shown as
unknown characters. Printing will fail if VIM cannot convert the multi-byte
to the 8-bit encoding.
==============================================================================
4. Custom 8-bit Print Character Encodings *postscript-print-encoding*
*E618* *E619*
To use your own print character encoding when printing 8-bit character data
you need to define your own PostScript font encoding vector. Details on how
to to define a font encoding vector is beyond the scope of this help file, but
you can find details in the PostScript Language Reference Manual, 3rd Edition,
published by Addison-Wesley and available in PDF form at
http://www.adobe.com/. The following describes what you need to do for VIM to
locate and use your print character encoding.
i. Decide on a unique name for your encoding vector, one that does not clash
with any of the recognized or standard encoding names that VIM uses (see
|encoding-names| for a list), and that no one else is likely to use.
ii. Copy $VIMRUNTIME/print/latin1.ps to the print subdirectory in your
'runtimepath' and rename it with your unique name.
iii. Edit your renamed copy of latin1.ps, replacing all occurrences of latin1
with your unique name (don't forget the line starting %%Title:), and
modify the array of glyph names to define your new encoding vector. The
array must have exactly 256 entries or you will not be able to print!
iv. Within VIM, set 'printencoding' to your unique encoding name and then
print your file. VIM will now use your custom print character encoding.
VIM will report an error with the resource file if you change the order or
content of the first 3 lines, other than the name of the encoding on the line
starting %%Title: or the version number on the line starting %%Version:.
[Technical explanation for those that know PostScript - VIM looks for a file
with the same name as the encoding it will use when printing. The file
defines a new PostScript Encoding resource called /VIM-name, where name is the
print character encoding VIM will use.]
==============================================================================
5. PostScript CJK Printing *postscript-cjk-printing*
*E673* *E674* *E675*
VIM supports printing of Chinese, Japanese, and Korean files. Setting up VIM
to correctly print CJK files requires setting up a few more options.
Each of these countries has many standard character sets and encodings which
require that both be specified when printing. In addition, CJK fonts normally
do not have the concept of italic glyphs and use different weight or stroke
style to achieve emphasis when printing. This in turn requires a different
approach to specifying fonts to use when printing.
The encoding and character set are specified with the 'printencoding' and
'printmbcharset' options. If 'printencoding' is not specified then 'encoding'
is used as normal. If 'printencoding' is specified then characters will be
translated to this encoding for printing. You should ensure that the encoding
is compatible with the character set needed for the file contents or some
characters may not appear when printed.
The fonts to use for CJK printing are specified with 'printmbfont'. This
option allows you to specify different fonts to use when printing characters
which are syntax highlighted with the font styles normal, italic, bold and
bold-italic.
No CJK fonts are supplied with VIM. There are some free Korean, Japanese, and
Traditional Chinese fonts available at:
http://examples.oreilly.com/cjkvinfo/adobe/samples/
You can find descriptions of the various fonts in the read me file at
http://examples.oreilly.com/cjkvinfo/adobe/00README
Please read your printer documentation on how to install new fonts.
CJK fonts can be large containing several thousand glyphs, and it is not
uncommon to find that they only contain a subset of a national standard. It
is not unusual to find the fonts to not include characters for codes in the
ASCII code range. If you find half-width Roman characters are not appearing
in your printout then you should configure VIM to use the Courier font the
half-width ASCII characters with 'printmbfont'. If your font does not include
other characters then you will need to find another font that does.
Another issue with ASCII characters, is that the various national character
sets specify a couple of different glyphs in the ASCII code range. If you
print ASCII text using the national character set you may see some unexpected
characters. If you want true ASCII code printing then you need to configure
VIM to output ASCII characters for the ASCII code range with 'printmbfont'.
It is possible to define your own multi-byte character set although this
should not be attempted lightly. A discussion on the process if beyond the
scope of these help files. You can find details on CMap (character map) files
in the document 'Adobe CMap and CIDFont Files Specification, Version 1.0',
available from http://www.adobe.com as a PDF file.
==============================================================================
6. PostScript Printing Troubleshooting *postscript-print-trouble*
*E621*
Usually the only sign of a problem when printing with PostScript is that your
printout does not appear. If you are lucky you may get a printed page that
tells you the PostScript operator that generated the error that prevented the
print job completing.
There are a number of possible causes as to why the printing may have failed:
- Wrong version of the prolog resource file. The prolog resource file
contains some PostScript that VIM needs to be able to print. Each version
of VIM needs one particular version. Make sure you have correctly installed
the runtime files, and don't have any old versions of a file called prolog
in the print directory in your 'runtimepath' directory.
- Paper size. Some PostScript printers will abort printing a file if they do
not support the requested paper size. By default VIM uses A4 paper. Find
out what size paper your printer normally uses and set the appropriate paper
size with 'printoptions'. If you cannot find the name of the paper used,
measure a sheet and compare it with the table of supported paper sizes listed
for 'printoptions', using the paper that is closest in both width AND height.
Note: The dimensions of actual paper may vary slightly from the ones listed.
If there is no paper listed close enough, then you may want to try psresize
from PSUtils, discussed below.
- Two-sided printing (duplex). Normally a PostScript printer that does not
support two-sided printing will ignore any request to do it. However, some
printers may abort the job altogether. Try printing with duplex turned off.
Note: Duplex prints can be achieved manually using PS utils - see below.
- Collated printing. As with Duplex printing, most PostScript printers that
do not support collating printouts will ignore a request to do so. Some may
not. Try printing with collation turned off.
- Syntax highlighting. Some print management code may prevent the generated
PostScript file from being printed on a black and white printer when syntax
highlighting is turned on, even if solid black is the only color used. Try
printing with syntax highlighting turned off.
A safe printoptions setting to try is: >
:set printoptions=paper:A4,duplex:off,collate:n,syntax:n
Replace "A4" with the paper size that best matches your printer paper.
==============================================================================
7. PostScript Utilities *postscript-print-util*
7.1 Ghostscript
Ghostscript is a PostScript and PDF interpreter that can be used to display
and print on non-PostScript printers PostScript and PDF files. It can also
generate PDF files from PostScript.
Ghostscript will run on a wide variety of platforms.
There are three available versions:
- AFPL Ghostscript (formerly Aladdin Ghostscript) which is free for
non-commercial use. It can be obtained from:
http://www.cs.wisc.edu/~ghost/
- GNU Ghostscript which is available under the GNU General Public License. It
can be obtained from:
ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/
- A commercial version for inclusion in commercial products.
Additional information on Ghostscript can also be found at:
http://www.ghostscript.com/
Support for a number of non PostScript printers is provided in the
distribution as standard, but if you cannot find support for your printer
check the Ghostscript site for other printers not included by default.
7.2 Ghostscript Previewers.
The interface to Ghostscript is very primitive so a number of graphical front
ends have been created. These allow easier PostScript file selection,
previewing at different zoom levels, and printing. Check supplied
documentation for full details.
X11
- Ghostview. Obtainable from:
http://www.cs.wisc.edu/~ghost/gv/
- gv. Derived from Ghostview. Obtainable from:
http://wwwthep.physik.uni-mainz.de/~plass/gv/
Copies (possibly not the most recent) can be found at:
http://www.cs.wisc.edu/~ghost/gv/
OpenVMS
- Is apparently supported in the main code now (untested). See:
http://wwwthep.physik.uni-mainz.de/~plass/gv/
Windows and OS/2
- GSview. Obtainable from:
http://www.cs.wisc.edu/~ghost/gsview/
DOS
- ps_view. Obtainable from:
ftp://ftp.pg.gda.pl/pub/TeX/support/ps_view/
ftp://ftp.dante.de/tex-archive/support/ps_view/
Linux
- GSview. Linux version of the popular Windows and OS/2 previewer.
Obtainable from:
http://www.cs.wisc.edu/~ghost/gsview/
- BMV. Different from Ghostview and gv in that it doesn't use X but svgalib.
Obtainable from:
ftp://sunsite.unc.edu/pub/Linux/apps/graphics/viewers/svga/bmv-1.2.tgz
7.3 PSUtils
PSUtils is a collection of utility programs for manipulating PostScript
documents. Binary distributions are available for many platforms, as well as
the full source. PSUtils can be found at:
http://knackered.org/angus/psutils
The utilities of interest include:
- psnup. Convert PS files for N-up printing.
- psselect. Select page range and order of printing.
- psresize. Change the page size.
- psbook. Reorder and lay out pages ready for making a book.
The output of one program can be used as the input to the next, allowing for
complex print document creation.
N-UP PRINTING
The psnup utility takes an existing PostScript file generated from VIM and
convert it to an n-up version. The simplest way to create a 2-up printout is
to first create a PostScript file with: >
:hardcopy > test.ps
Then on your command line execute: >
psnup -n 2 test.ps final.ps
Note: You may get warnings from some Ghostscript previewers for files produced
by psnup - these may safely be ignored.
Finally print the file final.ps to your PostScript printer with your
platform's print command. (You will need to delete the two PostScript files
afterwards yourself.) 'printexpr' could be modified to perform this extra
step before printing.
ALTERNATE DUPLEX PRINTING
It is possible to achieve a poor man's version of duplex printing using the PS
utility psselect. This utility has options -e and -o for printing just the
even or odd pages of a PS file respectively.
First generate a PS file with the 'hardcopy' command, then generate a new
files with all the odd and even numbered pages with: >
psselect -o test.ps odd.ps
psselect -e test.ps even.ps
Next print odd.ps with your platform's normal print command. Then take the
print output, turn it over and place it back in the paper feeder. Now print
even.ps with your platform's print command. All the even pages should now
appear on the back of the odd pages.
There a couple of points to bear in mind:
1. Position of the first page. If the first page is on top of the printout
when printing the odd pages then you need to reverse the order that the odd
pages are printed. This can be done with the -r option to psselect. This
will ensure page 2 is printed on the back of page 1.
Note: it is better to reverse the odd numbered pages rather than the even
numbered in case there are an odd number of pages in the original PS file.
2. Paper flipping. When turning over the paper with the odd pages printed on
them you may have to either flip them horizontally (along the long edge) or
vertically (along the short edge), as well as possibly rotating them 180
degrees. All this depends on the printer - it will be more obvious for
desktop ink jets than for small office laser printers where the paper path
is hidden from view.
==============================================================================
8. Formfeed Characters *printing-formfeed*
By default VIM does not do any special processing of |formfeed| control
characters. Setting the 'printoptions' formfeed item will make VIM recognize
formfeed characters and continue printing the current line at the beginning
of the first line on a new page. The use of formfeed characters provides
rudimentary print control but there are certain things to be aware of.
VIM will always start printing a line (including a line number if enabled)
containing a formfeed character, even if it is the first character on the
line. This means if a line starting with a formfeed character is the first
line of a page then VIM will print a blank page.
Since the line number is printed at the start of printing the line containing
the formfeed character, the remainder of the line printed on the new page
will not have a line number printed for it (in the same way as the wrapped
lines of a long line when wrap in 'printoptions' is enabled).
If the formfeed character is the last character on a line, then printing will
continue on the second line of the new page, not the first. This is due to
VIM processing the end of the line after the formfeed character and moving
down a line to continue printing.
Due to the points made above it is recommended that when formfeed character
processing is enabled, printing of line numbers is disabled, and that form
feed characters are not the last character on a line. Even then you may need
to adjust the number of lines before a formfeed character to prevent
accidental blank pages.
==============================================================================
vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,4 +1,4 @@
*quickref.txt* For Vim version 7.0aa. Last change: 2004 May 05
*quickref.txt* For Vim version 7.0aa. Last change: 2004 Jul 27
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -18,10 +18,10 @@
|Q_sc| Scrolling |Q_ce| Ex: Command-line editing
|Q_in| insert: Inserting text |Q_ra| Ex: Ranges
|Q_ai| insert: Keys |Q_ex| Ex: Special characters
|Q_ss| insert: Special keys |Q_ed| Editing a file
|Q_di| insert: Digraphs |Q_fl| Using the argument list
|Q_si| insert: Special inserts |Q_wq| Writing and quitting
|Q_de| change: Deleting text |Q_st| Starting VIM
|Q_ss| insert: Special keys |Q_st| Starting VIM
|Q_di| insert: Digraphs |Q_ed| Editing a file
|Q_si| insert: Special inserts |Q_fl| Using the argument list
|Q_de| change: Deleting text |Q_wq| Writing and quitting
|Q_cm| change: Copying and moving |Q_ac| Automatic commands
|Q_ch| change: Changing text |Q_wi| Multi-window commands
|Q_co| change: Complex |Q_bu| Buffer list commands
@@ -255,6 +255,7 @@ These only work when 'wrap' is off:
|o| N o open a new line below the current line, append text (N times)
|O| N O open a new line above the current line, append text (N times)
|:startinsert| :star[tinsert][!] start Insert mode, append when [!] used
|:startreplace| :startr[eplace][!] start Replace mode, at EOL when [!] used
in Visual block mode:
|v_b_I| I insert the same text in front of all the selected lines
@@ -630,6 +631,7 @@ Short explanation of each option: *option-list*
|'commentstring'| |'cms'| template for comments; used for fold marker
|'compatible'| |'cp'| behave Vi-compatible as much as possible
|'complete'| |'cpt'| specify how Insert mode completion works
|'completefunc'| |'cfu'| function to be used for Insert mode completion
|'confirm'| |'cf'| ask what to do about unsaved/read-only files
|'conskey'| |'consk'| get keys directly from console (MS-DOS only)
|'copyindent'| |'ci'| make 'autoindent' use existing indent structure
@@ -761,8 +763,10 @@ Short explanation of each option: *option-list*
|'mousemodel'| |'mousem'| changes meaning of mouse buttons
|'mouseshape'| |'mouses'| shape of the mouse pointer in different modes
|'mousetime'| |'mouset'| max time between mouse double-click
|'mzquantum'| |'mzq'| the interval between polls for MzScheme threads
|'nrformats'| |'nf'| number formats recognized for CTRL-A command
|'number'| |'nu'| print the line number in front of each line
|'numberwidth'| |'nuw'| number of columns used for the line number
|'osfiletype'| |'oft'| operating system-specific filetype information
|'paragraphs'| |'para'| nroff macros that separate paragraphs
|'paste'| allow pasting text
@@ -778,7 +782,10 @@ Short explanation of each option: *option-list*
|'printexpr'| |'pexpr'| expression used to print PostScript for :hardcopy
|'printfont'| |'pfn'| name of the font to be used for :hardcopy
|'printheader'| |'pheader'| format of the header used for :hardcopy
|'printmbcharset'| |'pmbcs'| CJK character set to be used for :hardcopy
|'printmbfont'| |'pmbfn'| font names to be used for CJK output of :hardcopy
|'printoptions'| |'popt'| controls the format of :hardcopy output
|'quoteescape'| |'qe'| escape characters used in a string
|'readonly'| |'ro'| disallow writing the buffer
|'remap'| allow mappings to work recursively
|'report'| threshold for reporting nr. of lines changed
@@ -927,6 +934,8 @@ Short explanation of each option: *option-list*
position
|ga| ga show ascii value of character under cursor in
decimal, hex, and octal
|g8| g8 for utf-8 encoding: show byte sequence for
character under cursor in hex.
|g_CTRL-G| g CTRL-G show cursor column, line, and character
position
|CTRL-C| CTRL-C during searches: Interrupt the search
@@ -1039,6 +1048,55 @@ Context-sensitive completion on the command-line:
|::e| :e extension
|::s| :s/{pat}/{repl}/ substitute {pat} with {repl}
------------------------------------------------------------------------------
*Q_st* Starting VIM
|-vim| vim [options] start editing with an empty buffer
|-file| vim [options] {file} .. start editing one or more files
|--| vim [options] - read file from stdin
|-tag| vim [options] -t {tag} edit the file associated with {tag}
|-qf| vim [options] -q [fname] start editing in QuickFix mode,
display the first error
Most useful Vim arguments (for full list see |startup-options|)
|-gui| -g start GUI (also allows other options)
|-+| +[num] put the cursor at line [num] (default: last line)
|-+c| +{command} execute {command} after loading the file
|-+/| +/{pat} {file} .. put the cursor at the first occurrence of {pat}
|-v| -v Vi mode, start ex in Normal mode
|-e| -e Ex mode, start vim in Ex mode
|-R| -R Read-only mode, implies -n
|-m| -m modifications not allowed (resets 'write' option)
|-d| -d diff mode |diff|
|-b| -b binary mode
|-l| -l lisp mode
|-A| -A Arabic mode ('arabic' is set)
|-F| -F Farsi mode ('fkmap' and 'rightleft' are set)
|-H| -H Hebrew mode ('hkmap' and 'rightleft' are set)
|-V| -V Verbose, give informative messages
|-C| -C Compatible, set the 'compatible' option
|-N| -N Nocompatible, reset the 'compatible' option
|-r| -r give list of swap files
|-r| -r {file} .. recover aborted edit session
|-n| -n do not create a swap file
|-o| -o [num] open [num] windows (default: one for each file)
|-f| -f GUI: foreground process, don't fork
Amiga: do not restart VIM to open a window (for
e.g., mail)
|-s| -s {scriptin} first read commands from the file {scriptin}
|-w| -w {scriptout} write typed chars to file {scriptout} (append)
|-W| -W {scriptout} write typed chars to file {scriptout} (overwrite)
|-T| -T {terminal} set terminal name
|-d| -d {device} Amiga: open {device} to be used as a console
|-u| -u {vimrc} read inits from {vimrc} instead of other inits
|-U| -U {gvimrc} idem, for when starting the GUI
|-i| -i {viminfo} read info from {viminfo} instead of other files
|---| -- end of options, other arguments are file names
|--help| --help show list of arguments and exit
|--version| --version show version info and exit
|--| - Read file from stdin.
------------------------------------------------------------------------------
*Q_ed* Editing a file
Without !: Fail if changes has been made to the current buffer.
@@ -1115,54 +1173,6 @@ Context-sensitive completion on the command-line:
is set and [!] not given write the buffer.
|CTRL-Z| CTRL-Z Same as ":stop"
------------------------------------------------------------------------------
*Q_st* Starting VIM
|-vim| vim [options] start editing with an empty buffer
|-file| vim [options] {file} .. start editing one or more files
|--| vim [options] - read file from stdin
|-tag| vim [options] -t {tag} edit the file associated with {tag}
|-qf| vim [options] -q [fname] start editing in QuickFix mode,
display the first error
Vim arguments:
|-gui| -g start GUI (also allows other options)
|-+| +[num] put the cursor at line [num] (default: last line)
|-+c| +{command} execute {command} after loading the file
|-+/| +/{pat} {file} .. put the cursor at the first occurrence of {pat}
|-v| -v Vi mode, start ex in Normal mode
|-e| -e Ex mode, start vim in Ex mode
|-R| -R Read-only mode, implies -n
|-m| -m modifications not allowed (resets 'write' option)
|-b| -b binary mode
|-l| -l lisp mode
|-A| -A Arabic mode ('arabic' is set)
|-F| -F Farsi mode ('fkmap' and 'rightleft' are set)
|-H| -H Hebrew mode ('hkmap' and 'rightleft' are set)
|-V| -V Verbose, give informative messages
|-C| -C Compatible, set the 'compatible' option
|-N| -N Nocompatible, reset the 'compatible' option
|-r| -r give list of swap files
|-r| -r {file} .. recover aborted edit session
|-n| -n do not create a swap file
|-o| -o [num] open [num] windows (default: one for each file)
|-f| -f GUI: foreground process, don't fork
Amiga: do not restart VIM to open a window (for
e.g., mail)
|-s| -s {scriptin} first read commands from the file {scriptin}
|-w| -w {scriptout} write typed chars to file {scriptout} (append)
|-W| -W {scriptout} write typed chars to file {scriptout} (overwrite)
|-T| -T {terminal} set terminal name
|-d| -d {device} Amiga: open {device} to be used as a console
|-u| -u {vimrc} read inits from {vimrc} instead of other inits
|-U| -U {gvimrc} idem, for when starting the GUI
|-i| -i {viminfo} read info from {viminfo} instead of other files
|---| -- end of options, other arguments are file names
|--help| --help show list of arguments and exit
|--version| --version show version info and exit
|--| - Read file from stdin.
------------------------------------------------------------------------------
*Q_ac* Automatic Commands
|viminfo-file| Read registers, marks, history at startup, save when exiting.

View File

@@ -1,4 +1,4 @@
*repeat.txt* For Vim version 7.0aa. Last change: 2004 Apr 02
*repeat.txt* For Vim version 7.0aa. Last change: 2004 Jul 30
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -20,7 +20,8 @@ Chapter 26 of the user manual introduces repeating |usr_26.txt|.
*.*
. Repeat last change, with count replaced with [count].
Also repeat a yank command, when the 'y' flag is
included in 'cpoptions'.
included in 'cpoptions'. Does not repeat a
command-line command.
Simple changes can be repeated with the "." command. Without a count, the
count of the last change is used. If you enter a count, it will replace the
@@ -467,6 +468,13 @@ DEFINING BREAKPOINTS
Set a breakpoint in a sourced file. Example: >
:breakadd file 43 .vimrc
:breaka[dd] here
Set a breakpoint in the current line of the current file.
Like doing: >
:breakadd file <cursor-line> <current-file>
< Note that this only works for commands that are executed when
sourcing the file, not for a function defined in that file.
The [lnum] is the line number of the breakpoint. Vim will stop at or after
this line. When omitted line 1 is used.
@@ -476,13 +484,14 @@ if the pattern starts with "^" and ends in "$"). A "*" matches any sequence
of characters. 'ignorecase' is not used, but "\c" can be used in the pattern
to ignore case |/\c|. Don't include the () for the function name!
The match for sourced scripts is done against the full file name. Examples: >
breakadd file explorer
won't match, the path is missing. >
The match for sourced scripts is done against the full file name. If no path
is specified the current directory is used. Examples: >
breakadd file explorer.vim
matches "explorer.vim" in the current directory. >
breakadd file *explorer.vim
matches ".../plugin/explorer.vim" and ".../plugin/iexplorer.vim". >
matches ".../plugin/explorer.vim", ".../plugin/iexplorer.vim", etc. >
breakadd file */explorer.vim
matches ".../plugin/explorer.vim" only.
matches ".../plugin/explorer.vim" and "explorer.vim" in any other directory.
The match for functions is done against the name as it's shown in the output
of ":function". For local functions this means that something like "<SNR>99_"
@@ -501,6 +510,9 @@ DELETING BREAKPOINTS
:breakd[el] file [lnum] {name}
Delete a breakpoint in a sourced file.
:breakd[el] here
Delete a breakpoint at the current line of the current file.
When [lnum] is omitted, the first breakpoint in the function or file is
deleted.
The {name} must be exactly the same as what was typed for the ":breakadd"

View File

@@ -1,4 +1,4 @@
*starting.txt* For Vim version 7.0aa. Last change: 2004 Jun 18
*starting.txt* For Vim version 7.0aa. Last change: 2004 Jul 13
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -746,7 +746,7 @@ accordingly. Vim proceeds in this order:
"home:.vimrc" (for Amiga) (*)
"$VIM/.vimrc" (for OS/2 and Amiga) (*)
"$HOME/_vimrc" (for MS-DOS and Win32) (*)
"$VIM\_vimrc" (for MS-DOS and Win32) (*)
"$VIM/_vimrc" (for MS-DOS and Win32) (*)
Note: For Unix, OS/2 and Amiga, when ".vimrc" does not exist,
"_vimrc" is also tried, in case an MS-DOS compatible file
system is used. For MS-DOS and Win32 ".vimrc" is checked

View File

@@ -1,4 +1,4 @@
*syntax.txt* For Vim version 7.0aa. Last change: 2004 Jun 16
*syntax.txt* For Vim version 7.0aa. Last change: 2004 Oct 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -393,6 +393,9 @@ Force to omit the line numbers by using a zero value: >
Go back to the default to use 'number' by deleting the variable: >
:unlet html_number_lines
Closed folds are put in the HTML as they are displayed. If you don't want
this, use the "zR" command before invoking 2html.
By default, HTML optimized for old browsers is generated. If you prefer using
cascading style sheets (CSS1) for the attributes (resulting in considerably
shorter and valid HTML 4 file), use: >
@@ -664,13 +667,21 @@ an the "after" directory in 'runtimepath'. For Unix this would be
syn sync fromstart
set foldmethod=syntax
CH *ch.vim* *ch-syntax*
C/C++ interpreter. Ch has similar syntax highlighting to C and builds upon
the C syntax file. See |c.vim| for all the settings that are available for C.
By setting a variable you can tell Vim to use Ch syntax for *.h files, instead
of C or C++: >
:let ch_syntax_for_h = 1
CHILL *chill.vim* *chill-syntax*
Chill syntax highlighting is similar to C. See |c.vim| for all the settings
that are available. Additionally there is:
chill_syntax_for_h use Ch syntax for *.h files, instead of C or C++
chill_space_errors like c_space_errors
chill_comment_string like c_comment_strings
chill_minlines like c_minlines
@@ -812,11 +823,20 @@ is controlled by the variable dosbatch_cmdextversion. For Windows NT
this should have the value 1, and for Windows 2000 it should be 2.
Select the version you want with the following line: >
:let dosbatch_cmdextversion = 1
:let dosbatch_cmdextversion = 1
If this variable is not defined it defaults to a value of 2 to support
Windows 2000.
A second option covers whether *.btm files should be detected as type
"dosbatch" (MS-DOS batch files) or type "btm" (4DOS batch files). The latter
is used by default. You may select the former with the following line: >
:let g:dosbatch_syntax_for_btm = 1
If this variable is undefined or zero, btm syntax is selected.
DTD *dtd.vim* *dtd-syntax*
@@ -1767,14 +1787,22 @@ If you use POD files or POD segments, you might: >
:let perl_include_pod = 1
To handle package references in variable and function names differently from
the rest of the name (like 'PkgName::' in '$PkgName::VarName'): >
The reduce the complexity of parsing (and increase performance) you can switch
off two elements in the parsing of variable names and contents. >
:let perl_want_scope_in_variables = 1
To handle package references in variable and function names not differently
from the rest of the name (like 'PkgName::' in '$PkgName::VarName'): >
If you want complex things like '@{${"foo"}}' to be parsed: >
:let perl_no_scope_in_variables = 1
:let perl_extended_vars = 1
(In Vim 6.x it was the other way around: "perl_want_scope_in_variables"
enabled it.)
If you do not want complex things like '@{${"foo"}}' to be parsed: >
:let perl_no_extended_vars = 1
(In Vim 6.x it was the other way around: "perl_extended_vars" enabled it.)
The coloring strings can be changed. By default strings and qq friends will be
highlighted like the first line. If you set the variable
@@ -1804,7 +1832,11 @@ its attempts in syntax highlighting. >
If you want to use folding with perl, set perl_fold: >
:let perl_fold = 1
:let perl_fold = 1
If you want to fold blocks in if statements, etc. as well set the following: >
:let perl_fold_blocks = 1
PHP3 and PHP4 *php.vim* *php3.vim* *php-syntax* *php3-syntax*
@@ -2080,6 +2112,14 @@ This will prevent highlighting of special identifiers like "ConstantName",
"$global_var", "@instance_var", "| iterator |", and ":symbol".
SCHEME *scheme.vim* *scheme-syntax*
By default only R5RS keywords are highlighted and properly indented.
MzScheme-specific stuff will be used if b:is_mzscheme or g:is_mzscheme
variables are defined.
SDL *sdl.vim* *sdl-syntax*
The SDL highlighting probably misses a few keywords, but SDL has so many
@@ -2247,6 +2287,17 @@ fast enough, you can increase minlines and/or maxlines near the end of
the syntax file.
SQL *sql.vim* *sql-syntax*
*sqlinformix.vim* *sqlinformix-syntax*
While there is an ANSI standard for SQL, most database engines add their
own custom extensions. Vim currently supports the Oracle and Informix
dialects of SQL. Vim assumes "*.sql" files are Oracle SQL by default.
If you want to use the Informix dialect, put this in your startup vimrc: >
:let g:filetype_sql = "sqlinformix"
TCSH *tcsh.vim* *tcsh-syntax*
This covers the shell named "tcsh". It is a superset of csh. See |csh.vim|
@@ -3495,6 +3546,10 @@ in their own color.
:echo g:colors_name
< Doesn't work recursively, thus you can't use
":colorscheme" in a color scheme script.
After the color scheme has been loaded the
|ColorScheme| autocommand event is triggered.
For info about writing a colorscheme file: >
:edit $VIMRUNTIME/colors/README.txt
:hi[ghlight] List all the current highlight groups that have
attributes set.
@@ -3962,6 +4017,11 @@ For Unix you can use the file ~/.vim/after/syntax/syncolor.vim. Example: >
highlight comment ctermfg=green guifg=green
endif
*E679*
Do make sure this syncolor.vim script does not use a "syntax on", set the
'background' option or uses a "colorscheme" command, because it results in an
endless loop.
Note that when a color scheme is used, there might be some confusion whether
your defined colors are to be used or the colors from the scheme. This
depends on the color scheme file. See |:colorscheme|.

View File

@@ -92,6 +92,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'cdpath' options.txt /*'cdpath'*
'cedit' options.txt /*'cedit'*
'cf' options.txt /*'cf'*
'cfu' options.txt /*'cfu'*
'ch' options.txt /*'ch'*
'character' intro.txt /*'character'*
'charconvert' options.txt /*'charconvert'*
@@ -116,6 +117,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'commentstring' options.txt /*'commentstring'*
'compatible' options.txt /*'compatible'*
'complete' options.txt /*'complete'*
'completefunc' options.txt /*'completefunc'*
'confirm' options.txt /*'confirm'*
'consk' options.txt /*'consk'*
'conskey' options.txt /*'conskey'*
@@ -375,6 +377,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'mousetime' options.txt /*'mousetime'*
'mp' options.txt /*'mp'*
'mps' options.txt /*'mps'*
'mzq' options.txt /*'mzq'*
'mzquantum' options.txt /*'mzquantum'*
'nf' options.txt /*'nf'*
'noacd' options.txt /*'noacd'*
'noai' options.txt /*'noai'*
@@ -587,6 +591,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'nrformats' options.txt /*'nrformats'*
'nu' options.txt /*'nu'*
'number' options.txt /*'number'*
'numberwidth' options.txt /*'numberwidth'*
'nuw' options.txt /*'nuw'*
'oft' options.txt /*'oft'*
'op' vi_diff.txt /*'op'*
'open' vi_diff.txt /*'open'*
@@ -609,6 +615,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'pheader' options.txt /*'pheader'*
'pi' options.txt /*'pi'*
'pm' options.txt /*'pm'*
'pmbcs' options.txt /*'pmbcs'*
'pmbfn' options.txt /*'pmbfn'*
'popt' options.txt /*'popt'*
'preserveindent' options.txt /*'preserveindent'*
'previewheight' options.txt /*'previewheight'*
@@ -618,12 +626,16 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
'printexpr' options.txt /*'printexpr'*
'printfont' options.txt /*'printfont'*
'printheader' options.txt /*'printheader'*
'printmbcharset' options.txt /*'printmbcharset'*
'printmbfont' options.txt /*'printmbfont'*
'printoptions' options.txt /*'printoptions'*
'prompt' vi_diff.txt /*'prompt'*
'pt' options.txt /*'pt'*
'pvh' options.txt /*'pvh'*
'pvw' options.txt /*'pvw'*
'qe' options.txt /*'qe'*
'quote motion.txt /*'quote*
'quoteescape'' options.txt /*'quoteescape''*
'readonly' options.txt /*'readonly'*
'redraw' vi_diff.txt /*'redraw'*
'remap' options.txt /*'remap'*
@@ -1032,6 +1044,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
+multi_byte various.txt /*+multi_byte*
+multi_byte_ime various.txt /*+multi_byte_ime*
+multi_lang various.txt /*+multi_lang*
+mzscheme various.txt /*+mzscheme*
+netbeans_intg various.txt /*+netbeans_intg*
+ole various.txt /*+ole*
+osfiletype various.txt /*+osfiletype*
@@ -1205,11 +1218,16 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
/\%>c pattern.txt /*\/\\%>c*
/\%>l pattern.txt /*\/\\%>l*
/\%>v pattern.txt /*\/\\%>v*
/\%U/ pattern.txt /*\/\\%U\/*
/\%[] pattern.txt /*\/\\%[]*
/\%^ pattern.txt /*\/\\%^*
/\%c pattern.txt /*\/\\%c*
/\%d pattern.txt /*\/\\%d*
/\%l pattern.txt /*\/\\%l*
/\%o pattern.txt /*\/\\%o*
/\%u pattern.txt /*\/\\%u*
/\%v pattern.txt /*\/\\%v*
/\%x pattern.txt /*\/\\%x*
/\& pattern.txt /*\/\\&*
/\( pattern.txt /*\/\\(*
/\(\) pattern.txt /*\/\\(\\)*
@@ -1324,6 +1342,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
/atom pattern.txt /*\/atom*
/bar pattern.txt /*\/bar*
/branch pattern.txt /*\/branch*
/character-classes pattern.txt /*\/character-classes*
/collection pattern.txt /*\/collection*
/concat pattern.txt /*\/concat*
/dyn various.txt /*\/dyn*
@@ -1797,9 +1816,13 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:delete change.txt /*:delete*
:delf eval.txt /*:delf*
:delfunction eval.txt /*:delfunction*
:delm motion.txt /*:delm*
:delmarks motion.txt /*:delmarks*
:di change.txt /*:di*
:diffg diff.txt /*:diffg*
:diffget diff.txt /*:diffget*
:diffo diff.txt /*:diffo*
:diffoff diff.txt /*:diffoff*
:diffp diff.txt /*:diffp*
:diffpatch diff.txt /*:diffpatch*
:diffpu diff.txt /*:diffpu*
@@ -1914,8 +1937,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:gv gui_x11.txt /*:gv*
:gvim gui_x11.txt /*:gvim*
:h various.txt /*:h*
:ha various.txt /*:ha*
:hardcopy various.txt /*:hardcopy*
:ha print.txt /*:ha*
:hardcopy print.txt /*:hardcopy*
:help various.txt /*:help*
:helpf various.txt /*:helpf*
:helpfind various.txt /*:helpfind*
@@ -1978,6 +2001,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:jumps motion.txt /*:jumps*
:k motion.txt /*:k*
:kee motion.txt /*:kee*
:keepa editing.txt /*:keepa*
:keepalt editing.txt /*:keepalt*
:keepj motion.txt /*:keepj*
:keepjumps motion.txt /*:keepjumps*
:keepmarks motion.txt /*:keepmarks*
@@ -2070,6 +2095,10 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:mod term.txt /*:mod*
:mode term.txt /*:mode*
:move change.txt /*:move*
:mz if_mzsch.txt /*:mz*
:mzf if_mzsch.txt /*:mzf*
:mzfile if_mzsch.txt /*:mzfile*
:mzscheme if_mzsch.txt /*:mzscheme*
:n editing.txt /*:n*
:ne editing.txt /*:ne*
:new windows.txt /*:new*
@@ -2237,6 +2266,8 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:sa windows.txt /*:sa*
:sal windows.txt /*:sal*
:sall windows.txt /*:sall*
:san eval.txt /*:san*
:sandbox eval.txt /*:sandbox*
:sargument windows.txt /*:sargument*
:sav editing.txt /*:sav*
:saveas editing.txt /*:saveas*
@@ -2332,6 +2363,7 @@ $VIMRUNTIME starting.txt /*$VIMRUNTIME*
:star repeat.txt /*:star*
:start insert.txt /*:start*
:startinsert insert.txt /*:startinsert*
:startreplace insert.txt /*:startreplace*
:stj tagsrch.txt /*:stj*
:stjump tagsrch.txt /*:stjump*
:stop starting.txt /*:stop*
@@ -2866,6 +2898,7 @@ Cmdline cmdline.txt /*Cmdline*
Cmdline-mode cmdline.txt /*Cmdline-mode*
CmdwinEnter autocmd.txt /*CmdwinEnter*
CmdwinLeave autocmd.txt /*CmdwinLeave*
ColorScheme autocmd.txt /*ColorScheme*
Command-line cmdline.txt /*Command-line*
Command-line-mode cmdline.txt /*Command-line-mode*
Contents quickref.txt /*Contents*
@@ -2874,6 +2907,7 @@ CursorHold autocmd.txt /*CursorHold*
CursorHold-example windows.txt /*CursorHold-example*
CursorIM mbyte.txt /*CursorIM*
D change.txt /*D*
DCOP gui_x11.txt /*DCOP*
DOS os_dos.txt /*DOS*
DOS-format editing.txt /*DOS-format*
DOS-format-write editing.txt /*DOS-format-write*
@@ -3030,8 +3064,8 @@ E233 gui.txt /*E233*
E234 options.txt /*E234*
E235 options.txt /*E235*
E236 options.txt /*E236*
E237 various.txt /*E237*
E238 various.txt /*E238*
E237 print.txt /*E237*
E238 print.txt /*E238*
E239 sign.txt /*E239*
E24 message.txt /*E24*
E240 remote.txt /*E240*
@@ -3124,7 +3158,7 @@ E320 message.txt /*E320*
E321 editing.txt /*E321*
E322 message.txt /*E322*
E323 message.txt /*E323*
E324 various.txt /*E324*
E324 print.txt /*E324*
E325 usr_11.txt /*E325*
E326 recover.txt /*E326*
E327 gui.txt /*E327*
@@ -3169,7 +3203,7 @@ E361 pattern.txt /*E361*
E362 term.txt /*E362*
E363 pattern.txt /*E363*
E364 eval.txt /*E364*
E365 options.txt /*E365*
E365 print.txt /*E365*
E366 options.txt /*E366*
E367 autocmd.txt /*E367*
E368 eval.txt /*E368*
@@ -3268,9 +3302,9 @@ E451 os_msdos.txt /*E451*
E452 os_msdos.txt /*E452*
E453 os_msdos.txt /*E453*
E454 os_msdos.txt /*E454*
E455 various.txt /*E455*
E456 various.txt /*E456*
E457 various.txt /*E457*
E455 print.txt /*E455*
E456 print.txt /*E456*
E457 print.txt /*E457*
E458 message.txt /*E458*
E459 message.txt /*E459*
E46 message.txt /*E46*
@@ -3438,19 +3472,19 @@ E61 pattern.txt /*E61*
E610 options.txt /*E610*
E611 options.txt /*E611*
E612 sign.txt /*E612*
E613 options.txt /*E613*
E613 print.txt /*E613*
E614 editing.txt /*E614*
E615 editing.txt /*E615*
E616 editing.txt /*E616*
E617 options.txt /*E617*
E618 various.txt /*E618*
E619 various.txt /*E619*
E618 print.txt /*E618*
E619 print.txt /*E619*
E62 pattern.txt /*E62*
E620 options.txt /*E620*
E621 various.txt /*E621*
E620 print.txt /*E620*
E621 print.txt /*E621*
E622 if_cscop.txt /*E622*
E623 if_cscop.txt /*E623*
E624 various.txt /*E624*
E624 print.txt /*E624*
E625 if_cscop.txt /*E625*
E626 if_cscop.txt /*E626*
E627 netbeans.txt /*E627*
@@ -3504,6 +3538,13 @@ E67 syntax.txt /*E67*
E670 various.txt /*E670*
E671 starting.txt /*E671*
E672 starting.txt /*E672*
E673 print.txt /*E673*
E674 print.txt /*E674*
E675 print.txt /*E675*
E676 options.txt /*E676*
E677 eval.txt /*E677*
E678 pattern.txt /*E678*
E679 syntax.txt /*E679*
E68 pattern.txt /*E68*
E69 pattern.txt /*E69*
E70 pattern.txt /*E70*
@@ -3544,6 +3585,7 @@ EncodingChanged autocmd.txt /*EncodingChanged*
Eterm syntax.txt /*Eterm*
Ex intro.txt /*Ex*
Ex-mode intro.txt /*Ex-mode*
Exuberant_ctags tagsrch.txt /*Exuberant_ctags*
F motion.txt /*F*
FAQ intro.txt /*FAQ*
Farsi farsi.txt /*Farsi*
@@ -3583,9 +3625,14 @@ IM-server mbyte.txt /*IM-server*
IME mbyte.txt /*IME*
Insert insert.txt /*Insert*
Insert-mode insert.txt /*Insert-mode*
InsertChange autocmd.txt /*InsertChange*
InsertEnter autocmd.txt /*InsertEnter*
InsertLeave autocmd.txt /*InsertLeave*
J change.txt /*J*
Japanese mbyte.txt /*Japanese*
K various.txt /*K*
KDE gui_x11.txt /*KDE*
KVim gui_x11.txt /*KVim*
Korean mbyte.txt /*Korean*
L motion.txt /*L*
Linux-backspace options.txt /*Linux-backspace*
@@ -3604,6 +3651,7 @@ Mark motion.txt /*Mark*
MiNT os_mint.txt /*MiNT*
MorphOS os_amiga.txt /*MorphOS*
Motif gui_x11.txt /*Motif*
MzScheme if_mzsch.txt /*MzScheme*
N pattern.txt /*N*
N% motion.txt /*N%*
N: cmdline.txt /*N:*
@@ -3634,6 +3682,7 @@ Operator-pending intro.txt /*Operator-pending*
Operator-pending-mode intro.txt /*Operator-pending-mode*
OverTheSpot mbyte.txt /*OverTheSpot*
P change.txt /*P*
PATHEXT eval.txt /*PATHEXT*
Pattern pattern.txt /*Pattern*
Perl if_perl.txt /*Perl*
Posix intro.txt /*Posix*
@@ -3856,9 +3905,10 @@ _vimrc starting.txt /*_vimrc*
`{ motion.txt /*`{*
`} motion.txt /*`}*
a insert.txt /*a*
a' motion.txt /*a'*
a( motion.txt /*a(*
a) motion.txt /*a)*
a4 options.txt /*a4*
a4 print.txt /*a4*
a:firstline eval.txt /*a:firstline*
a:lastline eval.txt /*a:lastline*
a:var eval.txt /*a:var*
@@ -3868,6 +3918,7 @@ aB motion.txt /*aB*
aW motion.txt /*aW*
a[ motion.txt /*a[*
a] motion.txt /*a]*
a` motion.txt /*a`*
ab motion.txt /*ab*
abandon editing.txt /*abandon*
abbreviations map.txt /*abbreviations*
@@ -3908,10 +3959,12 @@ alternate-file editing.txt /*alternate-file*
amiga-window starting.txt /*amiga-window*
ant-syntax syntax.txt /*ant-syntax*
ant.vim syntax.txt /*ant.vim*
antialias gui_x11.txt /*antialias*
ap motion.txt /*ap*
apache-syntax syntax.txt /*apache-syntax*
apache.vim syntax.txt /*apache.vim*
append() eval.txt /*append()*
aquote motion.txt /*aquote*
arabic.txt arabic.txt /*arabic.txt*
arabicfonts arabic.txt /*arabicfonts*
arabickeymap arabic.txt /*arabickeymap*
@@ -4001,6 +4054,7 @@ book intro.txt /*book*
boolean options.txt /*boolean*
break-finally eval.txt /*break-finally*
browse() eval.txt /*browse()*
browsedir() eval.txt /*browsedir()*
browsefilter editing.txt /*browsefilter*
bufexists() eval.txt /*bufexists()*
buffer-hidden windows.txt /*buffer-hidden*
@@ -4028,6 +4082,7 @@ builtin-tools gui.txt /*builtin-tools*
builtin_terms term.txt /*builtin_terms*
byte-count editing.txt /*byte-count*
byte2line() eval.txt /*byte2line()*
byteidx() eval.txt /*byteidx()*
bzip2 pi_gzip.txt /*bzip2*
c change.txt /*c*
c-syntax syntax.txt /*c-syntax*
@@ -4103,6 +4158,8 @@ catch-interrupt eval.txt /*catch-interrupt*
catch-order eval.txt /*catch-order*
catch-text eval.txt /*catch-text*
cc change.txt /*cc*
ch-syntax syntax.txt /*ch-syntax*
ch.vim syntax.txt /*ch.vim*
change-list-jumps motion.txt /*change-list-jumps*
change.txt change.txt /*change.txt*
changed-5.1 version5.txt /*changed-5.1*
@@ -4177,6 +4234,7 @@ compl-current insert.txt /*compl-current*
compl-define insert.txt /*compl-define*
compl-dictionary insert.txt /*compl-dictionary*
compl-filename insert.txt /*compl-filename*
compl-function insert.txt /*compl-function*
compl-generic insert.txt /*compl-generic*
compl-keyword insert.txt /*compl-keyword*
compl-tag insert.txt /*compl-tag*
@@ -4213,6 +4271,7 @@ cpo-C options.txt /*cpo-C*
cpo-D options.txt /*cpo-D*
cpo-E options.txt /*cpo-E*
cpo-F options.txt /*cpo-F*
cpo-I options.txt /*cpo-I*
cpo-J options.txt /*cpo-J*
cpo-K options.txt /*cpo-K*
cpo-L options.txt /*cpo-L*
@@ -4359,6 +4418,7 @@ diff-options diff.txt /*diff-options*
diff-patchexpr diff.txt /*diff-patchexpr*
diff.txt diff.txt /*diff.txt*
digraph-arg change.txt /*digraph-arg*
digraph-encoding digraph.txt /*digraph-encoding*
digraph-table digraph.txt /*digraph-table*
digraph.txt digraph.txt /*digraph.txt*
digraphs digraph.txt /*digraphs*
@@ -4478,6 +4538,7 @@ except-syntax-error eval.txt /*except-syntax-error*
exception-handling eval.txt /*exception-handling*
exception-variable eval.txt /*exception-variable*
exclusive motion.txt /*exclusive*
exclusive-linewise motion.txt /*exclusive-linewise*
executable() eval.txt /*executable()*
execute-menus gui.txt /*execute-menus*
exim starting.txt /*exim*
@@ -4585,6 +4646,8 @@ filewritable() eval.txt /*filewritable()*
filter change.txt /*filter*
find-manpage usr_12.txt /*find-manpage*
find-replace usr_10.txt /*find-replace*
finddir() eval.txt /*finddir()*
findfile() eval.txt /*findfile()*
fixed-5.1 version5.txt /*fixed-5.1*
fixed-5.2 version5.txt /*fixed-5.2*
fixed-5.3 version5.txt /*fixed-5.3*
@@ -4644,6 +4707,7 @@ fortran-syntax syntax.txt /*fortran-syntax*
fortran.vim syntax.txt /*fortran.vim*
french-maillist intro.txt /*french-maillist*
frombook usr_01.txt /*frombook*
ftdetect filetype.txt /*ftdetect*
ftp pi_netrw.txt /*ftp*
ftplugin usr_41.txt /*ftplugin*
ftplugin-docs filetype.txt /*ftplugin-docs*
@@ -4685,6 +4749,12 @@ g:explSuffixesLast pi_expl.txt /*g:explSuffixesLast*
g:explUseSeparators pi_expl.txt /*g:explUseSeparators*
g:explVertical pi_expl.txt /*g:explVertical*
g:explWinSize pi_expl.txt /*g:explWinSize*
g:netrw-a pi_netrw.txt /*g:netrw-a*
g:netrw_list_cmd pi_netrw.txt /*g:netrw_list_cmd*
g:netrw_list_hide pi_netrw.txt /*g:netrw_list_hide*
g:netrw_rm_cmd pi_netrw.txt /*g:netrw_rm_cmd*
g:netrw_rmdir_cmd pi_netrw.txt /*g:netrw_rmdir_cmd*
g:netrw_rmf_cmd pi_netrw.txt /*g:netrw_rmf_cmd*
g:var eval.txt /*g:var*
g; motion.txt /*g;*
g<Down> motion.txt /*g<Down>*
@@ -4726,8 +4796,10 @@ getcharmod() eval.txt /*getcharmod()*
getcmdline() eval.txt /*getcmdline()*
getcmdpos() eval.txt /*getcmdpos()*
getcwd() eval.txt /*getcwd()*
getfperm() eval.txt /*getfperm()*
getfsize() eval.txt /*getfsize()*
getftime() eval.txt /*getftime()*
getftype() eval.txt /*getftype()*
getline() eval.txt /*getline()*
getreg() eval.txt /*getreg()*
getregtype() eval.txt /*getregtype()*
@@ -4780,6 +4852,7 @@ gui-gtk gui_x11.txt /*gui-gtk*
gui-gtk-socketid gui_x11.txt /*gui-gtk-socketid*
gui-horiz-scroll gui.txt /*gui-horiz-scroll*
gui-init gui.txt /*gui-init*
gui-kde gui_x11.txt /*gui-kde*
gui-mouse gui.txt /*gui-mouse*
gui-mouse-focus gui.txt /*gui-mouse-focus*
gui-mouse-mapping gui.txt /*gui-mouse-mapping*
@@ -4811,6 +4884,7 @@ gui-x11 gui_x11.txt /*gui-x11*
gui-x11-athena gui_x11.txt /*gui-x11-athena*
gui-x11-compiling gui_x11.txt /*gui-x11-compiling*
gui-x11-gtk gui_x11.txt /*gui-x11-gtk*
gui-x11-kde gui_x11.txt /*gui-x11-kde*
gui-x11-misc gui_x11.txt /*gui-x11-misc*
gui-x11-motif gui_x11.txt /*gui-x11-motif*
gui-x11-neXtaw gui_x11.txt /*gui-x11-neXtaw*
@@ -4830,6 +4904,8 @@ gvim starting.txt /*gvim*
gvimdiff diff.txt /*gvimdiff*
gvimrc gui.txt /*gvimrc*
gw change.txt /*gw*
gwgw change.txt /*gwgw*
gww change.txt /*gww*
gzip pi_gzip.txt /*gzip*
gzip-autocmd pi_gzip.txt /*gzip-autocmd*
gzip-example autocmd.txt /*gzip-example*
@@ -4937,6 +5013,7 @@ htmlos-syntax syntax.txt /*htmlos-syntax*
htmlos.vim syntax.txt /*htmlos.vim*
http pi_netrw.txt /*http*
i insert.txt /*i*
i' motion.txt /*i'*
i( motion.txt /*i(*
i) motion.txt /*i)*
i< motion.txt /*i<*
@@ -5019,9 +5096,11 @@ i_CTRL-X_CTRL-L insert.txt /*i_CTRL-X_CTRL-L*
i_CTRL-X_CTRL-N insert.txt /*i_CTRL-X_CTRL-N*
i_CTRL-X_CTRL-P insert.txt /*i_CTRL-X_CTRL-P*
i_CTRL-X_CTRL-T insert.txt /*i_CTRL-X_CTRL-T*
i_CTRL-X_CTRL-U insert.txt /*i_CTRL-X_CTRL-U*
i_CTRL-X_CTRL-V insert.txt /*i_CTRL-X_CTRL-V*
i_CTRL-X_CTRL-Y insert.txt /*i_CTRL-X_CTRL-Y*
i_CTRL-X_CTRL-] insert.txt /*i_CTRL-X_CTRL-]*
i_CTRL-X_index index.txt /*i_CTRL-X_index*
i_CTRL-Y insert.txt /*i_CTRL-Y*
i_CTRL-Z options.txt /*i_CTRL-Z*
i_CTRL-[ insert.txt /*i_CTRL-[*
@@ -5036,6 +5115,7 @@ i_^_CTRL-D insert.txt /*i_^_CTRL-D*
i_backspacing insert.txt /*i_backspacing*
i_digraph digraph.txt /*i_digraph*
i_esc intro.txt /*i_esc*
i` motion.txt /*i`*
ia64-syntax syntax.txt /*ia64-syntax*
ia64.vim syntax.txt /*ia64.vim*
ib motion.txt /*ib*
@@ -5046,6 +5126,7 @@ iconize starting.txt /*iconize*
iconv() eval.txt /*iconv()*
ident-search tips.txt /*ident-search*
if_cscop.txt if_cscop.txt /*if_cscop.txt*
if_mzsch.txt if_mzsch.txt /*if_mzsch.txt*
if_ole.txt if_ole.txt /*if_ole.txt*
if_perl.txt if_perl.txt /*if_perl.txt*
if_pyth.txt if_pyth.txt /*if_pyth.txt*
@@ -5097,6 +5178,7 @@ insert_expand insert.txt /*insert_expand*
inserting insert.txt /*inserting*
inserting-ex insert.txt /*inserting-ex*
inserting-file insert.txt /*inserting-file*
insertmode-variable eval.txt /*insertmode-variable*
install usr_90.txt /*install*
install-home usr_90.txt /*install-home*
install-registry gui_w32.txt /*install-registry*
@@ -5108,6 +5190,7 @@ internet intro.txt /*internet*
intro intro.txt /*intro*
intro.txt intro.txt /*intro.txt*
ip motion.txt /*ip*
iquote motion.txt /*iquote*
is motion.txt /*is*
isdirectory() eval.txt /*isdirectory()*
iw motion.txt /*iw*
@@ -5125,6 +5208,8 @@ jumplist motion.txt /*jumplist*
jumpto-diffs diff.txt /*jumpto-diffs*
k motion.txt /*k*
kcc uganda.txt /*kcc*
kde gui_x11.txt /*kde*
kde-toolbar gui_x11.txt /*kde-toolbar*
key-codes intro.txt /*key-codes*
key-codes-changed version4.txt /*key-codes-changed*
key-mapping map.txt /*key-mapping*
@@ -5157,7 +5242,7 @@ last_buffer_nr() eval.txt /*last_buffer_nr()*
lc_time-variable eval.txt /*lc_time-variable*
left-right-motions motion.txt /*left-right-motions*
less various.txt /*less*
letter options.txt /*letter*
letter print.txt /*letter*
lex-syntax syntax.txt /*lex-syntax*
lex.vim syntax.txt /*lex.vim*
lhaskell.vim syntax.txt /*lhaskell.vim*
@@ -5333,6 +5418,14 @@ myscriptsfile syntax.txt /*myscriptsfile*
mysyntaxfile syntax.txt /*mysyntaxfile*
mysyntaxfile-add syntax.txt /*mysyntaxfile-add*
mysyntaxfile-replace syntax.txt /*mysyntaxfile-replace*
mzscheme if_mzsch.txt /*mzscheme*
mzscheme-buffer if_mzsch.txt /*mzscheme-buffer*
mzscheme-commands if_mzsch.txt /*mzscheme-commands*
mzscheme-examples if_mzsch.txt /*mzscheme-examples*
mzscheme-threads if_mzsch.txt /*mzscheme-threads*
mzscheme-vim if_mzsch.txt /*mzscheme-vim*
mzscheme-vimext if_mzsch.txt /*mzscheme-vimext*
mzscheme-window if_mzsch.txt /*mzscheme-window*
n pattern.txt /*n*
nasm-syntax syntax.txt /*nasm-syntax*
nasm.vim syntax.txt /*nasm.vim*
@@ -5359,24 +5452,63 @@ netbeans-setup netbeans.txt /*netbeans-setup*
netbeans-support netbeans.txt /*netbeans-support*
netbeans.txt netbeans.txt /*netbeans.txt*
netrw pi_netrw.txt /*netrw*
netrw-- pi_netrw.txt /*netrw--*
netrw-B pi_netrw.txt /*netrw-B*
netrw-D pi_netrw.txt /*netrw-D*
netrw-R pi_netrw.txt /*netrw-R*
netrw-S pi_netrw.txt /*netrw-S*
netrw-activate pi_netrw.txt /*netrw-activate*
netrw-b pi_netrw.txt /*netrw-b*
netrw-bookmark pi_netrw.txt /*netrw-bookmark*
netrw-bookmarks pi_netrw.txt /*netrw-bookmarks*
netrw-browse pi_netrw.txt /*netrw-browse*
netrw-browse-cmds pi_netrw.txt /*netrw-browse-cmds*
netrw-browse-var pi_netrw.txt /*netrw-browse-var*
netrw-c pi_netrw.txt /*netrw-c*
netrw-cadaver pi_netrw.txt /*netrw-cadaver*
netrw-contents pi_netrw.txt /*netrw-contents*
netrw-cr pi_netrw.txt /*netrw-cr*
netrw-credits pi_netrw.txt /*netrw-credits*
netrw-ctrl-l pi_netrw.txt /*netrw-ctrl-l*
netrw-curdir pi_netrw.txt /*netrw-curdir*
netrw-d pi_netrw.txt /*netrw-d*
netrw-debug pi_netrw.txt /*netrw-debug*
netrw-delete pi_netrw.txt /*netrw-delete*
netrw-dir pi_netrw.txt /*netrw-dir*
netrw-ex pi_netrw.txt /*netrw-ex*
netrw-file pi_netrw.txt /*netrw-file*
netrw-fixup pi_netrw.txt /*netrw-fixup*
netrw-ftp pi_netrw.txt /*netrw-ftp*
netrw-h pi_netrw.txt /*netrw-h*
netrw-help pi_netrw.txt /*netrw-help*
netrw-history pi_netrw.txt /*netrw-history*
netrw-i pi_netrw.txt /*netrw-i*
netrw-list pi_netrw.txt /*netrw-list*
netrw-list-hack pi_netrw.txt /*netrw-list-hack*
netrw-move pi_netrw.txt /*netrw-move*
netrw-netrc pi_netrw.txt /*netrw-netrc*
netrw-new pi_netrw.txt /*netrw-new*
netrw-newstuff pi_netrw.txt /*netrw-newstuff*
netrw-nread pi_netrw.txt /*netrw-nread*
netrw-nwrite pi_netrw.txt /*netrw-nwrite*
netrw-o pi_netrw.txt /*netrw-o*
netrw-options pi_netrw.txt /*netrw-options*
netrw-passwd pi_netrw.txt /*netrw-passwd*
netrw-path pi_netrw.txt /*netrw-path*
netrw-problems pi_netrw.txt /*netrw-problems*
netrw-protocol pi_netrw.txt /*netrw-protocol*
netrw-q pi_netrw.txt /*netrw-q*
netrw-r pi_netrw.txt /*netrw-r*
netrw-read pi_netrw.txt /*netrw-read*
netrw-ref pi_netrw.txt /*netrw-ref*
netrw-rename pi_netrw.txt /*netrw-rename*
netrw-s pi_netrw.txt /*netrw-s*
netrw-transparent pi_netrw.txt /*netrw-transparent*
netrw-uidpass pi_netrw.txt /*netrw-uidpass*
netrw-urls pi_netrw.txt /*netrw-urls*
netrw-v pi_netrw.txt /*netrw-v*
netrw-var pi_netrw.txt /*netrw-var*
netrw-variables pi_netrw.txt /*netrw-variables*
netrw-write pi_netrw.txt /*netrw-write*
netrw-x pi_netrw.txt /*netrw-x*
netrw-xfer pi_netrw.txt /*netrw-xfer*
netrw.vim pi_netrw.txt /*netrw.vim*
netterm-mouse options.txt /*netterm-mouse*
@@ -5385,6 +5517,8 @@ new-5 version5.txt /*new-5*
new-6 version6.txt /*new-6*
new-7 version7.txt /*new-7*
new-GTK-GUI version5.txt /*new-GTK-GUI*
new-KDE version7.txt /*new-KDE*
new-MzScheme version7.txt /*new-MzScheme*
new-Select-mode version5.txt /*new-Select-mode*
new-View version6.txt /*new-View*
new-argument-list version6.txt /*new-argument-list*
@@ -5422,6 +5556,7 @@ new-options-5.2 version5.txt /*new-options-5.2*
new-options-5.4 version5.txt /*new-options-5.4*
new-perl-python version5.txt /*new-perl-python*
new-plugins version6.txt /*new-plugins*
new-print-multi-byte version7.txt /*new-print-multi-byte*
new-printing version6.txt /*new-printing*
new-runtime-dir version5.txt /*new-runtime-dir*
new-script version5.txt /*new-script*
@@ -5511,6 +5646,8 @@ pattern-multi-items pattern.txt /*pattern-multi-items*
pattern-overview pattern.txt /*pattern-overview*
pattern-searches pattern.txt /*pattern-searches*
pattern.txt pattern.txt /*pattern.txt*
pdev-option print.txt /*pdev-option*
penc-option print.txt /*penc-option*
perl if_perl.txt /*perl*
perl-Append if_perl.txt /*perl-Append*
perl-Buffer if_perl.txt /*perl-Buffer*
@@ -5535,6 +5672,9 @@ perl-patterns pattern.txt /*perl-patterns*
perl-syntax syntax.txt /*perl-syntax*
perl-using if_perl.txt /*perl-using*
perl.vim syntax.txt /*perl.vim*
pexpr-option print.txt /*pexpr-option*
pfn-option print.txt /*pfn-option*
pheader-option print.txt /*pheader-option*
photon-fonts os_qnx.txt /*photon-fonts*
photon-gui os_qnx.txt /*photon-gui*
php-syntax syntax.txt /*php-syntax*
@@ -5545,22 +5685,25 @@ phtml-syntax syntax.txt /*phtml-syntax*
phtml.vim syntax.txt /*phtml.vim*
pi_expl.txt pi_expl.txt /*pi_expl.txt*
pi_gzip.txt pi_gzip.txt /*pi_gzip.txt*
pi_netrw.txt pi_netrw.txt /*pi_netrw.txt*
pi_spec.txt pi_spec.txt /*pi_spec.txt*
plugin usr_05.txt /*plugin*
plugin-details filetype.txt /*plugin-details*
plugin-filetype usr_41.txt /*plugin-filetype*
plugin-special usr_41.txt /*plugin-special*
pmbcs-option print.txt /*pmbcs-option*
pmbfn-option print.txt /*pmbfn-option*
popt-option print.txt /*popt-option*
popup-menu gui.txt /*popup-menu*
popup-menu-added version5.txt /*popup-menu-added*
ports-5.2 version5.txt /*ports-5.2*
ports-6 version6.txt /*ports-6*
postscr-syntax syntax.txt /*postscr-syntax*
postscr.vim syntax.txt /*postscr.vim*
postscript-print-encoding various.txt /*postscript-print-encoding*
postscript-print-trouble various.txt /*postscript-print-trouble*
postscript-print-util various.txt /*postscript-print-util*
postscript-printing various.txt /*postscript-printing*
postscript-cjk-printing print.txt /*postscript-cjk-printing*
postscript-print-encoding print.txt /*postscript-print-encoding*
postscript-print-trouble print.txt /*postscript-print-trouble*
postscript-print-util print.txt /*postscript-print-util*
postscript-printing print.txt /*postscript-printing*
ppwiz-syntax syntax.txt /*ppwiz-syntax*
ppwiz.vim syntax.txt /*ppwiz.vim*
press-enter message.txt /*press-enter*
@@ -5568,9 +5711,12 @@ press-return message.txt /*press-return*
prevcount-variable eval.txt /*prevcount-variable*
preview-window windows.txt /*preview-window*
prevnonblank() eval.txt /*prevnonblank()*
print-intro print.txt /*print-intro*
print-options print.txt /*print-options*
print.txt print.txt /*print.txt*
printcap-syntax syntax.txt /*printcap-syntax*
printing various.txt /*printing*
printing-formfeed various.txt /*printing-formfeed*
printing print.txt /*printing*
printing-formfeed print.txt /*printing-formfeed*
progname-variable eval.txt /*progname-variable*
progress-syntax syntax.txt /*progress-syntax*
progress.vim syntax.txt /*progress.vim*
@@ -5684,9 +5830,11 @@ remove-filetype filetype.txt /*remove-filetype*
remove-option-flags options.txt /*remove-option-flags*
rename() eval.txt /*rename()*
rename-files tips.txt /*rename-files*
repeat() eval.txt /*repeat()*
repeat.txt repeat.txt /*repeat.txt*
repeating repeat.txt /*repeating*
replacing change.txt /*replacing*
replacing-ex insert.txt /*replacing-ex*
resolve() eval.txt /*resolve()*
restore-position tips.txt /*restore-position*
restricted-mode starting.txt /*restricted-mode*
@@ -5760,6 +5908,8 @@ s<CR> change.txt /*s<CR>*
sandbox eval.txt /*sandbox*
save-file editing.txt /*save-file*
save-settings starting.txt /*save-settings*
scheme-syntax syntax.txt /*scheme-syntax*
scheme.vim syntax.txt /*scheme.vim*
scp pi_netrw.txt /*scp*
script-here if_perl.txt /*script-here*
script-local map.txt /*script-local*
@@ -5849,6 +5999,10 @@ sponsor.txt sponsor.txt /*sponsor.txt*
spoon os_unix.txt /*spoon*
spup-syntax syntax.txt /*spup-syntax*
spup.vim syntax.txt /*spup.vim*
sql-syntax syntax.txt /*sql-syntax*
sql.vim syntax.txt /*sql.vim*
sqlinformix-syntax syntax.txt /*sqlinformix-syntax*
sqlinformix.vim syntax.txt /*sqlinformix.vim*
sscanf eval.txt /*sscanf*
standard-plugin usr_05.txt /*standard-plugin*
standard-plugin-list help.txt /*standard-plugin-list*
@@ -6169,6 +6323,7 @@ toggle-revins version4.txt /*toggle-revins*
tolower() eval.txt /*tolower()*
toolbar-icon gui.txt /*toolbar-icon*
toupper() eval.txt /*toupper()*
tr() eval.txt /*tr()*
trojan-horse starting.txt /*trojan-horse*
try-conditionals eval.txt /*try-conditionals*
try-echoerr eval.txt /*try-echoerr*
@@ -6265,6 +6420,7 @@ v:folddashes eval.txt /*v:folddashes*
v:foldend eval.txt /*v:foldend*
v:foldlevel eval.txt /*v:foldlevel*
v:foldstart eval.txt /*v:foldstart*
v:insertmode eval.txt /*v:insertmode*
v:lang eval.txt /*v:lang*
v:lc_time eval.txt /*v:lc_time*
v:lnum eval.txt /*v:lnum*
@@ -6310,6 +6466,7 @@ v_V visual.txt /*v_V*
v_X change.txt /*v_X*
v_Y change.txt /*v_Y*
v_a motion.txt /*v_a*
v_a' motion.txt /*v_a'*
v_a( motion.txt /*v_a(*
v_a) motion.txt /*v_a)*
v_a< motion.txt /*v_a<*
@@ -6318,8 +6475,10 @@ v_aB motion.txt /*v_aB*
v_aW motion.txt /*v_aW*
v_a[ motion.txt /*v_a[*
v_a] motion.txt /*v_a]*
v_a` motion.txt /*v_a`*
v_ab motion.txt /*v_ab*
v_ap motion.txt /*v_ap*
v_aquote motion.txt /*v_aquote*
v_as motion.txt /*v_as*
v_aw motion.txt /*v_aw*
v_a{ motion.txt /*v_a{*
@@ -6348,7 +6507,9 @@ v_g_CTRL-] tagsrch.txt /*v_g_CTRL-]*
v_gf editing.txt /*v_gf*
v_gq change.txt /*v_gq*
v_gv visual.txt /*v_gv*
v_gw change.txt /*v_gw*
v_i motion.txt /*v_i*
v_i' motion.txt /*v_i'*
v_i( motion.txt /*v_i(*
v_i) motion.txt /*v_i)*
v_i< motion.txt /*v_i<*
@@ -6357,8 +6518,10 @@ v_iB motion.txt /*v_iB*
v_iW motion.txt /*v_iW*
v_i[ motion.txt /*v_i[*
v_i] motion.txt /*v_i]*
v_i` motion.txt /*v_i`*
v_ib motion.txt /*v_ib*
v_ip motion.txt /*v_ip*
v_iquote motion.txt /*v_iquote*
v_is motion.txt /*v_is*
v_iw motion.txt /*v_iw*
v_i{ motion.txt /*v_i{*
@@ -6409,6 +6572,8 @@ vim-announce intro.txt /*vim-announce*
vim-arguments starting.txt /*vim-arguments*
vim-default-editor gui_w32.txt /*vim-default-editor*
vim-dev intro.txt /*vim-dev*
vim-indent indent.txt /*vim-indent*
vim-kpart gui_x11.txt /*vim-kpart*
vim-mac intro.txt /*vim-mac*
vim-modes intro.txt /*vim-modes*
vim-modes-intro intro.txt /*vim-modes-intro*
@@ -6429,6 +6594,7 @@ viminfo-file-marks starting.txt /*viminfo-file-marks*
viminfo-file-name starting.txt /*viminfo-file-name*
viminfo-read starting.txt /*viminfo-read*
viminfo-write starting.txt /*viminfo-write*
vimpart gui_x11.txt /*vimpart*
vimrc starting.txt /*vimrc*
vimrc-filetype usr_05.txt /*vimrc-filetype*
vimrc-intro usr_05.txt /*vimrc-intro*

View File

@@ -1,4 +1,4 @@
*tagsrch.txt* For Vim version 7.0aa. Last change: 2004 Apr 29
*tagsrch.txt* For Vim version 7.0aa. Last change: 2004 Jul 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -468,6 +468,7 @@ a tag for each "#defined" macro, typedefs, enums, etc.
Some programs that generate tags files:
ctags As found on most Unix systems. Only supports C. Only
does the basic work.
*Exuberant_ctags*
exuberant ctags This a very good one. It works for C, C++, Java,
Fortran, Eiffel and others. It can generate tags for
many items. See http://ctags.sourceforge.net.

View File

@@ -1,4 +1,4 @@
*todo.txt* For Vim version 7.0aa. Last change: 2004 Jun 20
*todo.txt* For Vim version 7.0aa. Last change: 2004 Oct 10
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -30,19 +30,70 @@ be worked on, but only if you sponsor Vim development. See |sponsor|.
*known-bugs*
-------------------- Known bugs and current work -----------------------
Folding support for 2html. (Carl Osterwisch, Oct 4)
Now diff output!
Aborting at the ATTENTION prompt causes trouble:
buffer remains active, nwindows isn't closed (fixed in buffer.c)
alternate buffer gets "read error" flag.
":sbuf" and ":ball" leave an empty window behind.
Change in handle_swap_exists() also in 6.3?
Add enter_cleanup() and leave_cleanup() also in 6.3?
buffer.c
ex_eval.c
proto/ex_eval.pro
structs.h
vim.h
Win32: When the path to a file has Russian characters, ":cd %:p:h" doesn't
work. (Valery Kondakoff)
Solved in os_mswin.c. Add to 6.3?
Patch for Win32 textdomain: NAKADAIRA Yukihiro, Sept 17.
Valencia: executable("xxd.exe") returns true while "!xxd" doesn't work.
Works fine for me. Only in specific environment?
netrw plugin: When coming back to the same directory a scratch buffer appears.
Only on Win32. (Charles Campbell, Sept 15)
New Eiffel indent script from Jocelyn Fiat. OK with David Clarke.
Win32: not using 'tenc' in GUI causes problems on Win 98? (Jiri Jezdinsky)
Try out with Russian input method.
After "Y" '[ and '] are not at start/end of the yanked text. (Ken Clark)
Patch for adding 'fsync' option: disable using fsync() on file write. (Sept.
26, Ciaran McCreesh)
Folding for C syntax: (Olaf Dabrunz 27 sept 2004)
Add remark about using Vim with VS .net to Visvim docs. (David Fishburn, Sept
27)
Vim icon for documents associated with Vim? (Rahul Kulkarni, sept 28)
Add a function to test if a font name actually works.
When using "set laststatus=2 cmdheight=2" in the .gvimrc you only get one line
for the cmdline. (Christian Robinson) When the Vim window is resized (e.g.,
xterm with many lines) it's OK.
For version 7.0:
- Include many PATCHES:
9 Merge in ideas from tutor.txt (Gabriel Zachmann)
New version 2004 June 16.
8 ":winpos" doesn't work. Patch from Vipin Aravind.
8 Add GTK 2.3 file dialog support. Patch by Grahame Bowland, 2004 Mar 15,
but it doesn't use "initdir" or "dflt". (will update patch)
8 On Sinix SYS_NMLN isn't defined. Include patch from Cristiano De
Michele. He no longer has such a machine.
8 Add file locking. Lock a file when starting to edit it with flock() or
fcntl(). This patch has advisory file locking while reading/writing
the file: ~/vim/patches/kahn_file_locking .
Do we still want this? Andy doesn't have time to work on it.
7 Add 'taglistfiles' option, show file name and type when listing matching
tags name with CTRL-D completion. Patch from Yegappan Lakshmanan.
2004 Jul 11
7 For Visual mode: Command to do a search for the string in the marked
area. Only when fewer than two lines. Use "g/" and "gb". Patch from
Yegappan Lakshmanan. 2004 Jul 11
When more than two lines: perform a search in the Visual area only.
8 Make 'statusline' local, so that each window can have a different
value. But should it also be local to a buffer? (Yegappan Lakshmanan
has a patch, 2004 Jul 11)
8 Add buffer-local autocommands? Reduces overhead for autocommands that
trigger often (inserting a character, switching mode).
:au Event <buffer> do-something
@@ -50,84 +101,31 @@ For version 7.0:
:au BufEnter <buffer> menu enable ...
:au BufLeave <buffer> menu disable ...
Patch from Yakov Lerner, including test (2004 Jan 7).
He'll send updated patch.
Autocommands:
VimResized - When the Vim window has been resized (SIGWINCH)
patch from Yakov Lerner, 2003 July 24.
He'll write documentation and send updated patch.
InsmodEnter
InsmodLeave Taro Muraoka, 2004 Jun 16
- Include the kvim patch. http://freenux.org/vim/ (Mickael Marchand)
Do not add Qtopia yet, it doesn't work very well.
Mickael will update the patch before 21st.
8 Unix: When libcall() fails there is no clear error message. Johannes
Zellner has a patch for this.
updated patch 2004 June 16.
7 Add the MzScheme interface. Patch on http://iamphet.nm.ru/scheme/
(Sergey Khorev)
Alt URL: http://cyber.miem.edu.ru/~iamphet/scheme/mzvim-0.560.tar.gz
8 Add patch from Muraoka Taro (Mar 16) to support input method on Mac?
New patch 2004 Jun 16
8 Add expression-expansion, so that the user can define his own kind of
completion. Patch from Taro Muraoka, 2003 Aug 26.
New patch 2004 Jun 16
8 Text objects: Add "a'" and 'a"': a single or double quoted string.
(Tim Chase) Patch from Taro Muraoka (2003 Dec 16).
New patch 2004 Jun 16
7 Add "nbsp" in 'listchars'? Patch from David Blanchet, 2003 Jul 28.
again 2004 Jun 16
8 Add ":n" to fnamemodify(): normalize path, remove "../" when possible.
Aric Blumer has a patch for this.
He will update the patch for 6.3.
9 Add cursor-column highlighting. Enable it with 'cursorcolumn' option,
set highlighting with "CursorColumn" group. Useful for aligning text.
Also cursor-row highlighting. Patch from Yasuhiro Matsumoto for
underlining the cursor line, 2004 Mar 24. Update 2004 Jun 17
Alternatie: when 'number' is set highlight the number of the current
line.
7 Completion of network shares, patch by Yasuhiro Matsumoto.
Update 2004 Jun 17.
8 Patches from Peter "Rain Dog" Cucka:
- guifont selector (2002 Dec 15) will send update
7 Add an option to set the width of the 'number' column. Eight
positions is often more than needed. Or adjust the width to the
length of the file?
Add patch that adds 'numberlen' option. (James Harvey)
Other patch with min and max from Emmanuel Renieris (2002 Jul 24)
Other patch without an option by Gilles Roy (2002 Jul 25)
New patch from Emmanuel Renieris, 2004 Jun 17
Needs more work: use one option with one or two numbers
7 Be able to call a function while passing on a variable number of
arguments:
:function Foo(abc, ...)
: call Bar(a:abc, a:*)
Charles Campbell has a patch for this
He lost the patch himself.
7 Make ":startinsert" command work directly for functions and scripts?
Also make it possible to append (it's difficult at end of line).
And add ":startreplace" (patch by Charles Campbell, 2004 Jan 9,
http://www.erols.com/astronaut/vim/index.html#Patch)
Update 2004 June 18
8 Add patch from Charles Campbell to have ":0file!" remove the name of
the current buffer. (2003 June 17)
Lost the patch himself.
8 Make it possible to delete marks. Charles Campbell has a patch that
does this with the markclear() function (2004 Jan 9). And the
":delmark" command (2004 Feb 9)
Update 2004 June 18
8 ":hardcopy":
- Patch to append CTRL-D to PostScript output (Mike Williams, 2004 Jun
14)
- support printing multi-byte characters. Patch from Motonobu
Ichimura. New (better) patch from Mike Williams (2004 Jan 20)
Updated patch: http://www.eandem.co.uk/mrw/vim/special/index.html
Patch for specifying an expression for numbered lists. (Hugo Haas,
2004 Aug 7)
--- awaiting updated patch ---
7 Add patch from Wall for this one ( ~/Mail/oldmail/wall/in.00019 ):
'flipcase' variable: upper/lowercase pairs.
Insert comma's between pairs and allow a range, make it look like
'isfname'. E.g. ":set flipcase=a-zA-Z,xX,23-33:143-153". The colon to
separate the from and to part is optional.
Resp: no time now.
--- responses above --
8 Add GTK 2.3 file dialog support. Patch by Grahame Bowland, 2004 Mar 15,
but it doesn't use "initdir" or "dflt". (will update patch)
8 Add ":n" to fnamemodify(): normalize path, remove "../" when possible.
Aric Blumer has a patch for this.
He will update the patch for 6.3.
Autocommands:
7 Completion of network shares, patch by Yasuhiro Matsumoto.
Update 2004 Sep 6.
How does this work? Missing comments.
gettext() Translate a message. (Patch from Yasuhiro Matsumoto)
Update 2004 Sep 10
More docs. Search in 'runtimepath'?
How to get the messages into the .po files?
--- did not respond (yet) --
7 Make "5dd" on last-but-one-line not delete anything (Vi compatible).
Add flag in 'cpoptions' for this. When not present, "2dd" in the last
line should delete the last line. Patch from greenx 2002 Apr 11.
@@ -154,51 +152,6 @@ For version 7.0:
line in between columns (e.g. for 'textwidth').
Patch to add 'hlcolumn' from Vit Stradal, 2004 May 20.
8 Add functions:
tr(expr, from, to) translate chars (Patch from Ron Aaron, Apr 8
2004)
strrep() Repeat a string (patch from Christophe Poucet,
2003 Sep 12, also contains XX)
Alt: repeat(expr, count) werkt ook voor lists.
mousex() mousey() get position of mouse pointer (patch by Ross
Presser)
He will send a new patch.
Is this really useful?
multibyteidx(string, idx) Byte index in multi-byte character.
Patch by Ilya Sher, 2004 Feb 25
Update June 18 (third one).
menuprop({name}, {idx}, {what})
Get menu property of menu {name} item {idx}.
menuprop("", 1, "name") returns "File".
menuprop("File", 1, "n") returns "nmenu
File.Open..." argument.
Patch by Ilya Sher, 2004 Apr 22
mapname({idx}, mode) return the name of the idx'th mapping.
Patch by Ilya Sher, 2004 Mar 4.
match({pat}, {string} [,start] [,count]) get index of count'th match
Patch by Ilya Sher, 2004 Jun 19
find() find file in 'path' (patch from Johannes
Zellner 2001 Dec 20)
Update 2004 Jun 16.
gettext() Translate a message. (Patch from Yasuhiro
Matsumoto) How to get the messages into the
.po files?
Update 2004 Jun 17
---
realname() Get user name (first, last, full)
user_fullname() patch by Nikolai Weibull, Nov
3 2002)
getfperm() file permissions, in form "rwxrwxrwx"
(patch from Nikolai Weibull 2003 Jan 13)
getftype() "file", "dir", "link", "other"?
(patch from Nikolai Weibull 2003 Jan 13)
setbufline() set line in any buffer (patch from Yegappan
Lakshmanan, 2003 Jan 21)
winnr("$") Get number of windows. (patch from Nikolai
Weibull 2003 Jan 13) (another patch from
Yegappan Lakshmanan, 2003 Aug 31)
search() Add optional offset argument.
Add 'n' flag. (patch from Nikolai Weibull
2003 Jan 13)
confirm() add "flags" argument, with 'v' for vertical
layout and 'c' for console dialog. (Haegg)
Flemming Madsen has a patch for the 'c' flag
@@ -210,28 +163,15 @@ For version 7.0:
Tcl implementation ~/vim/HierAssist/ )
7 Add patch from Benoit Cerrina to integrate Vim and Perl functions
better. Now also works for Ruby (2001 Nov 10)
7 Add 'taglistfiles' option, show file name and type when listing matching
tags name with CTRL-D completion. Patch from Yegappan Lakshmanan.
7 Motif: use the menu font consistently. Patch from Martin Dalecki 2002
Jan 11.
- Motif: add 3D shading for the menu entries? Patch from Martin Dalecki.
9 When 'autoindent' is set, hitting <CR> twice, while there is text after
the cursor, doesn't delete the autoindent in the resulting blank line.
(Rich Wales) This is Vi compatible, but it looks like a bug. Rich has
a suggestion for a patch to fix this.
e-mail to Rich bounced.
7 For Visual mode: Command to do a search for the string in the marked
area. Only when fewer than two lines. Use "g/" and "gb". Patch from
Yegappan Lakshmanan.
7 When 'rightleft' is set, the search pattern should be displayed right
to left as well? See patch of Dec 26. (Nadim Shaikli)
8 Lock all used memory so that it doesn't get swapped to disk (uncrypted).
Patch by Jason Holt, 2003 May 23.
7 Support a stronger encryption. Jason Holt implemented AES (May 6 2003).
7 Add ! register, for shell commands. (patch from Grenie)
8 Make 'statusline' local, so that each window can have a different
value. But should it also be local to a buffer? (Yegappan Lakshmanan
has a patch, 2002 feb 15)
8 In the gzip plugin, also recognize *.gz.orig, *.gz.bak, etc. Like it's
done for filetype detection. Patch from Walter Briscoe, 2003 Jul 1.
7 Add a "-@ filelist" argument: read file names from a file. (David
@@ -249,8 +189,21 @@ For version 7.0:
- findmatch() should be adjusted for Lisp. See remark at
get_lisp_indent(). Esp. \( and \) should be skipped. (Dorai Sitaram,
incomplete patch Mar 18)
- Set user variables to the names of the actually used user vimrc file,
the first directory looked for user plugins/syntax files.
$MYVIMRC for .vimrc, $MYGVIMRC for .gvimrc, $MYRUNTIME/plugin for
runtime files?
Also: when the environment variable exists, use it. If it doesn't
exist, set it. Requires good names: $VIM_USER_VIMRC $VIM_USER_DIR
- In the kvim/KDE source files fix the formatting.
- KDE version is called "kvim". Make it "gvim", like the others?
- Better configure check for KDE include files from Dan Sharp.
- KDE Input method patch. (Yasuhiro Matsumoto)
- Change ga_room into ga_maxlen, so that it doesn't need to be
incremented/decremented each time.
- For string variables, use length instead of NUL termination.
- new DATA TYPES: lists, dictionaries and function references.
Check old patch from Robert Webb for array support.
Add type checking? See ~/vim/ideas.txt.
@@ -260,6 +213,14 @@ For version 7.0:
ispell inside Vim). Gautam Iyer has an example with "aspell".
"engspchk" from Charles Campbell is a good way. Support for
approximate-regexps will help (agrep http://www.tgries.de/agrep/).
- Charles Campbell asks for method to add "contained" groups to
existing syntax items (to add @Spell). Add ":syntax contains
{pattern} add=@Spell" command? A bit like ":syn cluster" but change
the contains list directly for matching syntax items.
- Keep wordlist in syntax group, load it only once and use it several
times later. Sort of global syntax items.
- Use wordlists from openoffice (myspell). Work together with them to
update the wordlist. (Adri Verhoef, Aad Nales)
- REFACTORING: The main() function is very long. Move parts to separate
functions, especially loops. Ideas from Walter Briscoe (2003 Apr 3, 2004
Feb 9).
@@ -271,9 +232,35 @@ For version 7.0:
- "INTELLISENSE". First cleanup the Insert-mode completion.
http://www.vim.org/scripts/script.php?script_id=747
http://sourceforge.net/projects/insenvim
http://cedet.sourceforge.net/intellisense.shtml (for Emacs)
Ivan Villanueva has something for Java.
Can't call it Intellisense, it is a trademark by Microsoft.
Ideas from the Vim 7 BOF at SANE:
- It's not possible to have one solution for all languages. Design an
interface for completion plugins. The matches can be done in a
Vim-script list.
- For interpreted languages, use the interpreter to obtain information.
Should work for Java (Eclipse does this), Python, Tcl, etc.
- 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.
- 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.
To navigate through the undo tree number the states of the text
sequentially and make it possible to go through the tree in that order.
Could also use timestamps (to show the time and/or jump to a state five
minutes ago). (David Schweikert)
To go from one state to another: backtrack to a common state, then forward
again.
Only difficult thing: When going back in time, how to find the previous
text state in the tree?
Show the list of changes in a window to be able to select a version?
- PERSISTENT UNDO: store undo in a file.
Support multiple threads. Show the list of changes in a window to be able
to select a version.
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").
7 SWAP FILE CHANGE: When a dos format file was edited with ":e ++ff=unix",
Vim is killed and trying to recover the file, 'ff' will be dos. Same for
non-default fileencoding. (Miroslaw Dobrzanski-Neumann, Jul 17)
@@ -301,10 +288,83 @@ For version 7.0:
- STICKY CURSOR: Add a way of scrolling that leaves the cursor where it is.
Especially when using the scrollbar. Typing a cursor-movement command
scrolls back to where the cursor is.
8 Support four composing characters, needed for Hebrew. (Ron Aaron)
- Execute a function with standard option values. No need to save and
restore option values. Especially useful for new options. Problem: how
to avoid a performance penalty (esp. for string options)?
8 Support four composing/combining characters, needed for Hebrew. (Ron Aaron)
Add the 'maxcombining' option to set the nr. of composing characters.
At the same time support more colors (use two bytes when necessary).
- Add a few more things to 'diffopt': "horizontal", "vertical",
"foldcolumn". (Benji Fisher, 2004 Jun 21)
- FileChangedShellPost autocommand event: after (not) reloading a changed
file. Can be used to update statusline oslt.
8 When a file is change outside of Vim and unmodified in Vim there is no
simple way to automatically reload the file. Either add an option for
this or make it simple to have the FileChangedShell invoke the normal
action, telling it what to do.
- Displaying size of Visual area: use 24-33 column display.
- Mac: Unicode input and display (Eckehard Berns, June 27)
8 Add patch from Muraoka Taro (Mar 16) to support input method on Mac?
New patch 2004 Jun 16
9 Add cursor-column highlighting. Enable it with 'cursorcolumn' option,
set highlighting with "CursorColumn" group. Useful for aligning text.
Also cursor-row highlighting. Patch from Yasuhiro Matsumoto for
underlining the cursor line: 2004 Jun 17. Should use highlight group
instead.
Alternative: when 'number' is set highlight the number of the current
line.
7 Make ":startinsert" command work directly for functions and scripts?
Also make it possible to append (it's difficult at end of line).
- When using 'incsearch" CTRL-R CTRL-W gets the word under the cursor, but
the part that already matched is doubled then. Remove the part of the
word that would be doubled. Make it work line CTRL-N in Insert mode.
- Add Lua interface? (Wolfgang Oertl)
- "onemore" flag in 'virtualedit': move cursor past end of line. Patch by
Mattias Flodin (2004 Jul 30)
The fsync() in buf_write() causes laptop harddisk spinup. Add an option to
avoid it?
Support ":set syntax=cpp.doxygen"? Suggested patch by Michael Geddes (9 Aug
2004). Should also work for 'filetype'.
Patch for 'breakindent' option: repeat indent for wrapped line. (Vaclav
Smilauer, 2004 Sep 13)
Win32: In 'fileencodings' allow using "acp" for the active codepage. Useful
value: "ucs-bom,utf-8,acp,latin1"
Win32: Cannot edit a file starting with # with --remote. (Giuseppe Bilotta,
Oct 6 2004)
For manipulating buffers without opening a new window, support Virtual
windows. Example:
:virtwin let l = GetBufLine(4, 10)
:fun GetBufLine(bufnr, lnum)
: exe "buffer " . a:bufnr
: return getline(lnum)
:endfun
The getline() and setline() functions could work for other buffers, using a
Virtual window.
A Virtual window only exists for one command. There can be several (for
nested commands). The window works as if it comes after the last window, size
is the Vim window size, but it's never displayed.
Win32: In the generated batch files, use $VIMRUNTIME if it's set. Examples by
Mathias Michaelis (2004 Sep 6)
Also place vimtutor.bat in %windir%?
Support ":enew filename" to edit a new buffer with a name. It's like "enew |
file filename" but without setting the alternate file to a buffer without a
name. (Charles Campbell)
Add gui_mch_browsedir() for Motif, KDE and Mac OS/X.
Vi incompatibility:
9 In Ex mode, "u" undoes all changes, not just the last one. (John Cowan)
8 In Ex mode, an empty file doesn't have a first line, "1p" should fail.
8 In Ex mode, "1,3" should print three lines.
8 With undo/redo only marks in the changed lines should be changed. Other
marks should be kept. Vi keeps each mark at the same text, even when it
is deleted or restored. (Webb)
@@ -393,6 +453,11 @@ GTK+ GUI known bugs:
It starts working after GTK gvim loses the selection and gains it again.
7 DND doesn't work with KDE (also with GTK 1).
KDE GUI known bugs:
- The default font is ugly. bold text isn't displayed correctly.
(bold characters are half the width of normal characters)
- Error messages when starting up. The "tip of the day" box is empty.
- Encoding of menu items needs to be converted. (Yasuhiro Matsumoto)
Win32 GUI known bugs:
8 On Windows 98 the unicows library is needed to support functions with UCS2
@@ -407,6 +472,9 @@ Win32 GUI known bugs:
"lucida_console:h8").
6 Win32 GUI: With "-u NONE -U NONE" and doing "CTRL-W v" "CTRL-W o", the ":"
of ":only" is highlighted like the cursor. (Lipelis)
8 When 'encoding' is "utf-8", should use 'guifont' for both normal and wide
characters to make Asian languages work. Win32 fonts contain both
type of characters.
7 When font smoothing is enabled, redrawing can become very slow. The reason
appears to be drawing with a transparent background. Would it be possible
to use an opaque background in most places?
@@ -748,7 +816,7 @@ Macintosh:
8 When an ":edit" is inside a try command and the ATTENTION prompt is used,
the :catch commands are always executed, also when the file is edited
normally. Should reset did_emsg and undo side effects. Also make sure
the ATTENTION message shows up.
the ATTENTION message shows up. Servatius Brandt works on this.
9 When using ":e ++enc=foo file" and the file is already loaded with
'fileencoding' set to "bar", then do_ecmd() uses that buffer, even though
the fileencoding differs. Reload the buffer in this situation? Need to
@@ -791,8 +859,6 @@ Macintosh:
":buf foo<Tab>" doesn't find the second one. (George V. Reilly)
7 Output for ":scriptnames" and ":breaklist" should shorten the file names:
use "~/" when possible.
8 After using diff mode, ":set nodiff" doesn't restore the old foldmethod.
(Thomas S. Urban)
7 mb_off2cells() doesn't work correctly on the tail byte of a double-byte
character. (Yasuhiro Matsumoto) It should return 1 when used on a tail
byte, like for utf-8. Store second byte of double-byte in ScreenLines2[]
@@ -885,6 +951,7 @@ Macintosh:
dithering to make grey text?
- Add a flag in 'printoptions' to add an empty page to make the total
number even. "addempty"? (Mike Williams)
- Respect 'linebreak'. Perhaps also 'showbreak'?
- Should interpreted CTRL-L as a page break.
- Grey line numbers are not always readable. Add field in 'printoptions'.
Default to black when no syntax highlighting.
@@ -1111,6 +1178,8 @@ Problems that will (probably) not be solved:
- GTK: When pasting a selection from Vim to xclipboard gvim crashes with a
ABRT signal. Probably an error in the file gdkselection.c, the assert
always fails when XmbTextListToTextProperty() fails. (Tom Allard)
- GTK 2: gives an assertion error for every non-builtin icon in the toolbar.
This is a GTK 2.4.x bug, fixed in GTK 2.4.2. (Thomas de Grenier de Latour)
- When using an xterm that supports the termresponse feature, and the 't_Co'
termcap option was wrong when Vim started, it will be corrected when the
termresponse is received. Since the number of colors changes, the
@@ -1123,6 +1192,8 @@ Problems that will (probably) not be solved:
*extensions-improvements*
Documentation:
8 List of options should mention whether environment variables are expanded
or not.
8 Extend usr_27.txt a bit. (Adam Seyfarth)
7 Add a section on debugging scripts in the user manual.
9 Make the Reference Manual more precise. For each command mention:
@@ -1190,7 +1261,6 @@ User Friendlier:
Diff mode:
8 Add a command to stop diff mode: ":set nodiff fdc = 0 noscrollbind"
8 Use diff mode to show the changes made in a buffer (compared to the file).
Use an unnamed buffer, like doing:
new | set bt=nofile | r # | 0d_ | diffthis | wincmd p | diffthis
@@ -1485,6 +1555,13 @@ Built-in script language:
Packages are loaded automatically when first used, from
$VIMRUNTIME/packages (or use a search path).
7 Make globpath() also work with "**" and upwards search. (Brian Medley)
7 Add the markclear() function to delete a mark in another buffer. Charles
Campbell (2004 Jan 9)
http://mysite.verizon.net/astronaut/vim/index.html#Patch
Implement setmark(markname, lnum [, col [, filename]]) instead?
When "lnum" is zero delete the mark.
When "filename" has no wildcards and there is no matching buffer, add
the buffer (unlisted).
7 Pre-parse or compile Vim scripts into a bytecode.
1. Put the bytecode with the original script, with an ":if
has('bytecode')" around it, so that it's only used with a Vim that
@@ -1499,6 +1576,25 @@ Built-in script language:
7 Add argument to winwidth() to subtract the space taken by 'foldcolumn',
signs and/or 'number'.
8 Add functions:
search() Add optional offset argument.
realname() Get user name (first, last, full)
user_fullname() patch by Nikolai Weibull, Nov
3 2002
Only add this when also implemented for
non-Unix systems, otherwise a shell cmd could
be used.
get_user_name() gets login name.
menuprop({name}, {idx}, {what})
Get menu property of menu {name} item {idx}.
menuprop("", 1, "name") returns "File".
menuprop("File", 1, "n") returns "nmenu
File.Open..." argument.
Patch by Ilya Sher, 2004 Apr 22
Return a list of menus and/or a dictionary
with properties instead.
mapname({idx}, mode) return the name of the idx'th mapping.
Patch by Ilya Sher, 2004 Mar 4.
Return a list instead.
sprintf(format, arg, ..) How to prevent a crash???
attributes() return file protection flags "drwxrwxrwx"
mkdir(dir) Create directory
@@ -1566,6 +1662,13 @@ Robustness:
A long line with a " in it can cause a crash when it runs out of stack
space (on systems where this isn't caught). How can we catch this for
more systems?
6 Add file locking. Lock a file when starting to edit it with flock() or
fcntl(). This patch has advisory file locking while reading/writing
the file for Vim 5.4: ~/vim/patches/kahn_file_locking .
The patch is incomplete (needs support for more systems, autoconf).
Andy doesn't have time to work on it.
Disadvantage: Need to find ways to gracefully handle failure to obtain a
lock. When to release a lock: When buffer is unloaded?
Performance:
@@ -2005,8 +2108,11 @@ Autocommands:
ReplaceEnter - Entering Replace mode
CmdEnter - Entering Cmdline mode
VisualEnter - Entering Visual mode
*Leave - Leaving a mode (in pair with the above *Enter)
VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled
when exiting isn't a good idea.
WinMoved - when windows have been moved around, e.g, ":wincmd J"
CmdUndefined - Like FuncUndefined but for user commands.
*Leave - Leaving the mode
SearchPost - After doing a search command (e.g. to do "M")
PreDirChanged/PostDirChanged
- Before/after ":cd" has been used (for changing the
@@ -2171,6 +2277,9 @@ Command line history:
Insert mode:
9 When 'autoindent' is set, hitting <CR> twice, while there is text after
the cursor, doesn't delete the autoindent in the resulting blank line.
(Rich Wales) This is Vi compatible, but it looks like a bug.
8 When using CTRL-O in Insert mode, then executing an insert command
"a" or "i", should we return to Insert mode after <Esc>? (Eggink)
Perhaps it can be allowed a single time, to be able to do
@@ -2473,8 +2582,6 @@ Mappings and Abbreviations:
- Add command to repeat a whole mapping ("." only repeats the last change in
a mapping). Also: Repeat a whole insert command, including any mappings
that it included. Sort-of automatic recording?
- Make it possible to undo all the commands from a mapping, including a
trailing unfinished command, e.g. for ":map K iX^[r".
- Add an option to ":map" that makes it display the special keys in
<> notation (e.g. <CR> instead of ^M). Or just always do this?
- Include an option (or flag to 'cpoptions') that makes errors in mappings
@@ -2553,8 +2660,8 @@ item stack to allow matching (). One side is "push X on
This one is also very slow on "/* some comment */": "^\/\*\(.*[^/]\)*$".
7 Recognize "[a-z]", "[0-9]", etc. and replace them with the faster "\l" and
"\d".
7 Add a way to specify characters as hex, octal or <C-M> form. Could be
\%1ax, \%200o and \%<C-M>. Also \%1234u for multi-byte chars.
7 Add a way to specify characters in <C-M> or <Key> form. Could be
\%<C-M>.
8 Flags that apply to the whole pattern.
This works for all places where a regexp is used.
Add "\q" to not store this pattern as the last search pattern?
@@ -2609,11 +2716,6 @@ item stack to allow matching (). One side is "push X on
before saving files: "Save modified buffer "/path/file"? (Yes/Hide/No
Save-all/hide-All/Quit) ".
- ":s/pat/foo/3": find 3rd match of "pat", like sed. (Thomas Koehler)
- Special characters in patterns:
Inside []:
\012 octal character
\0x1a hex character
\0<BS> \0<Esc>: special character
7 When searching with 'n' give message when getting back where the search
first started. Remember start of search in '/ mark.
7 Add option that scrolls screen to put cursor in middle of screen after
@@ -2630,6 +2732,8 @@ item stack to allow matching (). One side is "push X on
Undo:
- Make it possible to undo all the commands from a mapping, including a
trailing unfinished command, e.g. for ":map K iX^[r".
- When accidentally hitting "R" instead of Ctrl-R, further Ctrl-R is not
possible, even when typing <Esc> immediately. (Grahn) Also for "i", "a",
etc. Postpone saving for undo until something is really inserted?
@@ -2643,9 +2747,6 @@ Undo:
version without changing the rest of the file. Stop doing this when a
change includes only some of these lines and changes the line count. Need
to store these undo actions as a separate change that can be undone.
7 Add an undo tree: When making a change, instead of clearing any future
undo (thus redo) info, make a new branch. How to navigate through the
undo tree?
- For u_save() include the column number. This can be used to set '[ and '].
And in the future the undo can be made more efficient (Webb).
- In out-of-memory situations: Free allocated space in undo, and reduce the
@@ -2864,7 +2965,7 @@ Digraphs:
below/above).
- Use digraph table to tell Vim about the collating sequence of special
characters?
8 Add command to remove (all) digraphs. (Brown)
8 Add command to remove one or more (all) digraphs. (Brown)
7 Support different sets of digraphs (depending on the character set?). At
least Latin1/Unicode, Latin-2, MS-DOS (esp. for Win32).
@@ -2975,7 +3076,9 @@ Debug mode:
8 Add breakpoints for setting an option
8 Add breakpoints for assigning to a variable.
7 Add a watchpoint in the debug mode: An expression that breaks execution
when evaluating to non-zero.
when evaluating to non-zero. Add the "watchadd expr" command, stop when
the value of the expression changes. ":watchdel" deletes an item,
":watchlist" lists the items. (Charles Campbell)
7 Store the history from debug mode in viminfo.
7 Make the debug mode history available with histget() et al.
@@ -2985,6 +3088,8 @@ Various improvements:
the buffer. Buffer may be modified.
6 In the quickfix window statusline add the command used to get the list of
errors, e.g. ":make foo", ":grep something *.c".
7 Add a ":cstring" command. Works like ":cfile" but reads from a string
variable. Also accept a list variable?
6 Python interface: add vim.message() function. (Michal Vitecek, 2002 Nov 5)
7 Support using ":vert" with User commands. Add expandable items <vert>.
Do the same for ":browse" and ":confirm"?
@@ -3113,6 +3218,8 @@ Various improvements:
paragraphs). Complements the '2' flag. Use '>' flag when larger indent
starts a new paragraph, use '<' flag when smaller indent starts a new
paragraph. Both start a new paragraph on any indent change.
7 Add a way to define an item list with a pattern in 'formatoptions'. The
'n' flag doesn't work for "6.3" or "6a.".
8 Add 'formatexpr' option: Used for formatting operator "gq" instead of the
builtin formatting or 'formatprg'.
8 Allow using a trailing space to signal a paragraph that continues on the
@@ -3214,6 +3321,7 @@ Various improvements:
column number. Can use the code of ":helpgrep".
Also support using "**" in filename, so that a directory tree can be
searched.
Also see the "minigrep.vim" script on www.vim.org.
- Change ":fixdel" into option 'fixdel', t_del will be adjusted each time
t_bs is set? (Webb)
- "gc": goto character, move absolute character positions forward, also
@@ -3299,8 +3407,6 @@ Various improvements:
- Implement 'redraw' option.
- Add special code to 'sections' option to define something else but '{' or
'}' as the start of a section (e.g. one shiftwidth to the right).
- Add 'indent' option: Always use this amount of indent when starting a new
line and when formatting text.
- Use pipes for filtering on Unix. Requires using fork() to be able to read
and write at the same time, or some select() mechanism.
7 Allow using Vim in a pipe: "ls | vim -u xxx.vim - | yyy". Only needs

View File

@@ -1,4 +1,4 @@
*uganda.txt* For Vim version 7.0aa. Last change: 2004 May 12
*uganda.txt* For Vim version 7.0aa. Last change: 2004 Aug 29
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -214,7 +214,7 @@ Check the ICCF web site for the latest information! See |iccf| for the URL.
USA and Canada: Contact Kibaale Children's Fund (KCF) in Surrey, Canada. They
take care of the Canadian sponsors for the children in
Kibaale. You can send them a one time donation directly.
Please send me a note so that know what has been donated
Please send me a note so that I know what has been donated
because of Vim. Ask KCF for information about sponsorship.
Kibaale Children's Fund c/o Pacific Academy
10238-168 Street

View File

@@ -1,4 +1,4 @@
*usr_01.txt* For Vim version 7.0aa. Last change: 2004 May 01
*usr_01.txt* For Vim version 7.0aa. Last change: 2004 Sep 09
VIM USER MANUAL - by Bram Moolenaar
@@ -104,11 +104,13 @@ Instead of reading the text (boring!) you can use the vimtutor to learn your
first Vim commands. This is a 30 minute tutorial that teaches the most basic
Vim functionality hands-on.
On Unix and MS-Windows, if Vim has been properly installed, you can start it
from the shell:
On Unix, if Vim has been properly installed, you can start it from the shell:
>
vimtutor
On MS-Windows you can find it in the Program/Vim menu. Or execute
vimtutor.bat in the $VIMRUNTIME directory.
This will make a copy of the tutor file, so that you can edit it without
the risk of damaging the original.
There are a few translated versions of the tutor. To find out if yours is

View File

@@ -1,4 +1,4 @@
*usr_05.txt* For Vim version 7.0aa. Last change: 2004 Mar 12
*usr_05.txt* For Vim version 7.0aa. Last change: 2004 Aug 27
VIM USER MANUAL - by Bram Moolenaar
@@ -369,8 +369,8 @@ adding. If it's OK, you can give the new one another name: >
mv thefile ~/.vim/ftplugin/stuff_too.vim
The underscore is used to separate the name of the filetype from the rest,
which can be anything. If you would use "otherstuff.vim" it wouldn't work, it
would be loaded for the "otherstuff" filetype.
which can be anything. If you use "otherstuff.vim" it wouldn't work, it would
be loaded for the "otherstuff" filetype.
On MS-DOS you cannot use long filenames. You would run into trouble if you
add a second plugin and the filetype has more than six characters. You can
@@ -427,6 +427,8 @@ you already have the directory.) >
:!mkdir ~/.vim/plugin
:!cp $VIMRUNTIME/macros/matchit.vim ~/.vim/plugin
The "cp" command is for Unix, on MS-DOS you can use "copy".
Now create a "doc" directory in one of the directories in 'runtimepath'. >
:!mkdir ~/.vim/doc
@@ -505,7 +507,7 @@ before and after the option name. For example: >
:help 'wrap'
In case you have messed up an option value, you can set it back to the
default by putting a ampersand (&) after the option name. Example: >
default by putting an ampersand (&) after the option name. Example: >
:set iskeyword&
@@ -514,8 +516,8 @@ NOT WRAPPING LINES
Vim normally wraps long lines, so that you can see all of the text. Sometimes
it's better to let the text continue right of the window. Then you need to
scroll the text left-right to see all of a long line. Switch wrapping of with
this command: >
scroll the text left-right to see all of a long line. Switch wrapping off
with this command: >
:set nowrap

View File

@@ -1,4 +1,4 @@
*usr_21.txt* For Vim version 7.0aa. Last change: 2004 Jun 16
*usr_21.txt* For Vim version 7.0aa. Last change: 2004 Oct 10
VIM USER MANUAL - by Bram Moolenaar
@@ -65,7 +65,7 @@ a look at an overview:
:w !{program} execute {program} and send text to its input
:[range]!{program} filter text through {program}
Notice that the presense of a range before "!{program}" makes a big
Notice that the presence of a range before "!{program}" makes a big
difference. Without it executes the program normally, with the range a number
of text lines is filtered through the program.

View File

@@ -1,4 +1,4 @@
*usr_27.txt* For Vim version 7.0aa. Last change: 2003 Oct 28
*usr_27.txt* For Vim version 7.0aa. Last change: 2004 Jun 26
VIM USER MANUAL - by Bram Moolenaar
@@ -304,9 +304,9 @@ Will match "ab" in "abbb". Actually, it will never match more than one b,
because there is no reason to match more. It requires something else to force
it to match more than the lower limit.
The same rules apply to removing "n" and "m". It's even possible to remove
both of the, resulting in "\{-}". This matches the item before it zero or
more times, as few as possible. The item by itself always match zero times.
It is useful when combined with something else. Example: >
both of the numbes, resulting in "\{-}". This matches the item before it zero
or more times, as few as possible. The item by itself always matches zero
times. It is useful when combined with something else. Example: >
/a.\{-}b

View File

@@ -1,4 +1,4 @@
*usr_41.txt* For Vim version 7.0aa. Last change: 2004 May 06
*usr_41.txt* For Vim version 7.0aa. Last change: 2004 Oct 06
VIM USER MANUAL - by Bram Moolenaar
@@ -218,9 +218,9 @@ To avoid the need for a backslash, you can use a string in single quotes: >
:echo name
< "peter" ~
Inside a single-quote string all the characters are taken literally. The
drawback is that it's impossible to include a single quote. A backslash is
taken literally as well, thus you can't use it to change the meaning of the
Inside a single-quote string all the characters are as they are. The drawback
is that it's impossible to include a single quote. A backslash is taken
literally as well, thus you can't use it to change the meaning of the
character after it.
In double-quote strings it is possible to use special characters. Here are
a few useful ones:

View File

@@ -1,4 +1,4 @@
*various.txt* For Vim version 7.0aa. Last change: 2004 Jun 18
*various.txt* For Vim version 7.0aa. Last change: 2004 Jul 05
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -8,8 +8,7 @@ Various commands *various*
1. Various commands |various-cmds|
2. Online help |online-help|
3. Printing |printing|
4. Using Vim like less or more |less|
3. Using Vim like less or more |less|
==============================================================================
1. Various commands *various-cmds*
@@ -306,6 +305,7 @@ N *+mouse_xterm* Unix only: xterm mouse handling |xterm-mouse|
B *+multi_byte* Korean and other languages |multibyte|
*+multi_byte_ime* Win32 input method for multibyte chars |multibyte-ime|
N *+multi_lang* non-English language support |multi-lang|
m *+mzscheme* Mzscheme interface |mzscheme|
m *+netbeans_intg* |netbeans|
m *+ole* Win32 GUI only: |ole-interface|
*+osfiletype* Support for the 'osfiletype' option and filetype
@@ -720,369 +720,6 @@ Hints for translators:
- Use the |:helptags| command to generate the tags files. It will find all
languages in the specified directory.
==============================================================================
3. Printing *printing*
On MS-Windows Vim can print your text on any installed printer. On other
systems a PostScript file is produced. This can be directly sent to a
PostScript printer. For other printers a program like ghostscript needs to be
used.
3.1 PostScript Printing |postscript-printing|
3.2 PostScript Printing Encoding |postscript-print-encoding|
3.3 PostScript Printing Troubleshooting |postscript-print-trouble|
3.4 PostScript Utilities |postscript-print-util|
3.5 Formfeed Characters |printing-formfeed|
{not in Vi}
{only available when compiled with |+printer| feature}
*:ha* *:hardcopy* *E237* *E238* *E324*
:[range]ha[rdcopy][!] [arguments]
Send [range] lines (default whole file) to the
printer.
On MS-Windows a dialog is displayed to allow selection
of printer, paper size etc. To skip the dialog, use
the [!]. In this case the printer defined by
'printdevice' is used, or, if 'printdevice' is empty,
the system default printer.
For systems other than MS-Windows, PostScript is
written in a temp file and 'printexpr' is used to
actually print it. Then [arguments] can be used by
'printexpr' through |v:cmdarg|. Otherwise [arguments]
is ignored. 'printoptions' can be used to specify
paper size, duplex, etc.
:[range]ha[rdcopy][!] >{filename}
As above, but write the resulting PostScript in file
{filename}.
Things like "%" are expanded |cmdline-special|
Careful: An existing file is silently overwritten.
{only available when compiled with the |+postscript|
feature}
On MS-Windows use the "print to file" feature of the
printer driver.
Progress is displayed during printing as a page number and a percentage. To
abort printing use the interrupt key (CTRL-C or, on MS-systems, CTRL-Break).
Printer output is controlled by the 'printfont' and 'printoptions' options.
'printheader' specifies the format of a page header.
The printed file is always limited to the selected margins, irrespective of
the current window's 'wrap' or 'linebreak' settings. The "wrap" item in
'printoptions' can be used to switch wrapping off.
The current highlighting colors are used in the printout, with the following
considerations:
1) The normal background is always rendered as white (i.e. blank paper.)
2) White text or the default foreground is rendered as black, so that it shows
up!
3) If 'background' is "dark", then the colours are darkened to compensate for
the fact that otherwise they would be too bright to show up clearly on
white paper.
3.1 PostScript Printing *postscript-printing*
*E455* *E456* *E457* *E624*
Provided you have enough disk space there should be no problems generating a
PostScript file. You need to have the runtime files correctly installed (if
you can find the help files, they probably are).
There are currently a number of limitations with PostScript printing:
- 'printfont' - The font name is ignored (the Courier family is always used -
it should be available on all PostScript printers) but the font size is
used.
- 'printoptions' - The duplex setting is used when generating PostScript
output, but it is up to the printer to take notice of the setting. If the
printer does not support duplex printing then it should be silently ignored.
Some printers, however, don't print at all.
- 8-bit support - While a number of 8-bit print character encodings are
supported it is possible that some characters will not print. Whether a
character will print depends on the font in the printer knowing the
character. Missing characters will be replaced with an upside down question
mark, or a space if that character is also not known by the font. It may be
possible to get all the characters in an encoding to print by installing a
new version of the Courier font family.
- Multi-byte support - Currently VIM will try to convert multi-byte characters
to the 8-bit encoding specified by 'printencoding' (or latin1 if it is
empty). Any characters that are not successfully converted are shown as
unknown characters. Printing will fail if VIM cannot convert the multi-byte
to the 8-bit encoding.
3.2 Custom 8-bit Print Character Encodings *postscript-print-encoding*
*E618* *E619*
To use your own print character encoding when printing 8-bit character data
you need to define your own PostScript font encoding vector. Details on how
to to define a font encoding vector is beyond the scope of this help file, but
you can find details in the PostScript Language Reference Manual, 3rd Edition,
published by Addison-Wesley and available in PDF form at
http://www.adobe.com/. The following describes what you need to do for VIM to
locate and use your print character encoding.
i. Decide on a unique name for your encoding vector, one that does not clash
with any of the recognized or standard encoding names that VIM uses (see
|encoding-names| for a list), and that no one else is likely to use.
ii. Copy $VIMRUNTIME/print/latin1.ps to the print subdirectory in your
'runtimepath' and rename it with your unique name.
iii. Edit your renamed copy of latin1.ps, replacing all occurrences of latin1
with your unique name (don't forget the line starting %%Title:), and
modify the array of glyph names to define your new encoding vector. The
array must have exactly 256 entries or you will not be able to print!
iv. Within VIM, set 'printencoding' to your unique encoding name and then
print your file. VIM will now use your custom print character encoding.
VIM will report an error with the resource file if you change the order or
content of the first 3 lines, other than the name of the encoding on the line
starting %%Title: or the version number on the line starting %%Version:.
[Technical explanation for those that know PostScript - VIM looks for a file
with the same name as the encoding it will use when printing. The file
defines a new PostScript Encoding resource called /VIM-name, where name is the
print character encoding VIM will use.]
3.3 PostScript Printing Troubleshooting *postscript-print-trouble*
*E621*
Usually the only sign of a problem when printing with PostScript is that your
printout does not appear. If you are lucky you may get a printed page that
tells you the PostScript operator that generated the error that prevented the
print job completing.
There are a number of possible causes as to why the printing may have failed:
- Wrong version of the prolog resource file. The prolog resource file
contains some PostScript that VIM needs to be able to print. Each version
of VIM needs one particular version. Make sure you have correctly installed
the runtime files, and don't have any old versions of a file called prolog
in the print directory in your 'runtimepath' directory.
- Paper size. Some PostScript printers will abort printing a file if they do
not support the requested paper size. By default VIM uses A4 paper. Find
out what size paper your printer normally uses and set the appropriate paper
size with 'printoptions'. If you cannot find the name of the paper used,
measure a sheet and compare it with the table of supported paper sizes listed
for 'printoptions', using the paper that is closest in both width AND height.
Note: The dimensions of actual paper may vary slightly from the ones listed.
If there is no paper listed close enough, then you may want to try psresize
from PSUtils, discussed below.
- Two-sided printing (duplex). Normally a PostScript printer that does not
support two-sided printing will ignore any request to do it. However, some
printers may abort the job altogether. Try printing with duplex turned off.
Note: Duplex prints can be achieved manually using PS utils - see below.
- Collated printing. As with Duplex printing, most PostScript printers that
do not support collating printouts will ignore a request to do so. Some may
not. Try printing with collation turned off.
- Syntax highlighting. Some print management code may prevent the generated
PostScript file from being printed on a black and white printer when syntax
highlighting is turned on, even if solid black is the only color used. Try
printing with syntax highlighting turned off.
A safe printoptions setting to try is: >
:set printoptions=paper:A4,duplex:off,collate:n,syntax:n
Replace "A4" with the paper size that best matches your printer paper.
3.4 PostScript Utilities *postscript-print-util*
3.4.1 Ghostscript
Ghostscript is a PostScript and PDF interpreter that can be used to display
and print on non-PostScript printers PostScript and PDF files. It can also
generate PDF files from PostScript.
Ghostscript will run on a wide variety of platforms.
There are three available versions:
- AFPL Ghostscript (formerly Aladdin Ghostscript) which is free for
non-commercial use. It can be obtained from:
http://www.cs.wisc.edu/~ghost/
- GNU Ghostscript which is available under the GNU General Public License. It
can be obtained from:
ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/gnu/
- A commercial version for inclusion in commercial products.
Additional information on Ghostscript can also be found at:
http://www.ghostscript.com/
Support for a number of non PostScript printers is provided in the
distribution as standard, but if you cannot find support for your printer
check the Ghostscript site for other printers not included by default.
3.4.2 Ghostscript Previewers.
The interface to Ghostscript is very primitive so a number of graphical front
ends have been created. These allow easier PostScript file selection,
previewing at different zoom levels, and printing. Check supplied
documentation for full details.
X11
- Ghostview. Obtainable from:
http://www.cs.wisc.edu/~ghost/gv/
- gv. Derived from Ghostview. Obtainable from:
http://wwwthep.physik.uni-mainz.de/~plass/gv/
Copies (possibly not the most recent) can be found at:
http://www.cs.wisc.edu/~ghost/gv/
OpenVMS
- Is apparently supported in the main code now (untested). See:
http://wwwthep.physik.uni-mainz.de/~plass/gv/
Windows and OS/2
- GSview. Obtainable from:
http://www.cs.wisc.edu/~ghost/gsview/
DOS
- ps_view. Obtainable from:
ftp://ftp.pg.gda.pl/pub/TeX/support/ps_view/
ftp://ftp.dante.de/tex-archive/support/ps_view/
Linux
- GSview. Linux version of the popular Windows and OS/2 previewer.
Obtainable from:
http://www.cs.wisc.edu/~ghost/gsview/
- BMV. Different from Ghostview and gv in that it doesn't use X but svgalib.
Obtainable from:
ftp://sunsite.unc.edu/pub/Linux/apps/graphics/viewers/svga/bmv-1.2.tgz
3.4.3 PSUtils
PSUtils is a collection of utility programs for manipulating PostScript
documents. Binary distributions are available for many platforms, as well as
the full source. PSUtils can be found at:
http://knackered.org/angus/psutils
The utilities of interest include:
- psnup. Convert PS files for N-up printing.
- psselect. Select page range and order of printing.
- psresize. Change the page size.
- psbook. Reorder and lay out pages ready for making a book.
The output of one program can be used as the input to the next, allowing for
complex print document creation.
N-UP PRINTING
The psnup utility takes an existing PostScript file generated from VIM and
convert it to an n-up version. The simplest way to create a 2-up printout is
to first create a PostScript file with: >
:hardcopy > test.ps
Then on your command line execute: >
psnup -n 2 test.ps final.ps
Note: You may get warnings from some Ghostscript previewers for files produced
by psnup - these may safely be ignored.
Finally print the file final.ps to your PostScript printer with your
platform's print command. (You will need to delete the two PostScript files
afterwards yourself.) 'printexpr' could be modified to perform this extra
step before printing.
ALTERNATE DUPLEX PRINTING
It is possible to achieve a poor man's version of duplex printing using the PS
utility psselect. This utility has options -e and -o for printing just the
even or odd pages of a PS file respectively.
First generate a PS file with the 'hardcopy' command, then generate a new
files with all the odd and even numbered pages with: >
psselect -o test.ps odd.ps
psselect -e test.ps even.ps
Next print odd.ps with your platform's normal print command. Then take the
print output, turn it over and place it back in the paper feeder. Now print
even.ps with your platform's print command. All the even pages should now
appear on the back of the odd pages.
There a couple of points to bear in mind:
1. Position of the first page. If the first page is on top of the printout
when printing the odd pages then you need to reverse the order that the odd
pages are printed. This can be done with the -r option to psselect. This
will ensure page 2 is printed on the back of page 1.
Note: it is better to reverse the odd numbered pages rather than the even
numbered in case there are an odd number of pages in the original PS file.
2. Paper flipping. When turning over the paper with the odd pages printed on
them you may have to either flip them horizontally (along the long edge) or
vertically (along the short edge), as well as possibly rotating them 180
degrees. All this depends on the printer - it will be more obvious for
desktop ink jets than for small office laser printers where the paper path
is hidden from view.
3.5 Formfeed Characters *printing-formfeed*
By default VIM does not do any special processing of |formfeed| control
characters. Setting the 'printoptions' formfeed item will make VIM recognize
formfeed characters and continue printing the current line at the beginning
of the first line on a new page. The use of formfeed characters provides
rudimentary print control but there are certain things to be aware of.
VIM will always start printing a line (including a line number if enabled)
containing a formfeed character, even if it is the first character on the
line. This means if a line starting with a formfeed character is the first
line of a page then VIM will print a blank page.
Since the line number is printed at the start of printing the line containing
the formfeed character, the remainder of the line printed on the new page
will not have a line number printed for it (in the same way as the wrapped
lines of a long line when wrap in 'printoptions' is enabled).
If the formfeed character is the last character on a line, then printing will
continue on the second line of the new page, not the first. This is due to
VIM processing the end of the line after the formfeed character and moving
down a line to continue printing.
Due to the points made above it is recommended that when formfeed character
processing is enabled, printing of line numbers is disabled, and that form
feed characters are not the last character on a line. Even then you may need
to adjust the number of lines before a formfeed character to prevent
accidental blank pages.
==============================================================================
4. Using Vim like less or more *less*

View File

@@ -1,4 +1,4 @@
*version7.txt* For Vim version 7.0aa. Last change: 2004 Jun 07
*version7.txt* For Vim version 7.0aa. Last change: 2004 Oct 11
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -18,6 +18,7 @@ INCOMPATIBLE CHANGES |incompatible-7|
NEW FEATURES |new-7|
New data types |new-data-types|
KDE support |new-KDE|
Various new items |new-items-7|
IMPROVEMENTS |improvements-7|
@@ -32,6 +33,27 @@ INCOMPATIBLE CHANGES *incompatible-7*
These changes are incompatible with previous releases. Check this list if you
run into a problem when upgrading from Vim 6.x to 7.0
":helpgrep" now uses a help window to display a match.
Minor incompatibilities:
For filetype detection: For many types, instead of ~/.dir/filename use
*/.dir/filename, so that it also works for other user's files.
":0verbose" now sets 'verbose' to zero instead of one.
Removed the old and incomplete "VimBuddy" code.
Buffers without a name report "No Name" instead of "No File". It was
confusing for buffers with a name and 'buftype' set to "nofile".
When ":file xxx" is used in a buffer without a name, the alternate file name
isn't set. This avoids creating buffers without a name that are not useful.
The "2html.vim" script now converts closed folds to HTML. This means the HTML
looks like its displayed, with the same folds open and closed. Use "zR" if no
folds should appear in the HTML. (partly by Carl Osterwisch)
==============================================================================
NEW FEATURES *new-7*
@@ -47,38 +69,350 @@ In Vim scripts the following types have been added:
Many functions and commands have been added to support the new types.
NOT IMPLEMENTED YET!
KDE support *new-KDE*
-----------
Kvim is the KDE version of Vim. It uses the Qt toolkit. See |KVim|.
(Thomas Capricelli, Philippe Fremy, Mickael Marchand, Mark Westcott, et al.)
MzScheme interface *new-MzScheme*
------------------
The MzScheme interpreter is supported. |MzScheme|
The |:mzscheme| command can be used to execute MzScheme commands.
The |:mzfile| command can be used to execute an MzScheme script file.
Printing multi-byte text *new-print-multi-byte*
------------------
The |:hardcopy| command now supports printing multi-byte characters.
The 'printmbcharset' and 'printmbfont' options are used for this.
Also see |postscript-cjk-printing|. (Mike Williams)
Various new items *new-items-7*
-----------------
Normal mode commands: ~
a", a' and a` New text objects to select quoted strings. |a'|
i", i' and i' (Taro Muraoka)
Options: ~
'completefunc' The name of a function used for user-specified Insert
mode completion. CTRL-X CTRL-U can be used in Insert
mode to do any kind of completion. (Taro Muraoka)
'quoteescape' Characters used to escape quotes inside a string.
Used for the a", a' and a` text objects. |a'|
'numberwidth' Minimal width of the space used for the 'number'
option. (Emmanuel Renieris)
'mzquantum' Time in msec to schedule MzScheme threads.
'printmbcharset' CJK character set to be used for :hardcopy
'printmbfont' font names to be used for CJK output of :hardcopy
Ex commands: ~
Win32: The ":winpos" command now also works in the console. (Vipin Aravind)
|:startreplace| Start Replace mode. (Charles Campbell)
|:0file| Removes the name of the buffer. (Charles Campbell)
|:diffoff| Switch off diff mode in the current window or in all
windows.
|:keepalt| Do not change the alternate file.
|:delmarks| Delete marks.
|:sandbox| Command modifier: execute the argument in the sandbox.
New functions: ~
browsedir(title, init) |browsedir()| Dialog to select a directory.
byteidx(expr, nr) |byteidx()| Index of a character. (Ilya Sher)
finddir(name) |finddir()| Find a directory in 'path'.
findfile(name) |findfile()| Find a file in 'path'. (Johannes
Zellner)
foldtextresult(lnum) |foldtextresult()| The text displayed for a closed
fold at line "lnum".
getfperm(fname) |getfperm()| Get file permission string. (Nikolai
Weibull)
getftype(fname) |getftype()| Get type of file. (Nikolai Weibull)
repeat(expr, count) |repeat()| Repeat "expr" "count" times.
(Christophe Poucet)
tr(expr, from, to) |tr()| Translate characters. (Ron Aaron)
system(cmd, input) |system()| Filters {input} through a shell
command.
New autocommand events: ~
|InsertEnter| starting Insert or Replace mode
|InsertChange| going from Insert to Replace mode or back
|InsertLeave| leaving Insert or Replace mode
New Syntax files: ~
|ColorScheme| after loading a color scheme
New items in search patterns: ~
|/\%d| \%d123 search for character with decimal number
|/\]| [\d123] idem, in a colletion
|/\%o| \%o103 search for character with octal number
|/\]| [\o1o3] idem, in a colletion
|/\%x| \%x1a search for character with 2 pos. hex number
|/\]| [\x1a] idem, in a colletion
|/\%u| \%u12ab search for character with 4 pos. hex number
|/\]| [\u12ab] idem, in a colletion
|/\%U| \%U1234abcd search for character with 8 pos. hex number
|/\]| [\U1234abcd] idem, in a colletion
(The above partly by Ciaran McCreesh)
New Syntax/Indent/FTplugin files: ~
MuPAD source syntax, indent and ftplugin. (Dave Silvia)
ABAB/4 syntax file. (Marius van Wyk)
SQL-Informix syntax file. (Dean L Hill)
PHP compiler plugin. (Doug Kearns)
New message translations: ~
The Ukranian messages are now also available in cp1251.
Others: ~
Mac: Add the selection type to the clipboard, so that Block, line and
character selections can be used between two Vims. (Eckehard Berns)
Also fixes the problem that setting 'clipboard' to "unnamed" breaks using
"yyp".
Mac: GUI font selector. (Peter "Rain Dog" Cucka)
The netrw plugin now also supports viewing a directory, when "scp://" is used.
Deleting and renaming files is possible. (Charles Campbell)
==============================================================================
IMPROVEMENTS *improvements-7*
":helpgrep" accepts a language specifier after the pattern: "pat@it".
Move the help for printing to a separate help file. It's quite a lot now.
":breakadd here" and ":breakdel here" can be used to set or delete a
breakpoint at the cursor.
The tutor was updated to make it simpler to use and added text to explain a
few more important commands. Used ideas from Gabriel Zachmann.
Unix: When libcall() fails obtain an error message with dlerror() and display
it. (Johannes Zellner)
Added "nbsp" in 'listchars'. (David Blanchet)
Added the "acwrite" value for the 'buftype' option. This is for a buffer that
doesn not have a name that refers to a file and is written with BufWriteCmd
autocommands.
For lisp indenting and matching parenthesis: (Sergey Khorev)
- square brackets are recognized properly
- #\(, #\), #\[ and #\] are recognized as character literals
- Lisp line comments (delimited by semicolon) are recognized
Added the "count" argument to match(), matchend() and matchstr(). (Ilya Sher)
winnr() takes an optional "$" and "#" arguments. (Nikolai Weibull, Yegappan
Lakshmanan)
Added 'n' flag to search(): don't move the cursor. (Nikolai Weibull)
When uncompressing fails in the gzip plugin, give an error message but don't
delete the raw text. Helps if the file has a .gz extension but is not
actually compressed. (Andrew Pimlott)
When C, C++ or IDL syntax is used, may additionally load doxygen syntax.
Also support setting the filetype to "cdoxygen" for C plus doxygen syntax.
(Michael Geddes)
The ":registers" command now displays multi-byte characters properly.
VMS: In the usage message mention that a slash can be used to make a flag
upper case. Add color support to the builtin vt320 terminal codes.
(Zoltan Arpadffy)
For the '%' item in 'viminfo', allow a number to set a maximum for the number
of buffers.
When a file looks like a shell script, check for an "exec" command that starts
the tcl interpreter. (suggested by Alexios Zavras)
Support conversion between utf-8 and latin9 (iso-8859-15) internally, so that
digraphs still work when iconv is not available.
==============================================================================
COMPILE TIME CHANGES *compile-changes-7*
Mac: "make" now creates the Vim.app directory and "make install" copies it to
its final destination. (Raf)
Mac: Made it possible to compile with Motif, Athena or GTK without tricks and
still being able to use the MacRoman conversion. Added the os_mac_conv.c
file.
==============================================================================
BUG FIXES *bug-fixes-7*
When using PostScript printing on MS-DOS the default 'printexpr' used "lpr"
instead of "copy". When 'printdevice' was empty the copy command did not
work. Use "LPT1" then.
The GTK font dialog uses a font size zero when the font name doesn't include a
size. Use a default size of 10.
This example in the documentation didn't work:
:e `=foo . ".c" `
Skip over the expression in `=expr` when looking for comments, |, % and #.
When ":helpgrep" doesn't find anything there is no error message.
"L" and "H" did not take closed folds into account.
Win32: The "-P title" argument stopped at the first title that matched, even
when it doesn't support MDI.
Mac GUI: CTRL-^ and CTRL-@ did not work.
"2daw" on "word." at the end of a line didn't include the preceding white
space.
Win32: Using FindExecutable() doesn't work to find a program. Use
SearchPath() instead. For executable() use $PATHEXT when the program searched
for doesn't have an extension.
When 'virtualedit' is set, moving the cursor up after appending a character
may move it to a different column. Was caused by auto-formatting moving the
cursor and not putting it back where it was.
When indent was added automatically and then moving the cursor, the indent was
not deleted (like when pressing ESC). The "I" flag in 'cpoptions' can be used
to make it work the old way.
When opening a command-line window, 'textwidth' gets set to 78 by the Vim
filetype plugin. Reset 'textwidth' to 0 to avoid lines are broken.
After using cursor(line, col) moving up/down doesn't keep the same column.
Win32: Borland C before 5.5 requires using ".u." for LowPart and HighPart
fields. (Walter Briscoe)
On Sinix SYS_NMLN isn't always defined. Define it ourselves. (Cristiano De
Michele)
Printing with PostScript may keep the printer waiting for more. Append a
CTRL-D to the printer output. (Mike Williams)
When converting a string with a hex or octal number the leading '-' was
ignored. ":echo '-05' + 0" resulted in 5 instead of -5.
Using "@:" to repeat a command line didn't work when it contains control
characters.
When using file completion for a user command, it would not expand environment
variables like for a regular command with a file argument.
'cindent': When the argument of a #define looks like a C++ class the next line
is indented too much.
When 'comments' includes multi-byte characters inserting the middle part and
alignment may go wrong. 'cindent' also suffers from this for right-aligned
items.
The default for 'helplang' was "zh" for both "zh_cn" and "zh_tw". Now use
"cn" or "tw" as intended.
When 'bin' is set and 'eol' is not set then line2byte() added the line break
after the last line while it's not there.
Using foldlevel() in a WinEnter autocommand may not work. Noticed when
resizing the GUI shell upon startup.
Python: Using buffer.append(f.readlines()) didn't work. Allow appending a
string with a trailing newline. The newline is ignored.
When using the ":saveas f2" command for buffer "f1", the Buffers menu would
contain "f2" twice, one of them leading to "f1". Also trigger the BufFilePre
and BufFilePost events for the alternate buffer that gets the old name.
strridx() did not work well when the needle is empty. (Ciaran McCreesh)
GTK: Avoid a potential hang in gui_mch_wait_for_chars() when input arrives
just before it is invoked
VMS: Occasionally CR characters were inserted in the file. Expansion of
environment variables was not correct. (Zoltan Arpadffy)
UTF-8: When 'delcombine' is set "dw" only deleted the last combining character
from the first character of the word.
When using ":sball" in an autocommand only the filetype in one buffer was
detected. Reset did_filetype in enter_buffer().
When using ":argdo" and the window already was at the first argument index,
but not actually editing it, the current buffer would be used instead.
When ":next dir/*" includes many matches, adding the names to the argument
list may take an awful lot of time and can't be interrupted. Allow
interrupting this.
When editing a file that was already loaded in a buffer, modelines were not
used. Now window-local options in the modeline are set. Buffer-local options
and global options remain unmodified.
Win32: When 'encoding' is set to "utf-8" in the vimrc file, files from the
command line with non-ASCII characters are not used correctly. Recode the
file names when 'encoding' is set, using the Unicode command line.
Win32 console: When the default for 'encoding' ends up to be "latin1", the
default value of 'isprint' was wrong.
When an error message is given while waiting for a character (e.g., when an
xterm reports the number of colors), the hit-enter prompt overwrote the last
line. Don't reset msg_didout in normal_cmd() for K_IGNORE.
Mac GUI: Shift-Tab didn't work.
When defining tooltip text, don't translate terminal codes, since it's not
going to be used like a command.
GTK 2: Check the tooltip text for valid utf-8 characters to avoid getting a
GTK error. Invalid characters may appear when 'encoding' is changed.
GTK 2: Add a safety check for invalid utf-8 sequences, they can crash pango.
Win32: When 'encoding' is changed while starting up, use the Unicode command
line to convert the file arguments to 'encoding'. Both for the GUI and the
console version.
Win32 GUI: latin9 text (iso-8859-15) was not displayed correctly, because
there is no codepage for latin9. Do our own conversion from latin9 to UCS2.
When two versions of GTK+ 2 are installed it was possible to use the header
files from one and the library from the other. Use GTK_LIBDIR to put the
directory for the library early in the link flags.
With the GUI find/replace dialog a replace only worked if the pattern was
literal text. Now it works for any pattern.
vim:tw=78:ts=8:ft=help:norl:

View File

@@ -1,9 +1,7 @@
VIMTUTOR(1) VIMTUTOR(1)
VIMTUTOR(1) VIMTUTOR(1)
NAME
vimtutor - the Vim tutor
@@ -11,18 +9,17 @@ SYNOPSIS
vimtutor [language]
DESCRIPTION
Vimtutor starts the Vim tutor. It copies the tutor file
first, so that it can be modified without changing the
original file.
Vimtutor starts the Vim tutor. It copies the tutor file first, so that
it can be modified without changing the original file.
The Vimtutor is useful for people that want to learn their
first Vim commands.
The Vimtutor is useful for people that want to learn their first Vim
commands.
The optional [language] argument is the two-letter name of
a language, like "it" or "es". If the [language] argument
is missing, the language of the current locale will be
used. If a tutor in this language is available, it will
be used. Otherwise the English version will be used.
The optional [language] argument is the two-letter name of a language,
like "it" or "es". If the [language] argument is missing, the language
of the current locale will be used. If a tutor in this language is
available, it will be used. Otherwise the English version will be
used.
Vim is always started in Vi compatible mode.
@@ -31,36 +28,19 @@ FILES
The Vimtutor text file(s).
/usr/local/lib/vim/tutor/tutor.vim
The Vim script used to copy the Vimtutor
text file.
The Vim script used to copy the Vimtutor text file.
AUTHOR
The Vimtutor was originally written for Vi by Michael C.
Pierce and Robert K. Ware, Colorado School of Mines using
ideas supplied by Charles Smith, Colorado State Univer-
sity. E-mail: bware@mines.colorado.edu.
It was modified for Vim by Bram Moolenaar. For the names
of the translators see the tutor files.
The Vimtutor was originally written for Vi by Michael C. Pierce and
Robert K. Ware, Colorado School of Mines using ideas supplied by
Charles Smith, Colorado State University. E-mail: bware@mines.col-
orado.edu.
It was modified for Vim by Bram Moolenaar. For the names of the trans-
lators see the tutor files.
SEE ALSO
vim(1)
2001 April 2 1
2001 April 2 VIMTUTOR(1)

View File

@@ -1,7 +1,7 @@
" Vim support file to detect file types
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2004 Jun 10
" Last Change: 2004 Oct 02
" Listen very carefully, I will say this only once
if exists("did_load_filetypes")
@@ -63,6 +63,9 @@ endfun
" A-A-P recipe
au BufNewFile,BufRead *.aap setf aap
" ABAB/4
au BufNewFile,BufRead *.abap setf abap
" ABC music notation
au BufNewFile,BufRead *.abc setf abc
@@ -97,6 +100,9 @@ au BufNewFile,BufRead *.a65 setf a65
au BufNewFile,BufRead *.am
\ if expand("<afile>") !~? 'Makefile.am\>' | setf elf | endif
" ALSA configuration
au BufNewFile,BufRead ~/.asoundrc,/usr/share/alsa/alsa.conf,/etc/asound.conf setf alsaconf
" Arc Macro Language
au BufNewFile,BufRead *.aml setf aml
@@ -205,13 +211,20 @@ endfun
au BufNewFile,BufRead *.vbs,*.dsm,*.ctl setf vb
" Batch file for MSDOS.
au BufNewFile,BufRead *.bat,*.btm,*.sys setf dosbatch
au BufNewFile,BufRead *.bat,*.sys setf dosbatch
" *.cmd is close to a Batch file, but on OS/2 Rexx files also use *.cmd.
au BufNewFile,BufRead *.cmd
\ if getline(1) =~ '^/\*' | setf rexx | else | setf dosbatch | endif
" Batch file for 4DOS
au BufNewFile,BufRead *.btm setf btm
au BufNewFile,BufRead *.btm call <SID>FTbtm()
fun! <SID>FTbtm()
if exists("g:dosbatch_syntax_for_btm") && g:dosbatch_syntax_for_btm
setf dosbatch
else
setf btm
endif
endfun
" BC calculator
au BufNewFile,BufRead *.bc setf bc
@@ -865,6 +878,9 @@ au BufNewFile,BufRead *.mysql setf mysql
" M$ Resource files
au BufNewFile,BufRead *.rc setf rc
" MuPAD source
au BufRead,BufNewFile *.mu setf mupad
" Mush
au BufNewFile,BufRead *.mush setf mush
@@ -956,6 +972,7 @@ if has("fname_case")
else
au BufNewFile,BufRead *.pl call FTCheck_pl()
endif
au BufNewFile,BufRead *.plx setf perl
fun! FTCheck_pl()
if exists("g:filetype_pl")
@@ -1322,22 +1339,41 @@ fun! SetFileTypeSH(name)
unlet b:is_bash
endif
endif
setf sh
call SetFileTypeShell("sh")
endfun
" For shell-like file types, check for an "exec" command hidden in a comment,
" as used for Tcl.
fun! SetFileTypeShell(name)
let l = 2
while l < 20 && l < line("$") && getline(l) =~ '^\s*\(#\|$\)'
" Skip empty and comment lines.
let l = l + 1
endwhile
if l < line("$") && getline(l) =~ '\s*exec\s' && getline(l - 1) =~ '^\s*#.*\\$'
" Found an "exec" line after a comment with continuation
let n = substitute(getline(l),'\s*exec\s\+\([^ ]*/\)\=', '', '')
if n =~ '\<tclsh\|\<wish'
setf tcl
return
endif
endif
exe "setf " . a:name
endfun
" tcsh scripts
au BufNewFile,BufRead .tcshrc*,*.tcsh,tcsh.tcshrc,tcsh.login setf tcsh
au BufNewFile,BufRead .tcshrc*,*.tcsh,tcsh.tcshrc,tcsh.login call SetFileTypeShell("tcsh")
" csh scripts, but might also be tcsh scripts (on some systems csh is tcsh)
au BufNewFile,BufRead .login*,.cshrc*,csh.cshrc,csh.login,csh.logout,*.csh,.alias call SetFileTypeCSH()
fun! SetFileTypeCSH()
if exists("g:filetype_csh")
exe "setf " . g:filetype_csh
call SetFileTypeShell(g:filetype_csh)
elseif &shell =~ "tcsh"
setf tcsh
call SetFileTypeShell("tcsh")
else
setf csh
call SetFileTypeShell("csh")
endif
endfun
@@ -1415,8 +1451,19 @@ au BufNewFile,BufRead *.spy,*.spi setf spyce
" Squid
au BufNewFile,BufRead squid.conf setf squid
" SQL (all but the first one for Oracle Designer)
au BufNewFile,BufRead *.sql,*.tyb,*.typ,*.tyc,*.pkb,*.pks setf sql
" SQL for Oracle Designer
au BufNewFile,BufRead *.tyb,*.typ,*.tyc,*.pkb,*.pks setf sql
" SQL
au BufNewFile,BufRead *.sql call SetFileTypeSQL()
fun! SetFileTypeSQL()
if exists("g:filetype_sql")
exe "setf " . g:filetype_sql
else
setf sql
endif
endfun
" SQLJ
au BufNewFile,BufRead *.sqlj setf sqlj

View File

@@ -0,0 +1,125 @@
" Vim filetype plugin file utility
" Language: * (various)
" Maintainer: Dave Silvia <dsilvia@mchsi.com>
" Date: 6/30/2004
" The start of match (b:SOM) default is:
" '\<'
" The end of match (b:EOM) default is:
" '\>'
"
" If you want to use some other start/end of match, just assign the
" value to the b:SOM|EOM variable in your filetype script.
"
" SEE: :h pattern.txt
" :h pattern-searches
" :h regular-expression
" :h matchit
let s:myName=expand("<sfile>:t")
" matchit.vim not loaded -- don't do anyting
if !exists("loaded_matchit")
echomsg s:myName.": matchit.vim not loaded -- finishing without loading"
finish
endif
" already been here -- don't redefine
if exists("*AppendMatchGroup")
finish
endif
" Function To Build b:match_words
" The following function, 'AppendMatchGroup', helps to increase
" readability of your filetype script if you choose to use matchit.
" It also precludes many construction errors, reducing the
" construction to simply invoking the function with the match words.
" As an example, let's take the ubiquitous if/then/else/endif type
" of construct. This is how the entry in your filetype script would look.
"
" " source the AppendMatchGroup function file
" runtime ftplugin/AppendMatchGroup.vim
"
" " fill b:match_words
" call AppendMatchGroup('if,then,else,endif')
"
" And the b:match_words constructed would look like:
"
" \<if\>:\<then\>:\<else\>:\<endif\>
"
" Use of AppendMatchGroup makes your filetype script is a little
" less busy and a lot more readable. Additionally, it
" checks three critical things:
"
" 1) Do you have at least 2 entries in your match group.
"
" 2) Does the buffer variable 'b:match_words' exist? if not, create it.
"
" 3) If the buffer variable 'b:match_words' does exist, is the last
" character a ','? If not, add it before appending.
"
" You should now be able to match 'if/then/else/endif' in succession
" in your source file, in just about any construction you may have
" chosen for them.
"
" To add another group, simply call 'AppendMatchGroup again. E.G.:
"
" call AppendMatchGroup('while,do,endwhile')
function AppendMatchGroup(mwordList)
let List=a:mwordList
let Comma=match(List,',')
if Comma == -1 || Comma == strlen(List)-1
echoerr "Must supply a comma separated list of at least 2 entries."
echoerr "Supplied list: <".List.">"
return
endif
let listEntryBegin=0
let listEntryEnd=Comma
let listEntry=strpart(List,listEntryBegin,listEntryEnd-listEntryBegin)
let List=strpart(List,Comma+1)
let Comma=match(List,',')
" if listEntry is all spaces || List is empty || List is all spaces
if (match(listEntry,'\s\+') == 0 && match(listEntry,'\S\+') == -1)
\ || List == '' || (match(List,'\s\+') == 0 && match(List,'\S\+') == -1)
echoerr "Can't use all spaces for an entry <".listEntry.">"
echoerr "Remaining supplied list: <".List.">"
return
endif
if !exists("b:SOM")
let b:SOM='\<'
endif
if !exists("b:EOM")
let b:EOM='\>'
endif
if !exists("b:match_words")
let b:match_words=''
endif
if b:match_words != '' && match(b:match_words,',$') == -1
let b:match_words=b:match_words.','
endif
" okay, all set add first entry in this list
let b:match_words=b:match_words.b:SOM.listEntry.b:EOM.':'
while Comma != -1
let listEntryEnd=Comma
let listEntry=strpart(List,listEntryBegin,listEntryEnd-listEntryBegin)
let List=strpart(List,Comma+1)
let Comma=match(List,',')
" if listEntry is all spaces
if match(listEntry,'\s\+') == 0 && match(listEntry,'\S\+') == -1
echoerr "Can't use all spaces for an entry <".listEntry."> - skipping"
echoerr "Remaining supplied list: <".List.">"
continue
endif
let b:match_words=b:match_words.b:SOM.listEntry.b:EOM.':'
endwhile
let listEntry=List
let b:match_words=b:match_words.b:SOM.listEntry.b:EOM
endfunction
" TODO: Write a wrapper to handle multiple groups in one function call.
" Don't see a lot of utility in this as it would undoubtedly warrant
" continuation lines in the filetype script and it would be a toss
" up as to which is more readable: individual calls one to a line or
" a single call with continuation lines. I vote for the former.

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: Abaqus finite element input file (www.abaqus.com)
" Maintainer: Carl Osterwisch <osterwischc@asme.org>
" Last Change: 2004 May
" Last Change: 2004 Jul 06
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin") | finish | endif
@@ -27,6 +27,10 @@ setlocal include=\\<\\cINPUT\\s*=
" Remove characters up to the first = when evaluating filenames
setlocal includeexpr=substitute(v:fname,'.\\{-}=','','')
" Remove comma from valid filename characters since it is used to
" separate keyword parameters
setlocal isfname-=,
" Define format of comment lines (see 'formatoptions' for uses)
setlocal comments=:**
setlocal commentstring=**%s

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: aspvbs
" Maintainer: Dan Sharp <dwsharp at hotmail dot com>
" Last Changed: 2003 Sep 29
" Last Changed: 2004 Jun 28
" URL: http://mywebpage.netscape.com/sharppeople/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
@@ -35,15 +35,16 @@ endif
" thanks to Gontran BAERTS
if exists("loaded_matchit")
let s:notend = '\%(\<end\s\+\)\@<!'
let b:match_ignorecase = 1
let b:match_words =
\ s:notend . '\<If\>:^\s\+\<Else\>:\<ElseIf\>:\<end\s\+\<if\>,' .
\ s:notend . '\<Select\s\+\<Case\>:\<Case\>:\<Case\s\+\<Else\>:\<End\s\+\<Select\>,' .
\ '^\s*\<Sub\>:\<End\s\+\<Sub\>,' .
\ '^\s*\<Function\>:\<End\s\+\<Function\>,' .
\ '\<Class\>:\<End\s\+\<Class\>,' .
\ '^\s*\<Do\>:\<Loop\>,' .
\ '^\s*\<For\>:\<Next\>,' .
\ '\<While\>:\<Wend\>,' .
\ s:notend . '\<if\>\%(.\{-}then\s\+\w\)\@!:\<elseif\>:^\s*\<else\>:\<end\s\+\<if\>,' .
\ s:notend . '\<select\s\+case\>:\<case\>:\<case\s\+else\>:\<end\s\+select\>,' .
\ '^\s*\<sub\>:\<end\s\+sub\>,' .
\ '^\s*\<function\>:\<end\s\+function\>,' .
\ '\<class\>:\<end\s\+class\>,' .
\ '^\s*\<do\>:\<loop\>,' .
\ '^\s*\<for\>:\<next\>,' .
\ '\<while\>:\<wend\>,' .
\ s:match_words
endif
@@ -52,7 +53,7 @@ if has("gui_win32")
let b:browsefilter="ASP Files (*.asp)\t*.asp\n" . s:browsefilter
endif
let b:undo_ftplugin = "unlet! b:match_words b:browsefilter | " . s:undo_ftplugin
let b:undo_ftplugin = "unlet! b:match_words b:match_ignorecase b:browsefilter | " . s:undo_ftplugin
" Restore the saved compatibility options.
let &cpo = s:save_cpo

12
runtime/ftplugin/btm.vim Normal file
View File

@@ -0,0 +1,12 @@
" Vim filetype plugin file
" Language: BTM
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2004 Jul 06
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
finish
endif
" Behaves just like dosbatch
runtime! ftplugin/dosbatch.vim ftplugin/dosbatch_*.vim ftplugin/dosbatch/*.vim

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: C
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2004 May 16
" Last Change: 2004 Sep 01
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -37,7 +37,7 @@ if has("gui_win32") && !exists("b:browsefilter")
\ "C Header Files (*.h)\t*.h\n" .
\ "C Source Files (*.c)\t*.c\n" .
\ "All Files (*.*)\t*.*\n"
elseif &ft == "chscript"
elseif &ft == "ch"
let b:browsefilter = "Ch Source Files (*.ch *.chf)\t*.ch;*.chf\n" .
\ "C Header Files (*.h)\t*.h\n" .
\ "C Source Files (*.c)\t*.c\n" .

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: config
" Maintainer: Dan Sharp <dwsharp at hotmail dot com>
" Last Changed: 2003 Sep 29
" Last Changed: 2004 Jul 08
" URL: http://mywebpage.netscape.com/sharppeople/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
@@ -30,7 +30,7 @@ endif
" Change the :browse e filter to primarily show configure-related files.
if has("gui_win32")
let b:browsefilter="Configure Scripts (configure.*)\tconfigure.*\n" .
let b:browsefilter="Configure Scripts (configure.*, config.*)\tconfigure*;config.*\n" .
\ s:browsefilter
endif

View File

@@ -17,5 +17,5 @@ setlocal formatoptions-=t formatoptions+=rol
" Define patterns for the browse file filter
if has("gui_win32") && !exists("b:browsefilter")
let b:browsefilter = "DOS Batch Files (*.bat, *.cmd)\t*.bat;*.cmd\nAll Files (*.*)\t*.*\n"
let b:browsefilter = "DOS Batch Files (*.bat, *.btm, *.cmd)\t*.bat;*.btm;*.cmd\nAll Files (*.*)\t*.*\n"
endif

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: html
" Maintainer: Dan Sharp <dwsharp at hotmail dot com>
" Last Changed: 2004 May 11
" Last Changed: 2004 Jul 08
" URL: http://mywebpage.netscape.com/sharppeople/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
@@ -26,7 +26,7 @@ endif
" Change the :browse e filter to primarily show HTML-related files.
if has("gui_win32")
let b:browsefilter="HTML Files (*.html,*.htm)\t*.htm*\n" .
let b:browsefilter="HTML Files (*.html,*.htm)\t*.htm;*.html\n" .
\ "JavaScript Files (*.js)\t*.js\n" .
\ "Cascading StyleSheets (*.css)\t*.css\n" .
\ "All Files (*.*)\t*.*\n"

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: jsp
" Maintainer: Dan Sharp <dwsharp at hotmail dot com>
" Last Changed: 2003 Sep 29
" Last Changed: 2004 Jul 08
" URL: http://mywebpage.netscape.com/sharppeople/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
@@ -14,7 +14,7 @@ set cpo-=C
" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "Java Files (*.java)\t*.java\n" .
\ "HTML Files (*.html, *.htm)\t*.htm*\n" .
\ "HTML Files (*.html, *.htm)\t*.html;*.htm\n" .
\ "All Files (*.*)\t*.*\n"
let s:match_words = ""

View File

@@ -1,10 +1,10 @@
" Vim settings file
" Language: LambdaProlog (Teyjus)
" Maintainer: Markus Mottl <markus@oefai.at>
" URL: http://www.ai.univie.ac.at/~markus/vim/ftplugin/lprolog.vim
" Last Change: 2003 May 11
" 2001 Sep 16 - fixed 'no_mail_maps'-bug (MM)
" 2001 Sep 02 - initial release (MM)
" URL: http://www.oefai.at/~markus/vim/ftplugin/lprolog.vim
" Last Change: 2001 Oct 02 - fixed uncommenting bug (MM)
" 2001 Sep 16 - fixed 'no_mail_maps'-bug (MM)
" 2001 Sep 02 - initial release (MM)
" Only do these settings when not done yet for this buffer
if exists("b:did_ftplugin")

View File

@@ -0,0 +1,30 @@
" Vim filetype plugin file
" Language: MuPAD source files
" Maintainer: Dave Silvia <dsilvia@mchsi.com>
" Filenames: *.mu
" Date: 6/30/2004
if exists("b:did_ftplugin") | finish | endif
let b:did_ftplugin = 1
" Change the :browse e filter to primarily show MuPAD source files.
if has("gui_win32")
let b:browsefilter=
\ "MuPAD source (*.mu)\t*.mu\n" .
\ "All Files (*.*)\t*.*\n"
endif
" matchit.vim not loaded -- don't do anyting below
if !exists("loaded_matchit")
" echomsg "matchit.vim not loaded -- finishing"
finish
endif
" source the AppendMatchGroup function file
runtime ftplugin/AppendMatchGroup.vim
" fill b:match_words for MuPAD
call AppendMatchGroup('domain,end_domain')
call AppendMatchGroup('proc,begin,end_proc')
call AppendMatchGroup('if,then,elif,else,end_if')
call AppendMatchGroup('\%(for\|while\|repeat\|case\),of,do,break,next,until,\%(end_for\|end_while\|end_repeat\|end_case\)')

View File

@@ -1,12 +1,14 @@
" Vim settings file
" Language: OCaml
" Maintainers: Mike Leary <leary@nwlink.com>
" Markus Mottl <markus@oefai.at>
" URL: http://www.ai.univie.ac.at/~markus/vim/ftplugin/ocaml.vim
" Last Change: 2003 May 11
" 2001 Nov 01 - added local bindings for inserting
" type holes using 'assert false' (MM)
" 2001 Oct 02 - insert spaces in line comments (MM)
" Maintainers: Mike Leary <leary@nwlink.com>
" Markus Mottl <markus@oefai.at>
" Stefano Zacchiroli <zack@bononia.it>
" URL: http://www.oefai.at/~markus/vim/ftplugin/ocaml.vim
" Last Change: 2004 Apr 12 - better .ml/.mli-switching without Python (SZ)
" 2003 Nov 21 - match_words-patterns and .ml/.mli-switching (MM)
" 2003 Oct 16 - re-entered variable 'did_ocaml_dtypes' (MM)
" 2003 Oct 15 - added Stefano Zacchirolis (SZ) Python-code for
" displaying type annotations (MM)
" Only do these settings when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -47,3 +49,253 @@ if !exists("no_plugin_maps") && !exists("no_ocaml_maps")
iabbrev <buffer> ASS (assert false)
endif
endif
" Let % jump between structure elements (due to Issac Trotts)
let b:mw='\<let\>:\<and\>:\(\<in\>\|;;\),'
let b:mw=b:mw . '\<if\>:\<then\>:\<else\>,\<do\>:\<done\>,'
let b:mw=b:mw . '\<\(object\|sig\|struct\|begin\)\>:\<end\>'
let b:match_words=b:mw
" switching between interfaces (.mli) and implementations (.ml)
if !exists("g:did_ocaml_switch")
let g:did_ocaml_switch = 1
map ,s :call OCaml_switch(0)<CR>
map ,S :call OCaml_switch(1)<CR>
fun OCaml_switch(newwin)
if (match(bufname(""), "\\.mli$") >= 0)
let fname = substitute(bufname(""), "\\.mli$", ".ml", "")
if (a:newwin == 1)
exec "new " . fname
else
exec "arge " . fname
endif
elseif (match(bufname(""), "\\.ml$") >= 0)
let fname = bufname("") . "i"
if (a:newwin == 1)
exec "new " . fname
else
exec "arge " . fname
endif
endif
endfun
endif
" Vim support for OCaml 3.07 .annot files (requires Vim with python support)
"
" Executing OCamlPrintType(<mode>) function will display in the Vim bottom
" line(s) the type of an ocaml value getting it from the corresponding .annot
" file (if any). If Vim is in visual mode, <mode> should be "visual" and the
" selected ocaml value correspond to the highlighted text, otherwise (<mode>
" can be anything else) it corresponds to the literal found at the current
" cursor position.
"
" .annot files are parsed lazily the first time OCamlPrintType is invoked; is
" also possible to force the parsing using the OCamlParseAnnot() function.
"
" Hitting the <F3> key will cause OCamlPrintType function to be invoked with
" the right argument depending on the current mode (visual or not).
"
" Copyright (C) <2003> Stefano Zacchiroli <zack@bononia.it>
"
" Created: Wed, 01 Oct 2003 18:16:22 +0200 zack
" LastModified: Mon, 06 Oct 2003 11:05:39 +0200 zack
"
" This program is free software; you can redistribute it and/or modify
" it under the terms of the GNU General Public License as published by
" the Free Software Foundation; either version 2 of the License, or
" (at your option) any later version.
"
" This program is distributed in the hope that it will be useful,
" but WITHOUT ANY WARRANTY; without even the implied warranty of
" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
" GNU General Public License for more details.
"
" You should have received a copy of the GNU General Public License
" along with this program; if not, write to the Free Software
" Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"
if !has("python")
echo "Python support not found: OCaml .annot support disabled"
finish
endif
if !exists("g:did_ocaml_dtypes")
let g:did_ocaml_dtypes = 1
else
finish
endif
python << EOF
import re
import os
import string
import time
import vim
debug = False
class AnnExc(Exception):
def __init__(self, reason):
self.reason = reason
no_annotations = AnnExc("No type annotations (.annot) file found")
annotation_not_found = AnnExc("No type annotation found for the given text")
def malformed_annotations(lineno):
return AnnExc("Malformed .annot file (line = %d)" % lineno)
class Annotations:
"""
.annot ocaml file representation
File format (copied verbatim from caml-types.el)
file ::= block *
block ::= position <SP> position <LF> annotation *
position ::= filename <SP> num <SP> num <SP> num
annotation ::= keyword open-paren <LF> <SP> <SP> data <LF> close-paren
<SP> is a space character (ASCII 0x20)
<LF> is a line-feed character (ASCII 0x0A)
num is a sequence of decimal digits
filename is a string with the lexical conventions of O'Caml
open-paren is an open parenthesis (ASCII 0x28)
close-paren is a closed parenthesis (ASCII 0x29)
data is any sequence of characters where <LF> is always followed by
at least two space characters.
- in each block, the two positions are respectively the start and the
- end of the range described by the block.
- in a position, the filename is the name of the file, the first num
is the line number, the second num is the offset of the beginning
of the line, the third num is the offset of the position itself.
- the char number within the line is the difference between the third
and second nums.
For the moment, the only possible keyword is \"type\"."
"""
def __init__(self):
self.__filename = None # last .annot parsed file
self.__ml_filename = None # as above but s/.annot/.ml/
self.__timestamp = None # last parse action timestamp
self.__annot = {}
self.__re = re.compile(
'^"[^"]+"\s+(\d+)\s+(\d+)\s+(\d+)\s+"[^"]+"\s+(\d+)\s+(\d+)\s+(\d+)$')
def __parse(self, fname):
try:
f = open(fname)
line = f.readline() # position line
lineno = 1
while (line != ""):
m = self.__re.search(line)
if (not m):
raise malformed_annotations(lineno)
line1 = int(m.group(1))
col1 = int(m.group(3)) - int(m.group(2))
line2 = int(m.group(4))
col2 = int(m.group(6)) - int(m.group(5))
line = f.readline() # "type(" string
lineno += 1
if (line == ""): raise malformed_annotations(lineno)
type = []
line = f.readline() # type description
lineno += 1
if (line == ""): raise malformed_annotations(lineno)
while line != ")\n":
type.append(string.strip(line))
line = f.readline()
lineno += 1
if (line == ""): raise malformed_annotations(lineno)
type = string.join(type, "\n")
self.__annot[(line1, col1), (line2, col2)] = type
line = f.readline() # position line
f.close()
self.__filename = fname
self.__ml_filename = re.sub("\.annot$", ".ml", fname)
self.__timestamp = int(time.time())
except IOError:
raise no_annotations
def parse(self):
annot_file = re.sub("\.ml$", ".annot", vim.current.buffer.name)
self.__parse(annot_file)
def get_type(self, (line1, col1), (line2, col2)):
if debug:
print line1, col1, line2, col2
if vim.current.buffer.name == None:
raise no_annotations
if vim.current.buffer.name != self.__ml_filename or \
os.stat(self.__filename).st_mtime > self.__timestamp:
self.parse()
try:
return self.__annot[(line1, col1), (line2, col2)]
except KeyError:
raise annotation_not_found
word_char_RE = re.compile("^[\w.]$")
# TODO this function should recognize ocaml literals, actually it's just an
# hack that recognize continuous sequences of word_char_RE above
def findBoundaries(line, col):
""" given a cursor position (as returned by vim.current.window.cursor)
return two integers identify the beggining and end column of the word at
cursor position, if any. If no word is at the cursor position return the
column cursor position twice """
left, right = col, col
line = line - 1 # mismatch vim/python line indexes
(begin_col, end_col) = (0, len(vim.current.buffer[line]) - 1)
try:
while word_char_RE.search(vim.current.buffer[line][left - 1]):
left = left - 1
except IndexError:
pass
try:
while word_char_RE.search(vim.current.buffer[line][right + 1]):
right = right + 1
except IndexError:
pass
return (left, right)
annot = Annotations() # global annotation object
def printOCamlType(mode):
try:
if mode == "visual": # visual mode: lookup highlighted text
(line1, col1) = vim.current.buffer.mark("<")
(line2, col2) = vim.current.buffer.mark(">")
else: # any other mode: lookup word at cursor position
(line, col) = vim.current.window.cursor
(col1, col2) = findBoundaries(line, col)
(line1, line2) = (line, line)
begin_mark = (line1, col1)
end_mark = (line2, col2 + 1)
print annot.get_type(begin_mark, end_mark)
except AnnExc, exc:
print exc.reason
def parseOCamlAnnot():
try:
annot.parse()
except AnnExc, exc:
print exc.reason
EOF
fun OCamlPrintType(current_mode)
if (a:current_mode == "visual")
python printOCamlType("visual")
else
python printOCamlType("normal")
endif
endfun
fun OCamlParseAnnot()
python parseOCamlAnnot()
endfun
map <F3> :call OCamlPrintType("normal")<RETURN>
vmap <F3> :call OCamlPrintType("visual")<RETURN>

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: php
" Maintainer: Dan Sharp <dwsharp at hotmail dot com>
" Last Changed: 2003 Sep 29
" Last Changed: 2004 Jul 08
" URL: http://mywebpage.netscape.com/sharppeople/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
@@ -13,7 +13,7 @@ set cpo-=C
" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "HTML Files (*.html, *.htm)\t*.htm*\n" .
let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" .
\ "All Files (*.*)\t*.*\n"
let s:match_words = ""

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin
" Language: Vim
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2004 Feb 20
" Last Change: 2004 Sep 13
" Only do this when not done yet for this buffer
if exists("b:did_ftplugin")
@@ -33,10 +33,10 @@ endif
setlocal commentstring=\"%s
" Move around functions.
noremap <silent><buffer> [[ :call search('^\s*fu\%[nction]\>', "bW")<CR>
noremap <silent><buffer> ]] :call search('^\s*fu\%[nction]\>', "W")<CR>
noremap <silent><buffer> [] :call search('^\s*endf*\%[unction]\>', "bW")<CR>
noremap <silent><buffer> ][ :call search('^\s*endf*\%[unction]\>', "W")<CR>
noremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
noremap <silent><buffer> ]] m':call search('^\s*fu\%[nction]\>', "W")<CR>
noremap <silent><buffer> [] m':call search('^\s*endf*\%[unction]\>', "bW")<CR>
noremap <silent><buffer> ][ m':call search('^\s*endf*\%[unction]\>', "W")<CR>
" Move around comments
noremap <silent><buffer> ]" :call search('^\(\s*".*\n\)\@<!\(\s*"\)', "W")<CR>

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: xhtml
" Maintainer: Dan Sharp <dwsharp at hotmail dot com>
" Last Changed: 2004 May 11
" Last Changed: 2004 Jul 08
" URL: http://mywebpage.netscape.com/sharppeople/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
@@ -13,7 +13,7 @@ set cpo-=C
" Define some defaults in case the included ftplugins don't set them.
let s:undo_ftplugin = ""
let s:browsefilter = "HTML Files (*.html, *.htm)\t*.htm*\n" .
let s:browsefilter = "HTML Files (*.html, *.htm)\t*.html;*.htm\n" .
\ "XML Files (*.xml)\t*.xml\n" .
\ "All Files (*.*)\t*.*\n"
let s:match_words = ""
@@ -56,7 +56,7 @@ endif
" Change the :browse e filter to primarily show tcsh-related files.
if has("gui_win32")
let b:browsefilter=s:browsefilter
let b:browsefilter="XHTML files (*.xhtml, *.xhtm)\t*.xhtml;*.xhtm\n" . s:browsefilter
endif
" Undo the stuff we changed.

View File

@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: xslt
" Maintainer: Dan Sharp <dwsharp at hotmail dot com>
" Last Changed: 2002 Nov 26
" Last Changed: 2004 Jul 08
" URL: http://mywebpage.netscape.com/sharppeople/vim/ftplugin
if exists("b:did_ftplugin") | finish | endif
@@ -12,5 +12,5 @@ let b:did_ftplugin = 1
" Change the :browse e filter to primarily show xsd-related files.
if has("gui_win32") && exists("b:browsefilter")
let b:browsefilter="XSLT Files (*.xsl,*.xslt)\t*.xsl,*.xslt\n" . b:browsefilter
let b:browsefilter="XSLT Files (*.xsl,*.xslt)\t*.xsl;*.xslt\n" . b:browsefilter
endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 425 B

View File

@@ -0,0 +1,322 @@
" Vim indent file generic utility functions
" Language: * (various)
" Maintainer: Dave Silvia <dsilvia@mchsi.com>
" Date: 6/30/2004
" SUMMARY: To use GenericIndent, indent/<your_filename>.vim would have the
" following general format:
"
" if exists("b:did_indent") | finish | endif
" let b:did_indent = 1
" runtime indent/GenericIndent.vim
" let b:indentStmts=''
" let b:dedentStmts=''
" let b:allStmts=''
" setlocal indentexpr=GenericIndent()
" setlocal indentkeys=<your_keys>
" call GenericIndentStmts(<your_stmts>)
" call GenericDedentStmts(<your_stmts>)
" call GenericAllStmts()
"
" END SUMMARY:
" NOTE: b:indentStmts, b:dedentStmts, and b:allStmts need to be initialized
" to '' before callin the functions because 'indent.vim' explicitly
" 'unlet's b:did_indent. This means that the lists will compound if
" you change back and forth between buffers. This is true as of
" version 6.3, 6/23/2004.
"
" NOTE: By default, GenericIndent is case sensitive.
" let b:case_insensitive=1 if you want to ignore case, e.g. DOS batch files
" The function 'GenericIndent' is data driven and handles most all cases of
" indent checking if you first set up the data. To use this function follow
" the example below (taken from the file indent/MuPAD_source.vim)
"
" Before you start, source this file in indent/<your_script>.vim to have it
" define functions for your use.
"
"runtime indent/GenericIndent.vim
"
" The data is in 5 sets:
"
" First, set the data set 'indentexpr' to GenericIndent().
"
"setlocal indentexpr=GenericIndent()
"
" Second, set the data set 'indentkeys' to the keywords/expressions that need
" to be checked for 'indenting' _as_ they typed.
"
"setlocal indentkeys==end_proc,=else,=then,=elif,=end_if,=end_case,=until,=end_repeat,=end_domain,=end_for,=end_while,=end,o,O
"
" NOTE: 'o,O' at the end of the previous line says you wish to be called
" whenever a newline is placed in the buffer. This allows the previous line
" to be checked for indentation parameters.
"
" Third, set the data set 'b:indentStmts' to the keywords/expressions that, when
" they are on a line _when_ you _press_ the _<Enter>_ key,
" you wish to have the next line indented.
"
"call GenericIndentStmts('begin,if,then,else,elif,case,repeat,until,domain,do')
"
" Fourth, set the data set 'b:dedentStmts' to the keywords/expressions that, when
" they are on a line you are currently typing, you wish to have that line
" 'dedented' (having already been indented because of the previous line's
" indentation).
"
"call GenericDedentStmts('end_proc,then,else,elif,end_if,end_case,until,end_repeat,end_domain,end_for,end_while,end')
"
" Fifth, set the data set 'b:allStmts' to the concatenation of the third and
" fourth data sets, used for checking when more than one keyword/expression
" is on a line.
"
"call GenericAllStmts()
"
" NOTE: GenericIndentStmts uses two variables: 'b:indentStmtOpen' and
" 'b:indentStmtClose' which default to '\<' and '\>' respectively. You can
" set (let) these to any value you wish before calling GenericIndentStmts with
" your list. Similarly, GenericDedentStmts uses 'b:dedentStmtOpen' and
" 'b:dedentStmtClose'.
"
" NOTE: Patterns may be used in the lists passed to Generic[In|De]dentStmts
" since each element in the list is copied verbatim.
"
" Optionally, you can set the DEBUGGING flag within your script to have the
" debugging messages output. See below for description. This can also be set
" (let) from the command line within your editing buffer.
"
"let b:DEBUGGING=1
"
" See:
" :h runtime
" :set runtimepath ?
" to familiarize yourself with how this works and where you should have this
" file and your file(s) installed.
"
" For help with setting 'indentkeys' see:
" :h indentkeys
" Also, for some good examples see 'indent/sh.vim' and 'indent/vim.vim' as
" well as files for other languages you may be familiar with.
"
"
" Alternatively, if you'd rather specify yourself, you can enter
" 'b:indentStmts', 'b:dedentStmts', and 'b:allStmts' 'literally':
"
"let b:indentStmts='\<begin\>\|\<if\>\|\<then\>\|\<else\>\|\<elif\>\|\<case\>\|\<repeat\>\|\<until\>\|\<domain\>\|\<do\>'
"let b:dedentStmts='\<end_proc\>\|\<else\>\|\<elif\>\|\<end_if\>\|\<end_case\>\|\<until\>\|\<end_repeat\>\|\<end_domain\>\|\<end_for\>\|\<end_while\>\|\<end\>'
"let b:allStmts=b:indentStmts.'\|'.b:dedentStmts
"
" This is only useful if you have particularly different parameters for
" matching each statement.
" RECAP: From indent/MuPAD_source.vim
"
"if exists("b:did_indent") | finish | endif
"
"let b:did_indent = 1
"
"runtime indent/GenericIndent.vim
"
"setlocal indentexpr=GenericIndent()
"setlocal indentkeys==end_proc,=then,=else,=elif,=end_if,=end_case,=until,=end_repeat,=end_domain,=end_for,=end_while,=end,o,O
"call GenericIndentStmts('begin,if,then,else,elif,case,repeat,until,domain,do')
"call GenericDedentStmts('end_proc,then,else,elif,end_if,end_case,until,end_repeat,end_domain,end_for,end_while,end')
"call GenericAllStmts()
"
" END RECAP:
let s:hit=0
let s:lastVlnum=0
let s:myScriptName=expand("<sfile>:t")
if exists("*GenericIndent")
finish
endif
function GenericAllStmts()
let b:allStmts=b:indentStmts.'\|'.b:dedentStmts
call DebugGenericIndent(expand("<sfile>").": "."b:indentStmts: ".b:indentStmts.", b:dedentStmts: ".b:dedentStmts.", b:allStmts: ".b:allStmts)
endfunction
function GenericIndentStmts(stmts)
let Stmts=a:stmts
let Comma=match(Stmts,',')
if Comma == -1 || Comma == strlen(Stmts)-1
echoerr "Must supply a comma separated list of at least 2 entries."
echoerr "Supplied list: <".Stmts.">"
return
endif
if !exists("b:indentStmtOpen")
let b:indentStmtOpen='\<'
endif
if !exists("b:indentStmtClose")
let b:indentStmtClose='\>'
endif
if !exists("b:indentStmts")
let b:indentStmts=''
endif
if b:indentStmts != ''
let b:indentStmts=b:indentStmts.'\|'
endif
call DebugGenericIndent(expand("<sfile>").": "."b:indentStmtOpen: ".b:indentStmtOpen.", b:indentStmtClose: ".b:indentStmtClose.", b:indentStmts: ".b:indentStmts.", Stmts: ".Stmts)
let stmtEntryBegin=0
let stmtEntryEnd=Comma
let stmtEntry=strpart(Stmts,stmtEntryBegin,stmtEntryEnd-stmtEntryBegin)
let Stmts=strpart(Stmts,Comma+1)
let Comma=match(Stmts,',')
let b:indentStmts=b:indentStmts.b:indentStmtOpen.stmtEntry.b:indentStmtClose
while Comma != -1
let stmtEntryEnd=Comma
let stmtEntry=strpart(Stmts,stmtEntryBegin,stmtEntryEnd-stmtEntryBegin)
let Stmts=strpart(Stmts,Comma+1)
let Comma=match(Stmts,',')
let b:indentStmts=b:indentStmts.'\|'.b:indentStmtOpen.stmtEntry.b:indentStmtClose
endwhile
let stmtEntry=Stmts
let b:indentStmts=b:indentStmts.'\|'.b:indentStmtOpen.stmtEntry.b:indentStmtClose
endfunction
function GenericDedentStmts(stmts)
let Stmts=a:stmts
let Comma=match(Stmts,',')
if Comma == -1 || Comma == strlen(Stmts)-1
echoerr "Must supply a comma separated list of at least 2 entries."
echoerr "Supplied list: <".Stmts.">"
return
endif
if !exists("b:dedentStmtOpen")
let b:dedentStmtOpen='\<'
endif
if !exists("b:dedentStmtClose")
let b:dedentStmtClose='\>'
endif
if !exists("b:dedentStmts")
let b:dedentStmts=''
endif
if b:dedentStmts != ''
let b:dedentStmts=b:dedentStmts.'\|'
endif
call DebugGenericIndent(expand("<sfile>").": "."b:dedentStmtOpen: ".b:dedentStmtOpen.", b:dedentStmtClose: ".b:dedentStmtClose.", b:dedentStmts: ".b:dedentStmts.", Stmts: ".Stmts)
let stmtEntryBegin=0
let stmtEntryEnd=Comma
let stmtEntry=strpart(Stmts,stmtEntryBegin,stmtEntryEnd-stmtEntryBegin)
let Stmts=strpart(Stmts,Comma+1)
let Comma=match(Stmts,',')
let b:dedentStmts=b:dedentStmts.b:dedentStmtOpen.stmtEntry.b:dedentStmtClose
while Comma != -1
let stmtEntryEnd=Comma
let stmtEntry=strpart(Stmts,stmtEntryBegin,stmtEntryEnd-stmtEntryBegin)
let Stmts=strpart(Stmts,Comma+1)
let Comma=match(Stmts,',')
let b:dedentStmts=b:dedentStmts.'\|'.b:dedentStmtOpen.stmtEntry.b:dedentStmtClose
endwhile
let stmtEntry=Stmts
let b:dedentStmts=b:dedentStmts.'\|'.b:dedentStmtOpen.stmtEntry.b:dedentStmtClose
endfunction
" Debugging function. Displays messages in the command area which can be
" reviewed using ':messages'. To turn it on use ':let b:DEBUGGING=1'. Once
" on, turn off by using ':let b:DEBUGGING=0. If you don't want it at all and
" feel it's slowing down your editing (you must have an _awfully_ slow
" machine!;-> ), you can just comment out the calls to it from 'GenericIndent'
" below. No need to remove the function or the calls, tho', as you never can
" tell when they might come in handy!;-)
function DebugGenericIndent(msg)
if exists("b:DEBUGGING") && b:DEBUGGING
echomsg '['.s:hit.']'.s:myScriptName."::".a:msg
endif
endfunction
function GenericIndent()
" save ignore case option. Have to set noignorecase for the match
" functions to do their job the way we want them to!
" NOTE: if you add a return to this function be sure you do
" if IgnoreCase | set ignorecase | endif
" before returning. You can just cut and paste from here.
let IgnoreCase=&ignorecase
" let b:case_insensitive=1 if you want to ignore case, e.g. DOS batch files
if !exists("b:case_insensitive")
set noignorecase
endif
" this is used to let DebugGenericIndent display which invocation of the
" function goes with which messages.
let s:hit=s:hit+1
let lnum=v:lnum
let cline=getline(lnum)
let lnum=prevnonblank(lnum)
if lnum==0 | if IgnoreCase | set ignorecase | endif | return 0 | endif
let pline=getline(lnum)
let ndnt=indent(lnum)
if !exists("b:allStmts")
call GenericAllStmts()
endif
call DebugGenericIndent(expand("<sfile>").": "."cline=<".cline.">, pline=<".pline.">, lnum=".lnum.", v:lnum=".v:lnum.", ndnt=".ndnt)
if lnum==v:lnum
" current line, only check dedent
"
" just dedented this line, don't need to do it again.
" another dedentStmts was added or an end%[_*] was completed.
if s:lastVlnum==v:lnum
if IgnoreCase | set ignorecase | endif
return ndnt
endif
let s:lastVlnum=v:lnum
call DebugGenericIndent(expand("<sfile>").": "."Checking dedent")
let srcStr=cline
let dedentKeyBegin=match(srcStr,b:dedentStmts)
if dedentKeyBegin != -1
let dedentKeyEnd=matchend(srcStr,b:dedentStmts)
let dedentKeyStr=strpart(srcStr,dedentKeyBegin,dedentKeyEnd-dedentKeyBegin)
"only dedent if it's the beginning of the line
if match(srcStr,'^\s*\<'.dedentKeyStr.'\>') != -1
call DebugGenericIndent(expand("<sfile>").": "."It's the beginning of the line, dedent")
let ndnt=ndnt-&shiftwidth
endif
endif
call DebugGenericIndent(expand("<sfile>").": "."dedent - returning ndnt=".ndnt)
else
" previous line, only check indent
call DebugGenericIndent(expand("<sfile>").": "."Checking indent")
let srcStr=pline
let indentKeyBegin=match(srcStr,b:indentStmts)
if indentKeyBegin != -1
" only indent if it's the last indentStmts in the line
let allKeyBegin=match(srcStr,b:allStmts)
let allKeyEnd=matchend(srcStr,b:allStmts)
let allKeyStr=strpart(srcStr,allKeyBegin,allKeyEnd-allKeyBegin)
let srcStr=strpart(srcStr,allKeyEnd)
let allKeyBegin=match(srcStr,b:allStmts)
if allKeyBegin != -1
" not the end of the line, check what is and only indent if
" it's an indentStmts
call DebugGenericIndent(expand("<sfile>").": "."Multiple words in line, checking if last is indent")
while allKeyBegin != -1
let allKeyEnd=matchend(srcStr,b:allStmts)
let allKeyStr=strpart(srcStr,allKeyBegin,allKeyEnd-allKeyBegin)
let srcStr=strpart(srcStr,allKeyEnd)
let allKeyBegin=match(srcStr,b:allStmts)
endwhile
if match(b:indentStmts,allKeyStr) != -1
call DebugGenericIndent(expand("<sfile>").": "."Last word in line is indent")
let ndnt=ndnt+&shiftwidth
endif
else
" it's the last indentStmts in the line, go ahead and indent
let ndnt=ndnt+&shiftwidth
endif
endif
call DebugGenericIndent(expand("<sfile>").": "."indent - returning ndnt=".ndnt)
endif
if IgnoreCase | set ignorecase | endif
return ndnt
endfunction
" TODO: I'm open!
"
" BUGS: You tell me! Probably. I just haven't found one yet or haven't been
" told about one.
"

View File

@@ -1,9 +1,11 @@
" Vim indent file
" Language: Eiffel
" Maintainer: David Clarke <gadicath@dishevelled.net>
" Maintainer: Jocelyn Fiat <eiffel@djoce.net>
" Previous-Maintainer: David Clarke <gadicath@dishevelled.net>
" $Date$
" $Revision$
" URL: http://gadicath.webhop.net/other/eiffel.vim
" URL: http://www.djoce.net/page/vim/
" Last Change: 2004 Sep 14
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -20,8 +22,6 @@ setlocal comments=:--
setlocal indentkeys+==end,=else,=ensure,=require,=check,=loop,=until
setlocal indentkeys+==creation,=feature,=inherit,=class,=is,=redefine,=rename,=variant
setlocal indentkeys+==invariant,=do,=local,=export
setlocal sw=3
setlocal tw=78
" Define some stuff
" keywords grouped by indenting
@@ -96,7 +96,7 @@ function GetEiffelIndent()
" set indent of zero end statements that are at an indent of 3, this should
" only ever be the class's end.
if getline(v:lnum) =~ '^\s*end\>' && ind == 3
if getline(v:lnum) =~ '^\s*end\>' && ind == &sw
let ind = 0
endif

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Java
" Maintainer: Toby Allsopp <toby.allsopp@peace.com>
" Last Change: 2003 Oct 21
" Maintainer: Toby Allsopp <toby.allsopp@peace.com> (resigned)
" Last Change: 2004 Oct 05
" Only load this indent file when no other was loaded.
if exists("b:did_indent")

View File

@@ -1,11 +1,13 @@
" Vim indent file
" Language: Lua script
" Maintainer: Marcus Aurelius Farias <marcuscf@vant.com.br>
" First Author: Max Ischenko <mfi@ukr.net>
" Last Change: 2003 Jan 20
" Maintainer: Marcus Aurelius Farias <marcus.cf 'at' bol.com.br>
" First Author: Max Ischenko <mfi 'at' ukr.net>
" Last Change: 2004 Aug 29
" Only define the function once.
if exists("*GetLuaIndent") | finish | endif
if exists("*GetLuaIndent")
finish
endif
setlocal indentexpr=GetLuaIndent()
@@ -28,21 +30,22 @@ function! GetLuaIndent()
" function, if, for, while, repeat, else, elseif, '{'
let ind = indent(lnum)
let flag = 0
if getline(lnum) =~ '^\s*\(function\>\|if\>\|for\>\|while\>\|repeat\>\|else\>\|elseif\>\|do\>\)' || getline(lnum) =~ '{\s*$' || getline(lnum) =~ '\s*=\s*function'
let ind = ind + &sw
let prevline = getline(lnum)
if prevline =~ '^\s*\%(if\>\|for\>\|while\>\|repeat\>\|else\>\|elseif\>\|do\>\)' || prevline =~ '{\s*$' || prevline =~ '\<function\>\s*\%(\k\|[.:]\)\{-}\s*('
let ind = ind + &shiftwidth
let flag = 1
endif
" Subtract a 'shiftwidth' after lines ending with
" 'end' when they begin with while, if, for, etc.
if flag == 1 && getline(lnum) =~ '\<end\>\|\<until\>'
let ind = ind - &sw
if flag == 1 && prevline =~ '\<end\>\|\<until\>'
let ind = ind - &shiftwidth
endif
" Subtract a 'shiftwidth' on end, else (and elseif), until and '}'
" This is the part that requires 'indentkeys'.
if getline(v:lnum) =~ '^\s*\(end\|else\|until\|}\)'
let ind = ind - &sw
if getline(v:lnum) =~ '^\s*\%(end\|else\|until\|}\)'
let ind = ind - &shiftwidth
endif
return ind

35
runtime/indent/mupad.vim Normal file
View File

@@ -0,0 +1,35 @@
" Vim indent file
" Language: MuPAD source files
" Maintainer: Dave Silvia <dsilvia@mchsi.com>
" Filenames: *.mu
" Date: 6/30/2004
if exists("b:did_indent")
finish
endif
let b:did_indent = 1
runtime indent/GenericIndent.vim
let b:indentStmts=''
let b:dedentStmts=''
let b:allStmts=''
" NOTE: b:indentStmts, b:dedentStmts, and b:allStmts need to be initialized
" to '' before callin the functions because 'indent.vim' explicitly
" 'unlet's b:did_indent. This means that the lists will compound if
" you change back and forth between buffers. This is true as of
" version 6.3, 6/23/2004.
setlocal indentexpr=GenericIndent()
setlocal indentkeys==end_proc,=then,=else,=elif,=end_if,=end_case,=until,=end_repeat,=end_domain,=end_for,=end_while,=end,o,O
call GenericIndentStmts('begin,if,then,else,elif,case,repeat,until,domain,do')
call GenericDedentStmts('end_proc,then,else,elif,end_if,end_case,until,end_repeat,end_domain,end_for,end_while,end')
call GenericAllStmts()
" TODO: More comprehensive indentstmt, dedentstmt, and indentkeys values.
"
" BUGS: You tell me! Probably. I just haven't found one yet or haven't been
" told about one.
"

View File

@@ -1,12 +1,12 @@
" Vim indent file
" Language: OCaml
" Maintainers: Jean-Francois Yuen <jfyuen@ifrance.com>
" Mike Leary <leary@nwlink.com>
" Markus Mottl <markus@oefai.at>
" URL: http://www.oefai.at/~markus/vim/indent/ocaml.vim
" Last Change: 2003 Apr 14
" 2003 Mar 05 - Added '{<' and some fixes (JY)
" 2002 Nov 06 - Some fixes (JY)
" Language: OCaml
" Maintainers: Jean-Francois Yuen <jfyuen@happycoders.org>
" Mike Leary <leary@nwlink.com>
" Markus Mottl <markus@oefai.at>
" URL: http://www.oefai.at/~markus/vim/indent/ocaml.vim
" Last Change: 2004 Apr 11 - Added indent for 'class' (JY)
" 2003 Sep 16 - Added 'private' as keyword (JY)
" 2003 Mar 29 - Fixed bug with 'if' and 'else' (JY)
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -16,7 +16,7 @@ let b:did_indent = 1
setlocal expandtab
setlocal indentexpr=GetOCamlIndent()
setlocal indentkeys+=0=and,0=constraint,0=done,0=else,0=end,0=exception,0=external,0=if,0=in,0=include,0=inherit,0=initializer,0=let,0=method,0=open,0=then,0=type,0=val,0=with,0=;;,0=>\],0=\|\],0=\|,0=*),0=>},0},0\],0)
setlocal indentkeys+=0=and,0=class,0=constraint,0=done,0=else,0=end,0=exception,0=external,0=if,0=in,0=include,0=inherit,0=initializer,0=let,0=method,0=open,0=then,0=type,0=val,0=with,0;;,0>\],0\|\],0>},0\|,0},0\],0)
setlocal nolisp
setlocal nosmartindent
setlocal textwidth=80
@@ -33,14 +33,13 @@ if exists("*GetOCamlIndent")
endif
" Define some patterns:
let s:beflet = '^\s*\(initializer\|method\|try\)\|\(\<\(begin\|do\|else\|in\|then\|try\)\|->\|;\|(\)\s*$'
let s:beflet = '^\s*\(initializer\|method\|try\)\|\(\<\(begin\|do\|else\|in\|then\|try\)\|->\|<-\|=\|;\|(\)\s*$'
let s:letpat = '^\s*\(let\|type\|module\|class\|open\|exception\|val\|include\|external\)\>'
let s:letlim = '\(\<\(sig\|struct\)\|;;\)\s*$'
let s:lim = '^\s*\(exception\|external\|include\|let\|module\|open\|type\|val\)\>'
let s:module = '\<\%(begin\|sig\|struct\|object\)\>'
let s:obj = '^\s*\(constraint\|inherit\|initializer\|method\|val\)\>\|\<\(object\|object\s*(.*)\)\s*$'
let s:type = '^\s*\%(let\|type\)\>.*='
let s:val = '^\s*\(val\|external\)\>.*:'
let s:type = '^\s*\%(class\|let\|type\)\>.*='
" Skipping pattern, for comments
function s:SkipPattern(lnum, pat)
@@ -75,7 +74,7 @@ endfunction
" Indent 'let'
function s:FindLet(pstart, pmid, pend)
call search(a:pend, 'bW')
return indent(searchpair(a:pstart, a:pmid, a:pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") =~ "^\\s*let\\>.*=.*\\<in\\s*$" || getline(prevnonblank(".") - 1) =~ "^\\s*let\\>.*=\\s*$\\|" . s:beflet'))
return indent(searchpair(a:pstart, a:pmid, a:pend, 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") =~ "^\\s*let\\>.*=.*\\<in\\s*$" || getline(prevnonblank(".") - 1) =~ s:beflet'))
endfunction
function GetOCamlIndent()
@@ -97,8 +96,7 @@ function GetOCamlIndent()
let line = getline(v:lnum)
" Indent if current line begins with 'end'
" for 'sig', 'struct', 'object' and 'begin':
" Indent if current line begins with 'end':
if line =~ '^\s*end\>'
return s:FindPair(s:module, '','\<end\>')
@@ -118,27 +116,25 @@ function GetOCamlIndent()
elseif line =~ '^\s*)'
return s:FindPair('(', '',')')
" Indent if current line begins with 'let'
" and last line does not begin with 'let' or end with 'in' or ';;':
" Indent if current line begins with 'let':
elseif line =~ '^\s*let\>'
if lline !~ s:lim . '\|' . s:letlim . '\|' . s:beflet
return s:FindLet(s:type, '','\<let\s*$')
else return ind
endif
" Indent if current line begins with 'type'
" and last line does not end with 'and' or ';;':
elseif line =~ '^\s*type\>'
" Indent if current line begins with 'class' or 'type':
elseif line =~ '^\s*\(class\|type\)\>'
if lline !~ s:lim . '\|\<and\s*$\|' . s:letlim
return s:FindLet(s:type, '','\<type\s*$')
return s:FindLet(s:type, '','\<\(class\|type\)\s*$')
else return ind
endif
" Indent for pattern matching:
elseif line =~ '^\s*|'
if lline !~ '^\s*\(|\|\(match\|with\|type\)\>\)\|\<\(function\|parser\|with\)\s*$'
if lline !~ '^\s*\(|[^\]]\|\(match\|type\|with\)\>\)\|\<\(function\|parser\|private\|with\)\s*$'
call search('|', 'bW')
return indent(searchpair('^\s*\(type\|match\)\>\|\<\(with\|function\|parser\)\s*$', '', '|', 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") =~ "\\[|\\||\\]" && getline(".") !~ "^\\s*|.*->"'))
return indent(searchpair('^\s*\(match\|type\)\>\|\<\(function\|parser\|private\|with\)\s*$', '', '^\s*|', 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string\\|comment" || getline(".") !~ "^\\s*|.*->"'))
else return ind
endif
@@ -149,41 +145,35 @@ function GetOCamlIndent()
else return ind
endif
" Indent if current line begins with 'in' and previous
" line does not start with 'let' or 'and':
" Indent if current line begins with 'in':
elseif line =~ '^\s*in\>'
if lline !~ '^\s*\(let\|and\)\>'
return s:FindPair('\<let\>', '', '\<in\>')
else return ind
endif
" Indent if current line begins with 'else'
" and previous line does not start with 'if', 'then' or 'else':
" Indent if current line begins with 'else':
elseif line =~ '^\s*else\>'
if lline !~ '^\s*\(if\|else\|then\)\>'
if lline !~ '^\s*\(if\|then\)\>'
return s:FindPair('\<if\>', '', '\<else\>')
else return ind
endif
" Indent if current line begins with 'then'
" and previous line does not start with 'if', 'then' or 'else':
" Indent if current line begins with 'then':
elseif line =~ '^\s*then\>'
if lline !~ '^\s*\(if\|else\|then\)\>'
if lline !~ '^\s*\(if\|else\)\>'
return s:FindPair('\<if\>', '', '\<then\>')
else return ind
endif
" Subtract a 'shiftwidth' if current line begins with 'and' and previous
" line does not start with 'let', 'and' or 'type' or end with 'end'
" (for classes):
" Indent if current line begins with 'and':
elseif line =~ '^\s*and\>'
if lline !~ '^\s*\(and\|let\|type\)\>\|\<end\s*$'
return ind - &sw
else return ind
endif
" Indent if current line begins with 'with'
" and previous line does not start with 'match' or 'try':
" Indent if current line begins with 'with':
elseif line =~ '^\s*with\>'
if lline !~ '^\s*\(match\|try\)\>'
return s:FindPair('\<\%(match\|try\)\>', '','\<with\>')
@@ -193,35 +183,35 @@ function GetOCamlIndent()
" Indent if current line begins with 'exception':
elseif line =~ '^\s*exception\>'
if lline !~ s:lim . '\|' . s:letlim
return indent(search(s:val . '\|^\s*\(external\|include\|open\|type\)\>', 'bW'))
return indent(search('^\s*\(\(external\|include\|open\|type\)\>\|val\>.*:\)', 'bW'))
else return ind
endif
" Indent if current line begins with 'external':
elseif line =~ '^\s*external\>'
if lline !~ s:lim . '\|' . s:letlim
return indent(search(s:val . '\|^\s*\(exception\|include\|open\|type\)\>', 'bW'))
return indent(search('^\s*\(\(exception\|external\|include\|open\|type\)\>\|val\>.*:\)', 'bW'))
else return ind
endif
" Indent if current line begins with 'include':
elseif line =~ '^\s*include\>'
if lline !~ s:lim . '\|' . s:letlim
return indent(search(s:val . '\|^\s*\(exception\|external\|open\|type\)\>', 'bW'))
return indent(search('^\s*\(\(exception\|external\|open\|type\)\>\|val\>.*:\)', 'bW'))
else return ind
endif
" Indent if current line begins with 'open':
elseif line =~ '^\s*open\>'
if lline !~ s:lim . '\|' . s:letlim
return indent(search(s:val . '\|^\s*\(exception\|external\|include\|type\)\>', 'bW'))
return indent(search('^\s*\(\(exception\|external\|include\|type\)\>\|val\>.*:\)', 'bW'))
else return ind
endif
" Indent if current line begins with 'val':
elseif line =~ '^\s*val\>'
if lline !~ '^\s*\(exception\|external\|include\|open\)\>\|' . s:obj . '\|' . s:letlim
return indent(search(s:val . '\|^\s*\(exception\|include\|initializer\|method\|open\|type\)\>', 'bW'))
return indent(search('^\s*\(\(exception\|include\|initializer\|method\|open\|type\|val\)\>\|external\>.*:\)', 'bW'))
else return ind
endif
@@ -253,15 +243,10 @@ function GetOCamlIndent()
else return ind
endif
" Indent back to normal after comments:
elseif line =~ '^\s*\*)'
call search('\*)', 'bW')
return indent(searchpair('(\*', '', '\*)', 'bWn', 'synIDattr(synID(line("."), col("."), 0), "name") =~? "string"'))
endif
" Add a 'shiftwidth' after lines ending with:
if lline =~ '\(:\|=\|->\|<-\|(\|\[\|{\|{<\|\[|\|\[<\|\<\(begin\|struct\|sig\|functor\|initializer\|object\|try\|do\|if\|then\|else\|fun\|function\|parser\)\|\<object\s*(.*)\)\s*$'
if lline =~ '\(:\|=\|->\|<-\|(\|\[\|{\|{<\|\[|\|\[<\|\<\(begin\|do\|else\|fun\|function\|functor\|if\|initializer\|object\|parser\|private\|sig\|struct\|then\|try\)\|\<object\s*(.*)\)\s*$'
let ind = ind + &sw
" Back to normal indent after lines ending with ';;':

View File

@@ -2,7 +2,7 @@
" Language: Python
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Original Author: David Bustos <bustos@caltech.edu>
" Last Change: 2004 Jun 15
" Last Change: 2004 Jul 25
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -99,15 +99,36 @@ function GetPythonIndent(lnum)
" Use syntax highlighting attributes when possible.
let pline = getline(plnum)
let pline_len = strlen(pline)
let col = 0
while col < pline_len
if pline[col] == '#' && (!has('syntax_items')
\ || synIDattr(synID(plnum, col + 1, 1), "name") =~ "Comment$")
let pline = strpart(pline, 0, col)
break
if has('syntax_items')
" If the last character in the line is a comment, do a binary search for
" the start of the comment. synID() is slow, a linear search would take
" too long on a long line.
if synIDattr(synID(plnum, pline_len, 1), "name") =~ "Comment$"
let min = 1
let max = pline_len
while min < max
let col = (min + max) / 2
if synIDattr(synID(plnum, col, 1), "name") =~ "Comment$"
let max = col
else
let min = col + 1
endif
endwhile
echomsg min
let pline = strpart(pline, 0, min - 1)
echomsg pline
sleep 1
endif
let col = col + 1
endwhile
else
let col = 0
while col < pline_len
if pline[col] == '#'
let pline = strpart(pline, 0, col)
break
endif
let col = col + 1
endwhile
endif
" If the previous line ended with a colon, indent this line
if pline =~ ':\s*$'

View File

@@ -1,7 +1,7 @@
" Vim indent file
" Language: Vim script
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2003 May 25
" Last Change: 2004 Sep 02
" Only load this indent file when no other was loaded.
if exists("b:did_indent")
@@ -36,10 +36,14 @@ function GetVimIndent()
" Add a 'shiftwidth' after :if, :while, :try, :catch, :finally, :function
" and :else. Add it three times for a line that starts with '\' after
" a line that doesn't.
" a line that doesn't (or g:vim_indent_cont if it exists).
let ind = indent(lnum)
if getline(v:lnum) =~ '^\s*\\' && v:lnum > 1 && getline(lnum) !~ '^\s*\\'
let ind = ind + &sw * 3
if exists("g:vim_indent_cont")
let ind = ind + g:vim_indent_cont
else
let ind = ind + &sw * 3
endif
elseif getline(lnum) =~ '\(^\||\)\s*\(if\|wh\%[ile]\|try\|cat\%[ch]\|fina\%[lly]\|fu\%[nction]\|el\%[seif]\)\>'
let ind = ind + &sw
elseif getline(lnum) =~ '^\s*aug\%[roup]' && getline(lnum) !~ '^\s*aug\%[roup]\s*!\=\s\+END'

9314
runtime/kde-tips Normal file

File diff suppressed because it is too large Load Diff

BIN
runtime/kvim32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
runtime/kvim48x48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
runtime/kvim64x64.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

@@ -0,0 +1,246 @@
" Menu Translations: Ukrainian
" Maintainer: Bohdan Vlasyuk <bohdan@vstu.edu.ua>
" Last Change: 11 Oct 2001
"
" Please, see readme at htpp://www.vstu.edu.ua/~bohdan/vim before any
" complains, and even if you won't complain, read it anyway.
"
" Quit when menu translations have already been done.
if exists("did_menu_trans")
finish
endif
let did_menu_trans = 1
scriptencoding cp1251
" Help menu
menutrans &Help &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Overview<Tab><F1> &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab><F1>
menutrans &User\ Manual &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &How-to\ links &<26><>-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
"menutrans &GUI &GIU
menutrans &Credits &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Co&pying &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans O&rphans &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Version &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &About <09><><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
" File menu
menutrans &File &<26><><EFBFBD><EFBFBD>
menutrans &Open\.\.\.<Tab>:e<><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.<Tab>:e
menutrans Sp&lit-Open\.\.\.<Tab>:sp &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\.\.\.<Tab>:sp
menutrans &New<Tab>:enew &<26><><EFBFBD><EFBFBD><EFBFBD><Tab>:enew
menutrans &Close<Tab>:close &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:close
menutrans &Save<Tab>:w <20><>&<26><><EFBFBD>'<27><><EFBFBD><EFBFBD><EFBFBD><Tab>:w
menutrans Save\ &As\.\.\.<Tab>:sav <09><><EFBFBD><EFBFBD><EFBFBD>'<27><><EFBFBD><EFBFBD><EFBFBD>\ &<26><>\.\.\.<Tab>:sav
menutrans Split\ &Diff\ with\.\.\. <09><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\.\.\.
menutrans Split\ Patched\ &By\.\.\. <09><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
menutrans &Print &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Sa&ve-Exit<Tab>:wqa <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\ <20><>&<26><><EFBFBD><Tab>:wqa
menutrans E&xit<Tab>:qa &<26><><EFBFBD><EFBFBD><EFBFBD><Tab>:qa
" Edit menu
menutrans &Edit &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Undo<Tab>u<><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>u
menutrans &Redo<Tab>^R &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^R
menutrans Rep&eat<Tab>\. <09>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>\.
menutrans Cu&t<Tab>"+x <09><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>"+x
menutrans &Copy<Tab>"+y &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>"+y
menutrans &Paste<Tab>"+gP <09>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>"+gP
menutrans Put\ &Before<Tab>[p <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD><Tab>[p
menutrans Put\ &After<Tab>]p <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>&<26><><EFBFBD><EFBFBD><Tab>]p
menutrans &Select\ all<Tab>ggVG <09><>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><Tab>ggVG
menutrans &Find\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
menutrans Find\ and\ Rep&lace\.\.\. <09><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
menutrans Settings\ &Window ³<><C2B3><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Global\ Settings <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans F&ile\ Settings <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>
menutrans Toggle\ Line\ &Numbering<Tab>:set\ nu! &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:set\ nu!
menutrans Toggle\ &List\ Mode<Tab>:set\ list! <09><><EFBFBD><EFBFBD><EFBFBD>\ <20><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:set\ list!
menutrans Toggle\ Line\ &Wrap<Tab>:set\ wrap! <09><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:set\ wrap!
menutrans Toggle\ W&rap\ at\ word<Tab>:set\ lbr! <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><Tab>:set\ lbr!
menutrans Toggle\ &expand-tab<Tab>:set\ et! <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:set\ et!
menutrans Toggle\ &auto-indent<Tab>:set\ ai! <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:set\ ai!
menutrans Toggle\ &C-indenting<Tab>:set\ cin! ³<><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ &C<Tab>:set\ cin!
menutrans &Shiftwidth &<26><><EFBFBD><EFBFBD>
menutrans Te&xt\ Width\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
menutrans &File\ Format\.\.\. &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\.\.\.
menutrans Soft\ &Tabstop <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans C&olor\ Scheme &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Select\ Fo&nt\.\.\. <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>\.\.\.
menutrans &Keymap <09><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Toggle\ Pattern\ &Highlight<Tab>:set\ hls! <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:set\ hls!
menutrans Toggle\ &Ignore-case<Tab>:set\ ic! &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ \<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:set\ ic!
menutrans Toggle\ &Showmatch<Tab>:set\ sm! &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><Tab>:set\ sm!
menutrans &Context\ lines ʳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Virtual\ Edit <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><><EFBFBD>
menutrans Never ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Block\ Selection <09><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>
menutrans Insert\ mode <09><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Block\ and\ Insert <09><><EFBFBD><EFBFBD><EFBFBD>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Always <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Toggle\ Insert\ &Mode<Tab>:set\ im! <09><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:set\ im!
menutrans Search\ &Path\.\.\. &<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
menutrans Ta&g\ Files\.\.\. <09><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.\.\.
"
" GUI options
menutrans Toggle\ &Toolbar <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Toggle\ &Bottom\ Scrollbar &<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>
menutrans Toggle\ &Left\ Scrollbar<><CBB3>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>
menutrans Toggle\ &Right\ Scrollbar &<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>
" Programming menu
menutrans &Tools &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Jump\ to\ this\ tag<Tab>g^] &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>g^]
menutrans Jump\ &back<Tab>^T <09><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^T
menutrans Build\ &Tags\ File &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
" Folding
menutrans &Folding &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Enable/Disable\ folds<Tab>zi &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zi
menutrans &View\ Cursor\ Line<Tab>zv &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zv
menutrans Vie&w\ Cursor\ Line\ only<Tab>zMzx <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zMzx
menutrans C&lose\ more\ folds<Tab>zm <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zm
menutrans &Close\ all\ folds<Tab>zM <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zM
menutrans &Open\ all\ folds<Tab>zR ³<><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>&<26><>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zR
menutrans O&pen\ more\ folds<Tab>zr ³<><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zr
menutrans Create\ &Fold<Tab>zf <09>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zf
menutrans &Delete\ Fold<Tab>zd &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zd
menutrans Delete\ &All\ Folds<Tab>zD <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<26>\ <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>zD
menutrans Fold\ column\ &width &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Fold\ Met&hod &<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans M&anual &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans I&ndent<><C2B3><EFBFBD><EFBFBD><EFBFBD>
menutrans E&xpression <20>&<26><><EFBFBD><EFBFBD>
menutrans S&yntax &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Ma&rker <09><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
" Diff
menutrans &Diff <09><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Update &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Get\ Block &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Put\ Block &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
" Make and stuff...
menutrans &Make<Tab>:make &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(make)<Tab>:make
menutrans &List\ Errors<Tab>:cl &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cl
menutrans L&ist\ Messages<Tab>:cl! <09><>&<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cl!
menutrans &Next\ Error<Tab>:cn &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cn
menutrans &Previous\ Error<Tab>:cp &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cp
menutrans &Older\ List<Tab>:cold &<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cold
menutrans N&ewer\ List<Tab>:cnew &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cnew
menutrans Error\ &Window<><C2B3><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Update<Tab>:cwin &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cwin
menutrans &Close<Tab>:cclose &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:cclose
menutrans &Open<Tab>:copen<><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>:copen
menutrans &Set\ Compiler <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Convert\ to\ HEX<Tab>:%!xxd <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><Tab>:%!xxd
menutrans Conve&rt\ back<Tab>:%!xxd\ -r <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><Tab>:%!xxd\ -r
" Names for buffer menu.
menutrans &Buffers &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Refresh\ menu &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Delete &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Alternate &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Next &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Previous &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans [No\ File] [<5B><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>]
" Window menu
menutrans &Window<><C2B3><EFBFBD>
menutrans &New<Tab>^Wn &<26><><EFBFBD><EFBFBD><Tab>^Wn
menutrans S&plit<Tab>^Ws &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^Ws
menutrans Sp&lit\ To\ #<Tab>^W^^ <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><Tab>^W^^
menutrans Split\ &Vertically<Tab>^Wv <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^Wv
"menutrans Split\ &Vertically<Tab>^Wv &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^Wv
menutrans Split\ File\ E&xplorer <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Close<Tab>^Wc &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^Wc
menutrans Close\ &Other(s)<Tab>^Wo <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ &<26><><EFBFBD><EFBFBD><Tab>^Wo
menutrans Ne&xt<Tab>^Ww &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^Ww
menutrans P&revious<Tab>^WW &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^WW
menutrans &Equal\ Size<Tab>^W= &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^W=
menutrans &Max\ Height<Tab>^W_ <09><><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^W_
menutrans M&in\ Height<Tab>^W1_ <09><><EFBFBD>&<26><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^W1_
menutrans Max\ &Width<Tab>^W\| <09><><EFBFBD><EFBFBD><EFBFBD>&<26><><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^W\|
menutrans Min\ Widt&h<Tab>^W1\| <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<26><>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^W1\|
menutrans Move\ &To &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Top<Tab>^WK <09><>&<26><><EFBFBD><EFBFBD><Tab>^WK
menutrans &Bottom<Tab>^WJ <09><>&<26><><EFBFBD><EFBFBD><Tab>^WJ
menutrans &Left\ side<Tab>^WH <09>&<26><><EFBFBD><EFBFBD><Tab>^WH
menutrans &Right\ side<Tab>^WL <09>&<26><><EFBFBD><EFBFBD><EFBFBD><Tab>^WL
menutrans Rotate\ &Up<Tab>^WR &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><Tab>^WR
menutrans Rotate\ &Down<Tab>^Wr <09>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><Tab>^Wr
" The popup menu
menutrans &Undo<><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Cu&t <09><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Copy &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Paste <09>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Delete <09><>&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Select\ &Word <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>
menutrans Select\ &Line <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>
menutrans Select\ &Block <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD>
menutrans Select\ &All <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD>
" The GUI toolbar
if has("toolbar")
if exists("*Do_toolbar_tmenu")
delfun Do_toolbar_tmenu
endif
fun Do_toolbar_tmenu()
tmenu ToolBar.Open ³<><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
tmenu ToolBar.Save <09><><EFBFBD><EFBFBD><EFBFBD>'<27><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
tmenu ToolBar.SaveAll <09><><EFBFBD><EFBFBD><EFBFBD>'<27><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Print <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Undo ³<><C2B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Redo <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Cut <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Copy <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Paste <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Find <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
tmenu ToolBar.FindNext <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.FindPrev <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Replace <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>...
tmenu ToolBar.LoadSesn <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.SaveSesn <09><><EFBFBD><EFBFBD><EFBFBD>'<27><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.RunScript <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Make <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Shell Shell
tmenu ToolBar.RunCtags <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.TagJump <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.Help <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmenu ToolBar.FindHelp <09><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
endfun
endif
" Syntax menu
menutrans &Syntax &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans Set\ '&syntax'\ only <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD>\ '&syntax'
menutrans Set\ '&filetype'\ too <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ '&filetype'\ <20><><EFBFBD><EFBFBD><EFBFBD>
menutrans &Off &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Manual &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans A&utomatic &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans on/off\ for\ &This\ file <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD>
menutrans Co&lor\ test <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Highlight\ test &<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
menutrans &Convert\ to\ HTML <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\ &HTML
" dialog texts
let menutrans_no_file = "[<5B><><EFBFBD><EFBFBD><EFBFBD>\ <20><><EFBFBD><EFBFBD><EFBFBD>]"
let menutrans_help_dialog = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:\n\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> i_ <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>. i_CTRL-X)\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> i_ <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>. <20>_<Del>)\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ' <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>. 'shiftwidth')"
let g:menutrans_path_dialog = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
let g:menutrans_tags_dialog = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\n<><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
let g:menutrans_textwidth_dialog = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (0 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)"
let g:menutrans_fileformat_dialog = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>"

View File

@@ -1,6 +1,6 @@
" Script to define the syntax menu in synmenu.vim
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2004 May 22
" Last Change: 2004 Sep 11
" This is used by "make menu" in the src directory.
edit <sfile>:p:h/synmenu.vim
@@ -49,12 +49,14 @@ fun! <SID>Syn(arg)
endfun
SynMenu AB.Aap:aap
SynMenu AB.ABAP/4:abap
SynMenu AB.Abaqus:abaqus
SynMenu AB.ABC\ music\ notation:abc
SynMenu AB.ABEL:abel
SynMenu AB.AceDB\ model:acedb
SynMenu AB.Ada:ada
SynMenu AB.AfLex:aflex
SynMenu AB.ALSA\ config:alsaconf
SynMenu AB.Altera\ AHDL:ahdl
SynMenu AB.Amiga\ DOS:amiga
SynMenu AB.AMPL:ampl
@@ -153,7 +155,6 @@ SynMenu DE.Elinks\ config:elinks
SynMenu DE.Elm\ filter\ rules:elmfilt
SynMenu DE.Embedix\ Component\ Description:ecd
SynMenu DE.ERicsson\ LANGuage:erlang
SynMenu DE.ESQL-C:esqlc
SynMenu DE.Essbase\ script:csc
SynMenu DE.Eterm\ config:eterm
SynMenu DE.Exim\ conf:exim
@@ -306,7 +307,6 @@ SynMenu PQ.Pike:pike
SynMenu PQ.Pine\ RC:pine
SynMenu PQ.Pinfo\ RC:pinfo
SynMenu PQ.PL/M:plm
SynMenu PQ.PL/SQL:plsql
SynMenu PQ.PLP:plp
SynMenu PQ.PO\ (GNU\ gettext):po
SynMenu PQ.Postfix\ main\ config:pfmain
@@ -392,10 +392,13 @@ SynMenu Sh-S.Spyce:spyce
SynMenu Sh-S.Speedup:spup
SynMenu Sh-S.Splint:splint
SynMenu Sh-S.Squid\ config:squid
SynMenu Sh-S.SQL.ESQL-C:esqlc
SynMenu Sh-S.SQL.MySQL:mysql
SynMenu Sh-S.SQL.SQL:sql
SynMenu Sh-S.SQL.PL/SQL:plsql
SynMenu Sh-S.SQL.SQL\ (Oracle):sql
SynMenu Sh-S.SQL.SQL\ Forms:sqlforms
SynMenu Sh-S.SQL.SQLJ:sqlj
SynMenu Sh-S.SQL.SQL-Informix:sqlinformix
SynMenu Sh-S.SQR:sqr
SynMenu Sh-S.Ssh.ssh_config:sshconfig
SynMenu Sh-S.Ssh.sshd_config:sshdconfig

View File

@@ -2,7 +2,7 @@
" You can also use this as a start for your own set of menus.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2004 May 26
" Last Change: 2004 Sep 16
" Note that ":an" (short for ":anoremenu") is often used to make a menu work
" in all modes and avoid side effects from mappings defined by the user.
@@ -193,7 +193,7 @@ inoremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG <C-O>:call <SID>S
cnoremenu <script> <silent> 20.400 &Edit.&Select\ All<Tab>ggVG <C-U>call <SID>SelectAll()<CR>
an 20.405 &Edit.-SEP2- <Nop>
if has("win32") || has("win16") || has("gui_gtk") || has("gui_motif")
if has("win32") || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_motif")
an 20.410 &Edit.&Find\.\.\. :promptfind<CR>
vunmenu &Edit.&Find\.\.\.
vnoremenu &Edit.&Find\.\.\. y:promptfind <C-R>"<CR>
@@ -382,7 +382,7 @@ if has("keymap")
endif
unlet s:n
endif
if has("win32") || has("win16") || has("gui_gtk") || has("gui_photon")
if has("win32") || has("win16") || has("gui_gtk") || has("gui_kde") || has("gui_photon") || has("gui_mac")
an 20.470 &Edit.Select\ Fo&nt\.\.\. :set guifont=*<CR>
endif

View File

@@ -1,7 +1,12 @@
" Set options and add mapping such that Vim behaves a lot like MS-Windows
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last change: 2004 May 26
" Last change: 2004 Jul 27
" bail out if this isn't wanted (mrsvim.vim uses this).
if exists("g:skip_loading_mswin") && g:skip_loading_mswin
finish
endif
" set the 'cpoptions' to its Vim default
if 1 " only do this when compiled with expression evaluation

View File

@@ -1,7 +1,7 @@
" These commands create the option window.
"
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2004 May 04
" Last Change: 2004 Jul 05
" If there already is an option window, jump to that one.
if bufwinnr("option-window") > 0
@@ -359,6 +359,11 @@ call <SID>OptionG("lcs", &lcs)
call append("$", "number\tshow the line number for each line")
call append("$", "\t(local to window)")
call <SID>BinOptionL("nu")
if has("linebreak")
call append("$", "numberwidth\tnumber of columns to use for the line number")
call append("$", "\t(local to window)")
call <SID>OptionL("nuw")
endif
call <SID>Header("syntax and highlighting")
@@ -558,18 +563,28 @@ endif
if has("printer")
call <SID>Header("printing")
call append("$", "printoptions\tlist of items that control the format of :hardcopy output")
call <SID>OptionG("popt", &popt)
call append("$", "printdevice\tname of the printer to be used for :hardcopy")
call <SID>OptionG("pdev", &pdev)
call append("$", "printencoding\tencoding used to print the PostScript file for :hardcopy")
call <SID>OptionG("penc", &penc)
call append("$", "printexpr\texpression used to print the PostScript file for :hardcopy")
call <SID>OptionG("pexpr", &pexpr)
if has("postscript")
call append("$", "printexpr\texpression used to print the PostScript file for :hardcopy")
call <SID>OptionG("pexpr", &pexpr)
endif
call append("$", "printfont\tname of the font to be used for :hardcopy")
call <SID>OptionG("pfn", &pfn)
call append("$", "printheader\tformat of the header used for :hardcopy")
call <SID>OptionG("pheader", &pheader)
call append("$", "printoptions\tlist of items that control the format of :hardcopy output")
call <SID>OptionG("popt", &popt)
if has("postscript")
call append("$", "printencoding\tencoding used to print the PostScript file for :hardcopy")
call <SID>OptionG("penc", &penc)
endif
if has("multi_byte")
call append("$", "printmbcharset\tthe CJK character set to be used for CJK output from :hardcopy")
call <SID>OptionG("pmbcs", &pmbcs)
call append("$", "printmbfont\tlist of font names to be used for CJK output from :hardcopy")
call <SID>OptionG("pmbfn", &pmbfn)
endif
endif
call <SID>Header("messages and info")
@@ -656,6 +671,9 @@ if has("insert_expand")
call append("$", "complete\tspecifies how Insert mode completion works")
call append("$", "\t(local to buffer)")
call <SID>OptionL("cpt")
call append("$", "completefunc\tuser defined function for Insert mode completion")
call append("$", "\t(local to buffer)")
call <SID>OptionL("cfu")
call append("$", "dictionary\tlist of dictionary files for keyword completion")
call append("$", "\t(global or local to buffer)")
call <SID>OptionG("dict", &dict)
@@ -1006,6 +1024,11 @@ call append("$", "\t(local to buffer)")
call <SID>OptionL("isk")
call append("$", "isprint\tspecifies printable characters")
call <SID>OptionG("isp", &isp)
if has("textobjects")
call append("$", "quoteescape\tspecifies escape characters in a string")
call append("$", "\t(local to buffer)")
call <SID>OptionL("qe")
endif
if has("rightleft")
call append("$", "rightleft\tdisplay the buffer right-to-left")
call append("$", "\t(local to window)")
@@ -1134,6 +1157,10 @@ call append("$", "\t(local to buffer)")
call <SID>BinOptionL("bl")
call append("$", "debug\tset to \"msg\" to see all error messages")
call append("$", " \tset debug=" . &debug)
if has("mzscheme")
call append("$", "mzquantum\tinterval in milliseconds between polls for MzScheme threads")
call append("$", " \tset mzq=" . &mzq)
endif
set cpo&vim

View File

@@ -0,0 +1,313 @@
" NetrwFileHandlers: contains various extension-based file handlers for
" netrw's browsers' x command ("eXecute launcher")
" Author: Charles E. Campbell, Jr.
" Date: Aug 31, 2004
" Version: 3a NOT RELEASED
" ---------------------------------------------------------------------
" Prevent Reloading: {{{1
if exists("g:loaded_netrwfilehandlers") || &cp
finish
endif
let g:loaded_netrwfilehandlers= "v3a"
" ---------------------------------------------------------------------
" NetrwFileHandler_html: handles html when the user hits "x" when the {{{1
" cursor is atop a *.html file
fun! NetrwFileHandler_html(pagefile)
" call Dfunc("NetrwFileHandler_html(".a:pagefile.")")
let page= substitute(a:pagefile,'^','file://','')
if executable("mozilla")
" call Decho("executing !mozilla ".page)
exe "!mozilla \"".page.'"'
elseif executable("netscape")
" call Decho("executing !netscape ".page)
exe "!netscape \"".page.'"'
else
" call Dret("NetrwFileHandler_html 0")
return 0
endif
" call Dret("NetrwFileHandler_html 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_htm: handles html when the user hits "x" when the {{{1
" cursor is atop a *.htm file
fun! NetrwFileHandler_htm(pagefile)
" call Dfunc("NetrwFileHandler_htm(".a:pagefile.")")
let page= substitute(a:pagefile,'^','file://','')
if executable("mozilla")
" call Decho("executing !mozilla ".page)
exe "!mozilla \"".page.'"'
elseif executable("netscape")
" call Decho("executing !netscape ".page)
exe "!netscape \"".page.'"'
else
" call Dret("NetrwFileHandler_htm 0")
return 0
endif
" call Dret("NetrwFileHandler_htm 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_jpg: {{{1
fun! NetrwFileHandler_jpg(jpgfile)
" call Dfunc("NetrwFileHandler_jpg(jpgfile<".a:jpgfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".a:jpgfile
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
" call Decho("silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT ".escape(a:jpgfile," []|'"))
exe "!".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:jpgfile.'"'
else
" call Dret("NetrwFileHandler_jpg 0")
return 0
endif
" call Dret("NetrwFileHandler_jpg 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_gif: {{{1
fun! NetrwFileHandler_gif(giffile)
" call Dfunc("NetrwFileHandler_gif(giffile<".a:giffile.">)")
if executable("gimp")
exe "silent! !gimp -s ".a:giffile
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:giffile.'"'
else
" call Dret("NetrwFileHandler_gif 0")
return 0
endif
" call Dret("NetrwFileHandler_gif 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_png: {{{1
fun! NetrwFileHandler_png(pngfile)
" call Dfunc("NetrwFileHandler_png(pngfile<".a:pngfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".a:pngfile
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:pngfile.'"'
else
" call Dret("NetrwFileHandler_png 0")
return 0
endif
" call Dret("NetrwFileHandler_png 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_pnm: {{{1
fun! NetrwFileHandler_pnm(pnmfile)
" call Dfunc("NetrwFileHandler_pnm(pnmfile<".a:pnmfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".a:pnmfile
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:pnmfile.'"'
else
" call Dret("NetrwFileHandler_pnm 0")
return 0
endif
" call Dret("NetrwFileHandler_pnm 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_bmp: visualize bmp files {{{1
fun! NetrwFileHandler_bmp(bmpfile)
" call Dfunc("NetrwFileHandler_bmp(bmpfile<".a:bmpfile.">)")
if executable("gimp")
exe "silent! !gimp -s ".a:bmpfile
elseif executable(expand("$SystemRoot")."/SYSTEM32/MSPAINT.EXE")
exe "silent! !".expand("$SystemRoot")."/SYSTEM32/MSPAINT \"".a:bmpfile.'"'
else
" call Dret("NetrwFileHandler_bmp 0")
return 0
endif
" call Dret("NetrwFileHandler_bmp 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_pdf: visualize pdf files {{{1
fun! NetrwFileHandler_pdf(pdf)
" " call Dfunc("NetrwFileHandler_pdf(pdf<".a:pdf.">)")
if executable("gs")
exe "silent! !gs ".a:pdf
else
" " call Dret("NetrwFileHandler_pdf 0")
return 0
endif
" " call Dret("NetrwFileHandler_pdf 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_sxw: visualize sxw files {{{1
fun! NetrwFileHandler_sxw(sxw)
" " call Dfunc("NetrwFileHandler_sxw(sxw<".a:sxw.">)")
if executable("gs")
exe "silent! !gs ".a:sxw
else
" " call Dret("NetrwFileHandler_sxw 0")
return 0
endif
" " call Dret("NetrwFileHandler_sxw 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_doc: visualize doc files {{{1
fun! NetrwFileHandler_doc(doc)
" " call Dfunc("NetrwFileHandler_doc(doc<".a:doc.">)")
if executable("oowriter")
exe "silent! !oowriter ".a:doc
redraw!
else
" " call Dret("NetrwFileHandler_doc 0")
return 0
endif
" " call Dret("NetrwFileHandler_doc 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_sxw: visualize sxw files {{{1
fun! NetrwFileHandler_sxw(sxw)
" " call Dfunc("NetrwFileHandler_sxw(sxw<".a:sxw.">)")
if executable("oowriter")
exe "silent! !oowriter ".a:sxw
redraw!
else
" " call Dret("NetrwFileHandler_sxw 0")
return 0
endif
" " call Dret("NetrwFileHandler_sxw 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_xls: visualize xls files {{{1
fun! NetrwFileHandler_xls(xls)
" " call Dfunc("NetrwFileHandler_xls(xls<".a:xls.">)")
if executable("oocalc")
exe "silent! !oocalc ".a:xls
redraw!
else
" " call Dret("NetrwFileHandler_xls 0")
return 0
endif
" " call Dret("NetrwFileHandler_xls 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_ps: handles PostScript files {{{1
fun! NetrwFileHandler_ps(ps)
" call Dfunc("NetrwFileHandler_ps()")
if executable("gs")
exe "silent! !gs ".a:ps
redraw!
elseif executable("ghostscript")
exe "silent! !ghostscript ".a:ps
redraw!
elseif executable("ghostscript")
exe "silent! !ghostscript ".a:ps
redraw!
elseif executable("gswin32")
exe "silent! !gswin32 \"".a:ps.'"'
redraw!
else
" call Dret("NetrwFileHandler_ps 0")
return 0
endif
" call Dret("NetrwFileHandler_ps 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_eps: handles encapsulated PostScript files {{{1
fun! NetrwFileHandler_eps(eps)
" call Dfunc("NetrwFileHandler_ps()")
if executable("gs")
exe "silent! !gs ".a:eps
redraw!
elseif executable("ghostscript")
exe "silent! !ghostscript ".a:eps
redraw!
elseif executable("ghostscript")
exe "silent! !ghostscript ".a:eps
redraw!
elseif executable("gswin32")
exe "silent! !gswin32 \"".a:eps.'"'
redraw!
else
" call Dret("NetrwFileHandler_ps 0")
return 0
endif
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_fig: handles xfig files {{{1
fun! NetrwFileHandler_fig(fig)
" call Dfunc("NetrwFileHandler_fig()")
if executable("xfig")
exe "silent! !xfig ".a:fig
redraw!
else
" call Dret("NetrwFileHandler_fig 0")
return 0
endif
" call Dret("NetrwFileHandler_fig 1")
return 1
endfun
" ---------------------------------------------------------------------
" NetrwFileHandler_obj: handles tgif's obj files {{{1
fun! NetrwFileHandler_obj(obj)
" call Dfunc("NetrwFileHandler_obj()")
if has("unix") && executable("tgif")
exe "silent! !tgif ".a:obj
redraw!
else
" call Dret("NetrwFileHandler_obj 0")
return 0
endif
" call Dret("NetrwFileHandler_obj 1")
return 1
endfun
" ---------------------------------------------------------------------
" vim: ts=4 fdm=marker

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
" Vim plugin for editing compressed files.
" Maintainer: Bram Moolenaar <Bram@vim.org>
" Last Change: 2004 Jan 12
" Last Change: 2004 Jul 30
" Exit quickly when:
" - this plugin was already loaded
@@ -71,6 +71,11 @@ fun s:read(cmd)
execute "silent '[,']w " . tmpe
" uncompress the temp file: call system("gzip -dn tmp.gz")
call system(a:cmd . " " . tmpe)
if !filereadable(tmp)
" uncompress didn't work! Keep the compressed file then.
echoerr "Error: Could not read uncompressed file"
return
endif
" delete the compressed lines; remember the line number
let l = line("'[") - 1
if exists(":lockmarks")

File diff suppressed because it is too large Load Diff

22
runtime/print/ascii.ps Normal file
View File

@@ -0,0 +1,22 @@
%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-ascii
%%Version: 1.0 0
%%EndComments
/VIM-ascii[
32{/.notdef}repeat
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /asciitilde /.notdef
128{/.notdef}repeat]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF

26
runtime/print/cidfont.ps Normal file
View File

@@ -0,0 +1,26 @@
%!PS-Adobe-3.0 Resource-ProcSet
%%Title: VIM-CIDFont
%%Version: 1.0 0
%%EndComments
% Editing of this file is NOT RECOMMENDED. You run a very good risk of causing
% all PostScript printing from VIM failing if you do. PostScript is not called
% a write-only language for nothing!
/CP currentpacking d T setpacking
/SB 256 string d
/CIDN? systemdict/composefont known d /GS? systemdict/.makeoperator known d
CIDN?{
GS?{/vim_findresource{2 copy resourcestatus not{1 index SB cvs runlibfile}{
pop pop}ifelse findresource}bd/vim_composefont{0 get/CIDFont vim_findresource
exch/CMap vim_findresource exch[exch]composefont pop}bd}{/vim_findresource
/findresource ld/vim_composefont{composefont pop}bd}ifelse
}{
/vim_fontname{0 get SB cvs length dup SB exch(-)putinterval 1 add dup SB exch
dup 256 exch sub getinterval 3 -1 roll exch cvs length add SB exch 0 exch
getinterval cvn}bd/vim_composefont{vim_fontname findfont d}bd
} ifelse
/cfs{exch scalefont d}bd
/sffs{findfont 3 1 roll 1 index mul exch 2 index/FontMatrix get matrix copy
scale makefont d}bd
CP setpacking
% vim:ff=unix:
%%EOF

View File

@@ -0,0 +1,23 @@
%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-cns_roman
%%Version: 1.0 0
%%EndComments
% Different to ASCII at code point 126
/VIM-cns_roman[
32{/.notdef}repeat
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /overline /.notdef
128{/.notdef}repeat]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF

23
runtime/print/gb_roman.ps Normal file
View File

@@ -0,0 +1,23 @@
%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-gb_roman
%%Version: 1.0 0
%%EndComments
% Different to ASCII at code points 36 and 126
/VIM-gb_roman[
32{/.notdef}repeat
/space /exclam /quotedbl /numbersign /yuan /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /overline /.notdef
128{/.notdef}repeat]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF

View File

@@ -0,0 +1,23 @@
%!PS-Adobe-3.0 Resource-Encoding
%%Title: VIM-jis_roman
%%Version: 1.0 0
%%EndComments
% Different to ASCII at code points 92 and 126
/VIM-jis_roman[
32{/.notdef}repeat
/space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quotesingle
/parenleft /parenright /asterisk /plus /comma /minus /period /slash
/zero /one /two /three /four /five /six /seven
/eight /nine /colon /semicolon /less /equal /greater /question
/at /A /B /C /D /E /F /G
/H /I /J /K /L /M /N /O
/P /Q /R /S /T /U /V /W
/X /Y /Z /bracketleft /yen /bracketright /asciicircum /underscore
/grave /a /b /c /d /e /f /g
/h /i /j /k /l /m /n /o
/p /q /r /s /t /u /v /w
/x /y /z /braceleft /bar /braceright /overline /.notdef
128{/.notdef}repeat]
/Encoding defineresource pop
% vim:ff=unix:
%%EOF

Some files were not shown because too many files have changed in this diff Show More