summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2018-09-11 22:09:57 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2018-09-11 22:10:07 +0000
commit7ad62b9dfb3d7e4555ff2e1c70c3ef2834070e8b (patch)
treee8cb33d2075c3e80e06d67223d0d47bf27da6212
parentReleasing progress-linux version 2:8.1.0089-1~dschinn1. (diff)
downloadvim-7ad62b9dfb3d7e4555ff2e1c70c3ef2834070e8b.zip
vim-7ad62b9dfb3d7e4555ff2e1c70c3ef2834070e8b.tar.xz
Merging upstream version 2:8.1.0229.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
-rw-r--r--.travis.yml15
-rw-r--r--CONTRIBUTING.md22
-rw-r--r--Filelist7
-rw-r--r--nsis/icons/vim_16c.icobin766 -> 766 bytes
-rw-r--r--nsis/icons/vim_uninst_16c.icobin766 -> 766 bytes
-rw-r--r--runtime/autoload/RstFold.vim48
-rw-r--r--runtime/autoload/csscomplete.vim8
-rw-r--r--runtime/autoload/spellfile.vim11
-rw-r--r--runtime/autoload/xmlformat.vim3
-rw-r--r--runtime/doc/arabic.txt2
-rw-r--r--runtime/doc/autocmd.txt6
-rw-r--r--runtime/doc/change.txt11
-rw-r--r--runtime/doc/channel.txt2
-rw-r--r--runtime/doc/cmdline.txt2
-rw-r--r--runtime/doc/debug.txt2
-rw-r--r--runtime/doc/debugger.txt2
-rw-r--r--runtime/doc/develop.txt2
-rw-r--r--runtime/doc/diff.txt2
-rw-r--r--runtime/doc/digraph.txt2
-rw-r--r--runtime/doc/editing.txt6
-rw-r--r--runtime/doc/eval.txt142
-rw-r--r--runtime/doc/evim-ja.UTF-8.19
-rw-r--r--runtime/doc/evim.man52
-rw-r--r--runtime/doc/farsi.txt2
-rw-r--r--runtime/doc/filetype.txt6
-rw-r--r--runtime/doc/fold.txt2
-rw-r--r--runtime/doc/ft_sql.txt2
-rw-r--r--runtime/doc/gui.txt2
-rw-r--r--runtime/doc/gui_w32.txt4
-rw-r--r--runtime/doc/gui_x11.txt2
-rw-r--r--runtime/doc/hangulin.txt2
-rw-r--r--runtime/doc/hebrew.txt2
-rw-r--r--runtime/doc/help.txt2
-rw-r--r--runtime/doc/helphelp.txt2
-rw-r--r--runtime/doc/howto.txt2
-rw-r--r--runtime/doc/if_cscop.txt2
-rw-r--r--runtime/doc/if_lua.txt17
-rw-r--r--runtime/doc/if_mzsch.txt2
-rw-r--r--runtime/doc/if_ole.txt2
-rw-r--r--runtime/doc/if_perl.txt2
-rw-r--r--runtime/doc/if_pyth.txt2
-rw-r--r--runtime/doc/if_ruby.txt5
-rw-r--r--runtime/doc/if_sniff.txt2
-rw-r--r--runtime/doc/if_tcl.txt2
-rw-r--r--runtime/doc/indent.txt2
-rw-r--r--runtime/doc/index.txt2
-rw-r--r--runtime/doc/insert.txt4
-rw-r--r--runtime/doc/intro.txt2
-rw-r--r--runtime/doc/map.txt2
-rw-r--r--runtime/doc/mbyte.txt2
-rw-r--r--runtime/doc/message.txt2
-rw-r--r--runtime/doc/mlang.txt2
-rw-r--r--runtime/doc/motion.txt19
-rw-r--r--runtime/doc/netbeans.txt6
-rw-r--r--runtime/doc/options.txt65
-rw-r--r--runtime/doc/os_390.txt2
-rw-r--r--runtime/doc/os_amiga.txt2
-rw-r--r--runtime/doc/os_beos.txt2
-rw-r--r--runtime/doc/os_dos.txt2
-rw-r--r--runtime/doc/os_mac.txt2
-rw-r--r--runtime/doc/os_mint.txt2
-rw-r--r--runtime/doc/os_msdos.txt2
-rw-r--r--runtime/doc/os_os2.txt2
-rw-r--r--runtime/doc/os_qnx.txt2
-rw-r--r--runtime/doc/os_risc.txt2
-rw-r--r--runtime/doc/os_unix.txt2
-rw-r--r--runtime/doc/os_vms.txt2
-rw-r--r--runtime/doc/os_win32.txt2
-rw-r--r--runtime/doc/pattern.txt10
-rw-r--r--runtime/doc/pi_getscript.txt2
-rw-r--r--runtime/doc/pi_gzip.txt2
-rw-r--r--runtime/doc/pi_logipat.txt2
-rw-r--r--runtime/doc/pi_netrw.txt2
-rw-r--r--runtime/doc/pi_paren.txt2
-rw-r--r--runtime/doc/pi_spec.txt2
-rw-r--r--runtime/doc/pi_tar.txt2
-rw-r--r--runtime/doc/pi_vimball.txt2
-rw-r--r--runtime/doc/pi_zip.txt2
-rw-r--r--runtime/doc/print.txt2
-rw-r--r--runtime/doc/quickfix.txt8
-rw-r--r--runtime/doc/quickref.txt4
-rw-r--r--runtime/doc/quotes.txt2
-rw-r--r--runtime/doc/recover.txt2
-rw-r--r--runtime/doc/remote.txt4
-rw-r--r--runtime/doc/repeat.txt6
-rw-r--r--runtime/doc/rileft.txt2
-rw-r--r--runtime/doc/russian.txt2
-rw-r--r--runtime/doc/scroll.txt2
-rw-r--r--runtime/doc/sign.txt2
-rw-r--r--runtime/doc/spell.txt2
-rw-r--r--runtime/doc/sponsor.txt2
-rw-r--r--runtime/doc/starting.txt8
-rw-r--r--runtime/doc/syntax.txt16
-rw-r--r--runtime/doc/tabpage.txt2
-rw-r--r--runtime/doc/tags9
-rw-r--r--runtime/doc/tagsrch.txt2
-rw-r--r--runtime/doc/term.txt2
-rw-r--r--runtime/doc/terminal.txt22
-rw-r--r--runtime/doc/tips.txt13
-rw-r--r--runtime/doc/todo.txt192
-rw-r--r--runtime/doc/usr_05.txt3
-rw-r--r--runtime/doc/usr_09.txt7
-rw-r--r--runtime/doc/various.txt3
-rw-r--r--runtime/doc/version5.txt4
-rw-r--r--runtime/doc/version6.txt2
-rw-r--r--runtime/doc/version7.txt2
-rw-r--r--runtime/doc/vim-da.1555
-rw-r--r--runtime/doc/vim-da.UTF-8.1555
-rw-r--r--runtime/doc/vim-ja.UTF-8.1105
-rw-r--r--runtime/doc/vim.110
-rw-r--r--runtime/doc/vimdiff-da.150
-rw-r--r--runtime/doc/vimdiff-da.UTF-8.150
-rw-r--r--runtime/doc/vimdiff-ja.UTF-8.115
-rw-r--r--runtime/doc/vimtutor-da.153
-rw-r--r--runtime/doc/vimtutor-da.UTF-8.153
-rw-r--r--runtime/doc/vimtutor-ja.UTF-8.111
-rw-r--r--runtime/doc/xxd-ja.UTF-8.173
-rw-r--r--runtime/filetype.vim2
-rw-r--r--runtime/ftplugin/man.vim34
-rw-r--r--runtime/ftplugin/rst.vim32
-rw-r--r--runtime/ftplugin/vim.vim26
-rw-r--r--runtime/gvim.desktop13
-rw-r--r--runtime/indent/sas.vim38
-rw-r--r--runtime/indent/sh.vim3
-rw-r--r--runtime/indent/xml.vim9
-rw-r--r--runtime/lang/README.txt13
-rw-r--r--runtime/lang/menu_da.latin1.vim3
-rw-r--r--runtime/lang/menu_da.utf-8.vim372
-rw-r--r--runtime/lang/menu_ja_jp.euc-jp.vim9
-rw-r--r--runtime/lang/menu_ja_jp.utf-8.vim9
-rw-r--r--runtime/lang/menu_japanese_japan.932.vim9
-rw-r--r--runtime/menu.vim9
-rw-r--r--runtime/mswin.vim5
-rw-r--r--runtime/optwin.vim8
-rw-r--r--runtime/pack/dist/opt/matchit/plugin/matchit.vim12
-rw-r--r--runtime/pack/dist/opt/termdebug/plugin/termdebug.vim68
-rw-r--r--runtime/plugin/README.txt1
-rw-r--r--runtime/plugin/matchparen.vim34
-rw-r--r--runtime/syntax/cs.vim284
-rw-r--r--runtime/syntax/java.vim27
-rw-r--r--runtime/syntax/javascript.vim12
-rw-r--r--runtime/syntax/pf.vim335
-rw-r--r--runtime/syntax/php.vim6
-rw-r--r--runtime/syntax/readline.vim17
-rw-r--r--runtime/syntax/rst.vim108
-rw-r--r--runtime/syntax/sqloracle.vim31
-rw-r--r--runtime/syntax/sudoers.vim5
-rw-r--r--runtime/tools/unicode.vim2
-rw-r--r--runtime/tutor/Makefile4
-rw-r--r--runtime/tutor/README.txt17
-rw-r--r--runtime/tutor/tutor80
-rw-r--r--runtime/tutor/tutor.ca.utf-8560
-rw-r--r--runtime/tutor/tutor.da972
-rw-r--r--runtime/tutor/tutor.da.utf-8972
-rw-r--r--runtime/tutor/tutor.de2
-rw-r--r--runtime/tutor/tutor.de.utf-82
-rw-r--r--runtime/tutor/tutor.es.utf-82
-rw-r--r--runtime/tutor/tutor.fr4
-rw-r--r--runtime/tutor/tutor.ja.euc49
-rw-r--r--runtime/tutor/tutor.ja.sjis49
-rw-r--r--runtime/tutor/tutor.ja.utf-849
-rw-r--r--runtime/tutor/tutor.lv.utf-8 (renamed from runtime/tutor/tutor.lv)0
-rw-r--r--runtime/tutor/tutor.utf-880
-rw-r--r--runtime/tutor/tutor.vim16
-rw-r--r--runtime/tutor/tutor.zh.big52
-rw-r--r--runtime/vim.desktop6
-rw-r--r--src/INSTALLpc.txt146
-rw-r--r--src/Make_all.mak204
-rw-r--r--src/Make_cyg_ming.mak5
-rw-r--r--src/Make_mvc.mak10
-rw-r--r--src/Makefile253
-rwxr-xr-xsrc/auto/configure6
-rw-r--r--src/beval.c5
-rw-r--r--src/beval.h5
-rw-r--r--src/buffer.c24
-rw-r--r--src/channel.c35
-rw-r--r--src/charset.c24
-rw-r--r--src/configure.ac8
-rw-r--r--src/dict.c46
-rw-r--r--src/dosinst.c2
-rw-r--r--src/edit.c198
-rw-r--r--src/eval.c17
-rw-r--r--src/evalfunc.c285
-rw-r--r--src/ex_cmds.c99
-rw-r--r--src/ex_cmds.h2
-rw-r--r--src/ex_cmds2.c17
-rw-r--r--src/ex_docmd.c205
-rw-r--r--src/ex_getln.c29
-rw-r--r--src/feature.h14
-rw-r--r--src/fileio.c28
-rw-r--r--src/getchar.c58
-rw-r--r--src/globals.h7
-rw-r--r--src/gui.c77
-rw-r--r--src/gui.h5
-rw-r--r--src/gui_beval.c12
-rw-r--r--src/gui_mac.c95
-rw-r--r--src/gui_w32.c16
-rw-r--r--src/hardcopy.c5
-rw-r--r--src/if_cscope.c2
-rw-r--r--src/if_lua.c311
-rw-r--r--src/if_mzsch.c1
-rw-r--r--src/if_ole.cpp2
-rw-r--r--src/if_perl.xs64
-rw-r--r--src/if_py_both.h80
-rw-r--r--src/if_python3.c15
-rw-r--r--src/if_ruby.c14
-rw-r--r--src/if_tcl.c4
-rwxr-xr-xsrc/installman.sh68
-rw-r--r--src/libvterm/src/state.c2
-rw-r--r--src/list.c4
-rw-r--r--src/macros.h10
-rw-r--r--src/main.c18
-rw-r--r--src/mark.c5
-rw-r--r--src/mbyte.c71
-rw-r--r--src/message.c23
-rw-r--r--src/misc1.c230
-rw-r--r--src/misc2.c6
-rw-r--r--src/move.c27
-rwxr-xr-xsrc/msys32.bat6
-rwxr-xr-xsrc/msys64.bat6
-rw-r--r--src/normal.c24
-rw-r--r--src/ops.c95
-rw-r--r--src/option.c542
-rw-r--r--src/option.h4
-rw-r--r--src/po/Make_all.mak135
-rw-r--r--src/po/Make_cyg.mak85
-rw-r--r--src/po/Make_ming.mak83
-rw-r--r--src/po/Make_mvc.mak83
-rw-r--r--src/po/Makefile144
-rw-r--r--src/po/af.po10
-rw-r--r--src/po/ca.po16
-rw-r--r--src/po/check.vim25
-rw-r--r--src/po/cs.cp1250.po6
-rw-r--r--src/po/cs.po6
-rw-r--r--src/po/da.po7088
-rw-r--r--src/po/de.po92
-rw-r--r--src/po/en_GB.po4
-rw-r--r--src/po/eo.po14
-rw-r--r--src/po/es.po10
-rw-r--r--src/po/fi.po12
-rw-r--r--src/po/fr.po16
-rw-r--r--src/po/ga.po16
-rw-r--r--src/po/it.po635
-rw-r--r--src/po/ja.euc-jp.po116
-rw-r--r--src/po/ja.po118
-rw-r--r--src/po/ja.sjis.po116
-rw-r--r--src/po/ko.UTF-8.po920
-rw-r--r--src/po/ko.po924
-rw-r--r--src/po/nb.po8
-rw-r--r--src/po/nl.po12
-rw-r--r--src/po/no.po8
-rw-r--r--src/po/pl.UTF-8.po21
-rw-r--r--src/po/pl.cp1250.po19
-rw-r--r--src/po/pl.po19
-rw-r--r--src/po/pt_BR.po14
-rw-r--r--src/po/ru.cp1251.po14
-rw-r--r--src/po/ru.po14
-rw-r--r--src/po/sjiscorr.c3
-rw-r--r--src/po/sk.cp1250.po8
-rw-r--r--src/po/sk.po8
-rw-r--r--src/po/sr.po31
-rw-r--r--src/po/sv.po8
-rw-r--r--src/po/uk.cp1251.po411
-rw-r--r--src/po/uk.po413
-rw-r--r--src/po/vi.po8
-rw-r--r--src/po/zh_CN.UTF-8.po8
-rw-r--r--src/po/zh_CN.cp936.po8
-rw-r--r--src/po/zh_CN.po8
-rw-r--r--src/po/zh_TW.UTF-8.po14
-rw-r--r--src/po/zh_TW.po14
-rw-r--r--src/proto.h6
-rw-r--r--src/proto/dict.pro3
-rw-r--r--src/proto/eval.pro2
-rw-r--r--src/proto/ex_docmd.pro3
-rw-r--r--src/proto/misc1.pro1
-rw-r--r--src/proto/option.pro9
-rw-r--r--src/proto/quickfix.pro1
-rw-r--r--src/proto/version.pro2
-rw-r--r--src/quickfix.c254
-rw-r--r--src/regexp.c432
-rw-r--r--src/regexp.h11
-rw-r--r--src/regexp_nfa.c528
-rw-r--r--src/screen.c35
-rw-r--r--src/structs.h8
-rw-r--r--src/syntax.c17
-rw-r--r--src/tag.c33
-rw-r--r--src/term.c40
-rw-r--r--src/terminal.c28
-rw-r--r--src/testdir/Make_all.mak4
-rw-r--r--src/testdir/Make_amiga.mak1
-rw-r--r--src/testdir/Make_dos.mak1
-rw-r--r--src/testdir/Make_ming.mak1
-rw-r--r--src/testdir/Make_vms.mms12
-rw-r--r--src/testdir/Makefile2
-rw-r--r--src/testdir/gen_opt_test.vim2
-rw-r--r--src/testdir/test1.in5
-rw-r--r--src/testdir/test85.in86
-rw-r--r--src/testdir/test87.in21
-rw-r--r--src/testdir/test_alot.vim1
-rw-r--r--src/testdir/test_breakindent.vim625
-rw-r--r--src/testdir/test_bufwintabinfo.vim23
-rw-r--r--src/testdir/test_cd.vim54
-rw-r--r--src/testdir/test_cmdline.vim41
-rw-r--r--src/testdir/test_compiler.vim5
-rw-r--r--src/testdir/test_cscope.vim18
-rw-r--r--src/testdir/test_edit.vim8
-rw-r--r--src/testdir/test_expand.vim8
-rw-r--r--src/testdir/test_fold.vim26
-rw-r--r--src/testdir/test_functions.vim39
-rw-r--r--src/testdir/test_glob2regpat.vim4
-rw-r--r--src/testdir/test_lua.vim568
-rw-r--r--src/testdir/test_marks.vim22
-rw-r--r--src/testdir/test_match.vim22
-rw-r--r--src/testdir/test_messages.vim2
-rw-r--r--src/testdir/test_mksession.vim47
-rw-r--r--src/testdir/test_modeline.vim9
-rw-r--r--src/testdir/test_options.vim14
-rw-r--r--src/testdir/test_perl.vim45
-rw-r--r--src/testdir/test_profile.vim100
-rw-r--r--src/testdir/test_prompt_buffer.vim2
-rw-r--r--src/testdir/test_put.vim46
-rw-r--r--src/testdir/test_python2.vim14
-rw-r--r--src/testdir/test_python3.vim16
-rw-r--r--src/testdir/test_quickfix.vim155
-rw-r--r--src/testdir/test_ruby.vim351
-rw-r--r--src/testdir/test_search.vim26
-rw-r--r--src/testdir/test_sort.vim55
-rw-r--r--src/testdir/test_spell.vim41
-rw-r--r--src/testdir/test_stat.vim56
-rw-r--r--src/testdir/test_syntax.vim12
-rw-r--r--src/testdir/test_tab.vim45
-rw-r--r--src/testdir/test_taglist.vim25
-rw-r--r--src/testdir/test_tcl.vim661
-rw-r--r--src/testdir/test_terminal.vim26
-rw-r--r--src/testdir/test_vartabs.vim298
-rw-r--r--src/testdir/test_virtualedit.vim16
-rw-r--r--src/undo.c22
-rw-r--r--src/userfunc.c116
-rw-r--r--src/version.c326
-rw-r--r--src/version.h6
-rw-r--r--src/vim.h7
-rw-r--r--src/window.c17
-rw-r--r--src/workshop.c18
343 files changed, 21932 insertions, 5818 deletions
diff --git a/.travis.yml b/.travis.yml
index 60e7604..4485cc9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,18 +11,18 @@ compiler:
env:
- BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
+ "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
- BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
- BUILD=yes TEST=test COVERAGE=no FEATURES=normal CONFOPT= SHADOWOPT="-C src/shadow" SRCDIR=./src/shadow CHECK_AUTOCONF=no
- BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- BUILD=yes TEST=test COVERAGE=no FEATURES=tiny CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
# Mac OSX build
- BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
+ "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
# ASAN build
- BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
- "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
+ "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
sudo: false
@@ -39,16 +39,16 @@ matrix:
env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- os: osx
env: BUILD=yes TEST=scripttests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'"
+ "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
- os: osx
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
- "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
+ "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
- os: linux
compiler: clang
env: BUILD=yes TEST=test SANITIZER_CFLAGS="-g -O1 -DABORT_ON_INTERNAL_ERROR -DEXITFREE -fsanitize=address -fno-omit-frame-pointer"
FEATURES=huge SRCDIR=./src CHECK_AUTOCONF=no ASAN_OPTIONS="print_stacktrace=1 log_path=asan" LSAN_OPTIONS="suppressions=$TRAVIS_BUILD_DIR/src/testdir/lsan-suppress.txt"
- "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
+ "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
- os: linux
compiler: clang
env: BUILD=no TEST=unittests COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=yes
@@ -57,7 +57,7 @@ matrix:
env: BUILD=yes TEST=test COVERAGE=no FEATURES=small CONFOPT= SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- os: linux
env: BUILD=yes TEST=test COVERAGE=no FEATURES=huge SHADOWOPT= SRCDIR=./src CHECK_AUTOCONF=no
- "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp'"
+ "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-rubyinterp --enable-luainterp --enable-tclinterp'"
branches:
except:
@@ -75,6 +75,7 @@ addons:
- liblua5.2-dev
- lua5.2
- ruby-dev
+ - tcl-dev
- cscope
- libgtk2.0-dev
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index b03f03e..d94e92a 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -51,4 +51,24 @@ Look in the header of the file for the name and email address.
The maintainer will take care of issues and send updates to Bram for
distribution with Vim.
-If the maintainer does not react, contact the vim-dev maillist.
+If the maintainer does not respond, contact the vim-dev maillist.
+
+
+# Translations
+
+Translating messages and runtime files is very much appreciated! These things can be translated:
+* Messages in Vim, see [src/po/README.txt][1]
+* Menus, see [runtime/lang/README.txt][2]
+* Vim tutor, see [runtime/tutor/README.txt][3]
+* Manual pages, see [runtime/doc/\*.1][4] for examples
+* Desktop icon, see [runtime/vim.desktop][5] and [runtime/gvim.desktop][6]
+
+The help files can be translated and made available separately.
+See https://www.vim.org/translations.php for examples.
+
+[1]: https://github.com/vim/vim/blob/master/src/po/README.txt
+[2]: https://github.com/vim/vim/blob/master/runtime/lang/README.txt
+[3]: https://github.com/vim/vim/blob/master/runtime/tutor/README.txt
+[4]: https://github.com/vim/vim/blob/master/runtime/doc/vim.1
+[5]: https://github.com/vim/vim/blob/master/runtime/vim.desktop
+[6]: https://github.com/vim/vim/blob/master/runtime/gvim.desktop
diff --git a/Filelist b/Filelist
index 205c077..eb1e9ab 100644
--- a/Filelist
+++ b/Filelist
@@ -7,6 +7,7 @@ SRC_ALL = \
.lgtm.yml \
.travis.yml \
appveyor.yml \
+ src/Make_all.mak \
src/appveyor.bat \
src/README.txt \
src/alloc.h \
@@ -412,6 +413,8 @@ SRC_DOS = \
src/msvc2008.bat \
src/msvc2010.bat \
src/msvc2015.bat \
+ src/msys32.bat \
+ src/msys64.bat \
src/dimm.idl \
src/dlldata.c \
src/dosinst.c \
@@ -707,6 +710,7 @@ RT_NO_UNIX = \
# runtime for Amiga (also in the extra archive)
RT_AMI_DOS = \
+ runtime/doc/evim.man \
runtime/doc/vim.man \
runtime/doc/vimdiff.man \
runtime/doc/vimtutor.man \
@@ -847,6 +851,8 @@ IN_README_DIR = \
# generic language files
LANG_GEN = \
+ runtime/doc/*-da.1 \
+ runtime/doc/*-da.UTF-8.1 \
runtime/doc/*-de.1 \
runtime/doc/*-de.UTF-8.1 \
runtime/doc/*-fr.1 \
@@ -907,6 +913,7 @@ LANG_SRC = \
src/po/check.vim \
src/po/cleanup.vim \
src/po/Makefile \
+ src/po/Make_all.mak \
src/po/Make_cyg.mak \
src/po/Make_ming.mak \
src/po/Make_mvc.mak \
diff --git a/nsis/icons/vim_16c.ico b/nsis/icons/vim_16c.ico
index 220b850..de18d1d 100644
--- a/nsis/icons/vim_16c.ico
+++ b/nsis/icons/vim_16c.ico
Binary files differ
diff --git a/nsis/icons/vim_uninst_16c.ico b/nsis/icons/vim_uninst_16c.ico
index 6b11f28..8196e68 100644
--- a/nsis/icons/vim_uninst_16c.ico
+++ b/nsis/icons/vim_uninst_16c.ico
Binary files differ
diff --git a/runtime/autoload/RstFold.vim b/runtime/autoload/RstFold.vim
new file mode 100644
index 0000000..5becb04
--- /dev/null
+++ b/runtime/autoload/RstFold.vim
@@ -0,0 +1,48 @@
+" Author: Antony Lee <anntzer.lee@gmail.com>
+" Description: Helper functions for reStructuredText syntax folding
+" Last Modified: 2018-01-07
+
+function s:CacheRstFold()
+ let closure = {'header_types': {}, 'max_level': 0, 'levels': {}}
+ function closure.Process(match) dict
+ let curline = getcurpos()[1]
+ if has_key(self.levels, curline - 1)
+ " For over+under-lined headers, the regex will match both at the
+ " overline and at the title itself; in that case, skip the second match.
+ return
+ endif
+ let lines = split(a:match, '\n')
+ let key = repeat(lines[-1][0], len(lines))
+ if !has_key(self.header_types, key)
+ let self.max_level += 1
+ let self.header_types[key] = self.max_level
+ endif
+ let self.levels[curline] = self.header_types[key]
+ endfunction
+ let save_cursor = getcurpos()
+ silent keeppatterns %s/\v^%(%(([=`:.'"~^_*+#-])\1+\n)?.{1,2}\n([=`:.'"~^_*+#-])\2+)|%(%(([=`:.''"~^_*+#-])\3{2,}\n)?.{3,}\n([=`:.''"~^_*+#-])\4{2,})$/\=closure.Process(submatch(0))/gn
+ call setpos('.', save_cursor)
+ let b:RstFoldCache = closure.levels
+endfunction
+
+function RstFold#GetRstFold()
+ if !has_key(b:, 'RstFoldCache')
+ call s:CacheRstFold()
+ endif
+ if has_key(b:RstFoldCache, v:lnum)
+ return '>' . b:RstFoldCache[v:lnum]
+ else
+ return '='
+ endif
+endfunction
+
+function RstFold#GetRstFoldText()
+ if !has_key(b:, 'RstFoldCache')
+ call s:CacheRstFold()
+ endif
+ let indent = repeat(' ', b:RstFoldCache[v:foldstart] - 1)
+ let thisline = getline(v:foldstart)
+ " For over+under-lined headers, skip the overline.
+ let text = thisline =~ '^\([=`:.''"~^_*+#-]\)\1\+$' ? getline(v:foldstart + 1) : thisline
+ return indent . text
+endfunction
diff --git a/runtime/autoload/csscomplete.vim b/runtime/autoload/csscomplete.vim
index 50048a3..f6c5a6c 100644
--- a/runtime/autoload/csscomplete.vim
+++ b/runtime/autoload/csscomplete.vim
@@ -4,7 +4,7 @@
" plus CSS Speech Module <http://www.w3.org/TR/css3-speech/>
" Maintainer: Kao, Wei-Ko(othree) ( othree AT gmail DOT com )
" Original Author: Mikolaj Machowski ( mikmach AT wp DOT pl )
-" Last Change: 2016 Jan 11
+" Last Change: 2018 Jul 02
let s:values = split("all additive-symbols align-content align-items align-self animation animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-timing-function backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-repeat background-size block-size border border-block-end border-block-end-color border-block-end-style border-block-end-width border-block-start border-block-start-color border-block-start-style border-block-start-width border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-inline-end border-inline-end-color border-inline-end-style border-inline-end-width border-inline-start border-inline-start-color border-inline-start-style border-inline-start-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-decoration-break box-shadow box-sizing break-after break-before break-inside caption-side clear clip clip-path color columns column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width content counter-increment counter-reset cue cue-before cue-after cursor direction display empty-cells fallback filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float font font-family font-feature-settings font-kerning font-language-override font-size font-size-adjust font-stretch font-style font-synthesis font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-ligatures font-variant-numeric font-variant-position font-weight grid grid-area grid-auto-columns grid-auto-flow grid-auto-position grid-auto-rows grid-column grid-column-start grid-column-end grid-row grid-row-start grid-row-end grid-template grid-template-areas grid-template-rows grid-template-columns height hyphens image-rendering image-resolution image-orientation ime-mode inline-size isolation justify-content left letter-spacing line-break line-height list-style list-style-image list-style-position list-style-type margin margin-block-end margin-block-start margin-bottom margin-inline-end margin-inline-start margin-left margin-right margin-top marks mask mask-type max-block-size max-height max-inline-size max-width max-zoom min-block-size min-height min-inline-size min-width min-zoom mix-blend-mode negative object-fit object-position offset-block-end offset-block-start offset-inline-end offset-inline-start opacity order orientation orphans outline outline-color outline-offset outline-style outline-width overflow overflow-wrap overflow-x overflow-y pad padding padding-block-end padding-block-start padding-bottom padding-inline-end padding-inline-start padding-left padding-right padding-top page-break-after page-break-before page-break-inside pause-before pause-after pause perspective perspective-origin pointer-events position prefix quotes range resize rest rest-before rest-after right ruby-align ruby-merge ruby-position scroll-behavior scroll-snap-coordinate scroll-snap-destination scroll-snap-points-x scroll-snap-points-y scroll-snap-type scroll-snap-type-x scroll-snap-type-y shape-image-threshold shape-margin shape-outside speak speak-as suffix symbols system table-layout tab-size text-align text-align-last text-combine-upright text-decoration text-decoration-color text-decoration-line text-emphasis text-emphasis-color text-emphasis-position text-emphasis-style text-indent text-orientation text-overflow text-rendering text-shadow text-transform text-underline-position top touch-action transform transform-box transform-origin transform-style transition transition-delay transition-duration transition-property transition-timing-function unicode-bidi unicode-range user-zoom vertical-align visibility voice-balance voice-duration voice-family voice-pitch voice-rate voice-range voice-stress voice-volume white-space widows width will-change word-break word-spacing word-wrap writing-mode z-index zoom")
@@ -19,7 +19,6 @@ function! csscomplete#CompleteCSS(findstart, base)
while start >= 0 && line[start - 1] =~ '\%(\k\|-\)'
let start -= 1
endwhile
- let b:after = line[compl_begin :]
let b:compl_context = line[0:compl_begin]
return start
endif
@@ -37,11 +36,14 @@ function! csscomplete#CompleteCSS(findstart, base)
" 5. if @ complete at-rule
" 6. if ! complete important
if exists("b:compl_context")
+ let line = getline('.')
+ let compl_begin = col('.') - 2
+ let after = line[compl_begin:]
let line = b:compl_context
- let after = b:after
unlet! b:compl_context
else
let line = a:base
+ let after = ''
endif
let res = []
diff --git a/runtime/autoload/spellfile.vim b/runtime/autoload/spellfile.vim
index e7fd1d8..886fd53 100644
--- a/runtime/autoload/spellfile.vim
+++ b/runtime/autoload/spellfile.vim
@@ -22,6 +22,7 @@ function! spellfile#LoadFile(lang)
endif
return
endif
+ let lang = tolower(a:lang)
" If the URL changes we try all files again.
if s:spellfile_URL != g:spellfile_URL
@@ -30,13 +31,13 @@ function! spellfile#LoadFile(lang)
endif
" I will say this only once!
- if has_key(s:donedict, a:lang . &enc)
+ if has_key(s:donedict, lang . &enc)
if &verbose
echomsg 'spellfile#LoadFile(): Tried this language/encoding before.'
endif
return
endif
- let s:donedict[a:lang . &enc] = 1
+ let s:donedict[lang . &enc] = 1
" Find spell directories we can write in.
let [dirlist, dirchoices] = spellfile#GetDirChoices()
@@ -57,14 +58,14 @@ function! spellfile#LoadFile(lang)
endif
endif
- let msg = 'Cannot find spell file for "' . a:lang . '" in ' . &enc
+ let msg = 'Cannot find spell file for "' . lang . '" in ' . &enc
let msg .= "\nDo you want me to try downloading it?"
if confirm(msg, "&Yes\n&No", 2) == 1
let enc = &encoding
if enc == 'iso-8859-15'
let enc = 'latin1'
endif
- let fname = a:lang . '.' . enc . '.spl'
+ let fname = lang . '.' . enc . '.spl'
" Split the window, read the file into a new buffer.
" Remember the buffer number, we check it below.
@@ -95,7 +96,7 @@ function! spellfile#LoadFile(lang)
let newbufnr = winbufnr(0)
endif
- let fname = a:lang . '.ascii.spl'
+ let fname = lang . '.ascii.spl'
echo 'Could not find it, trying ' . fname . '...'
call spellfile#Nread(fname)
if getline(2) !~ 'VIMspell'
diff --git a/runtime/autoload/xmlformat.vim b/runtime/autoload/xmlformat.vim
index 83ba49a..f227b5e 100644
--- a/runtime/autoload/xmlformat.vim
+++ b/runtime/autoload/xmlformat.vim
@@ -2,9 +2,8 @@
" Last Change: Thu, 22 May 2018 21:26:55 +0100
" Version: 0.1
" Author: Christian Brabandt <cb@256bit.org>
-" Script: http://www.vim.org/scripts/script.php?script_id=
+" Repository: https://github.com/chrisbra/vim-xml-ftplugin
" License: VIM License
-" GetLatestVimScripts: ???? 18 :AutoInstall: xmlformat.vim
" Documentation: see :h xmlformat.txt (TODO!)
" ---------------------------------------------------------------------
" Load Once: {{{1
diff --git a/runtime/doc/arabic.txt b/runtime/doc/arabic.txt
index 0572b85..2303a2b 100644
--- a/runtime/doc/arabic.txt
+++ b/runtime/doc/arabic.txt
@@ -319,4 +319,4 @@ There is one known minor bug,
No other bugs are known to exist.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index dfa46a9..8d1dca2 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -4,7 +4,7 @@
VIM REFERENCE MANUAL by Bram Moolenaar
-Automatic commands *autocommand*
+Automatic commands *autocommand* *autocommands*
For a basic explanation, see section |40.3| in the user manual.
@@ -345,7 +345,7 @@ Name triggered by ~
when popup menu is not visible
|TextChangedP| after a change was made to the text in Insert mode
when popup menu visible
-|TextYankPost| after text is yanked or deleted
+|TextYankPost| after text has been yanked or deleted
|ColorSchemePre| before loading a color scheme
|ColorScheme| after loading a color scheme
@@ -1593,4 +1593,4 @@ This will write the file without triggering the autocommands defined by the
gzip plugin.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/change.txt b/runtime/doc/change.txt
index 05c18e6..1ad2930 100644
--- a/runtime/doc/change.txt
+++ b/runtime/doc/change.txt
@@ -177,8 +177,6 @@ gR Enter Virtual Replace mode: Each character you type
<Tab> may replace several characters at once.
Repeat the entered text [count]-1 times. See
|Virtual-Replace-mode| for more details.
- {not available when compiled without the |+vreplace|
- feature}
*c*
["x]c{motion} Delete {motion} text [into register x] and start
@@ -303,8 +301,6 @@ gr{char} Replace the virtual characters under the cursor with
space. See |gR| and |Virtual-Replace-mode| for more
details. As with |r| a count may be given.
{char} can be entered like with |r|.
- {not available when compiled without the |+vreplace|
- feature}
*digraph-arg*
The argument for Normal mode commands like |r| and |t| is a single character.
@@ -987,6 +983,11 @@ This replaces each 'E' character with a euro sign. Read more in |<Char->|.
this (that's a good habit anyway).
`:retab!` may also change a sequence of spaces by
<Tab> characters, which can mess up a printf().
+ If the |+vartabs| feature is enabled then a list of
+ tab widths separated by commas may be used in place of
+ a single tabstop. Each value in the list represents
+ the width of one tabstop, except the final value which
+ applies to all following tabstops.
{not in Vi}
*retab-example*
@@ -1879,4 +1880,4 @@ The sorting can be interrupted, but if you interrupt it too late in the
process you may end up with duplicated lines. This also depends on the system
library function used.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/channel.txt b/runtime/doc/channel.txt
index 72887fe..4cc3625 100644
--- a/runtime/doc/channel.txt
+++ b/runtime/doc/channel.txt
@@ -816,4 +816,4 @@ the cursor to the last line. "A" will move to the end of the line, "I" to the
start of the line.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/cmdline.txt b/runtime/doc/cmdline.txt
index ae364c3..df18ec6 100644
--- a/runtime/doc/cmdline.txt
+++ b/runtime/doc/cmdline.txt
@@ -1164,4 +1164,4 @@ The character used for the pattern indicates the type of command-line:
@ string for |input()|
- text for |:insert| or |:append|
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/debug.txt b/runtime/doc/debug.txt
index 6d2cea5..b03bf15 100644
--- a/runtime/doc/debug.txt
+++ b/runtime/doc/debug.txt
@@ -172,4 +172,4 @@ Visual C++ 2005 Express Edition can be downloaded for free from:
http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
=========================================================================
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/debugger.txt b/runtime/doc/debugger.txt
index 9aa2fb8..3370cf0 100644
--- a/runtime/doc/debugger.txt
+++ b/runtime/doc/debugger.txt
@@ -139,4 +139,4 @@ Programming Environment.
For Sun NetBeans support see |netbeans|.
- vim:tw=78:sw=4:ts=8:ft=help:norl:
+ vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/develop.txt b/runtime/doc/develop.txt
index 20a623f..b1b3cc4 100644
--- a/runtime/doc/develop.txt
+++ b/runtime/doc/develop.txt
@@ -563,4 +563,4 @@ long 32 or 64 bit signed, can hold a pointer
Note that some compilers cannot handle long lines or strings. The C89
standard specifies a limit of 509 characters.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/diff.txt b/runtime/doc/diff.txt
index e263e6b..502fb49 100644
--- a/runtime/doc/diff.txt
+++ b/runtime/doc/diff.txt
@@ -441,4 +441,4 @@ evaluating 'patchexpr'. This hopefully avoids that files in the current
directory are accidentally patched. Vim will also delete files starting with
v:fname_in and ending in ".rej" and ".orig".
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/digraph.txt b/runtime/doc/digraph.txt
index 2a23222..62f23a2 100644
--- a/runtime/doc/digraph.txt
+++ b/runtime/doc/digraph.txt
@@ -1488,4 +1488,4 @@ char digraph hex dec official name ~
ſt ft FB05 64261 LATIN SMALL LIGATURE LONG S T
st st FB06 64262 LATIN SMALL LIGATURE ST
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index e553d46..04bf4b1 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -901,8 +901,8 @@ flag is used for the ":substitute" command to avoid an error for files where
Note: When the 'write' option is off, you are not able to write any file.
*:w* *:write*
- *E502* *E503* *E504* *E505*
- *E512* *E514* *E667* *E796* *E949*
+ *E502* *E503* *E504* *E505*
+ *E512* *E514* *E667* *E796* *E949*
:w[rite] [++opt] Write the whole buffer to the current file. This is
the normal way to save changes to a file. It fails
when the 'readonly' option is set or when there is
@@ -1747,4 +1747,4 @@ There are three different types of searching:
currently work with 'path' items that contain a URL or use the double star
with depth limiter (/usr/**2) or upward search (;) notations.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 2243892..2c9c114 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -2108,6 +2108,7 @@ cscope_connection([{num}, {dbpath} [, {prepend}]])
cursor({lnum}, {col} [, {off}])
Number move cursor to {lnum}, {col}, {off}
cursor({list}) Number move cursor to position in {list}
+debugbreak({pid}) Number interrupt process being debugged
deepcopy({expr} [, {noref}]) any make a full copy of {expr}
delete({fname} [, {flags}]) Number delete the file or directory {fname}
deletebufline({expr}, {first}[, {last}])
@@ -2195,7 +2196,7 @@ gettabvar({nr}, {varname} [, {def}])
any variable {varname} in tab {nr} or {def}
gettabwinvar({tabnr}, {winnr}, {name} [, {def}])
any {name} in {winnr} in tab page {tabnr}
-getwininfo([{winid}]) List list of windows
+getwininfo([{winid}]) List list of info about each window
getwinpos([{timeout}]) List X and Y coord in pixels of the Vim window
getwinposx() Number X coord in pixels of the Vim window
getwinposy() Number Y coord in pixels of the Vim window
@@ -3480,6 +3481,11 @@ cursor({list})
position within a <Tab> or after the last character.
Returns 0 when the position could be set, -1 otherwise.
+debugbreak({pid}) *debugbreak()*
+ Specifically used to interrupt a program being debugged. It
+ will cause process {pid} to get a SIGTRAP. Behavior for other
+ processes is undefined. See |terminal-debugger|.
+ {only available on MS-Windows}
deepcopy({expr} [, {noref}]) *deepcopy()* *E698*
Make a copy of {expr}. For Numbers and Strings this isn't
@@ -3623,6 +3629,7 @@ executable({expr}) *executable()*
1 exists
0 does not exist
-1 not implemented on this system
+ |exepath()| can be used to get the full path of an executable.
execute({command} [, {silent}]) *execute()*
Execute an Ex command or commands and return the output as a
@@ -4929,6 +4936,41 @@ gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
:let list_is_on = gettabwinvar(1, 2, '&list')
:echo "myvar = " . gettabwinvar(3, 1, 'myvar')
<
+ To obtain all window-local variables use: >
+ gettabwinvar({tabnr}, {winnr}, '&')
+
+getwininfo([{winid}]) *getwininfo()*
+ Returns information about windows as a List with Dictionaries.
+
+ If {winid} is given Information about the window with that ID
+ is returned. If the window does not exist the result is an
+ empty list.
+
+ Without {winid} information about all the windows in all the
+ tab pages is returned.
+
+ Each List item is a Dictionary with the following entries:
+ bufnr number of buffer in the window
+ height window height (excluding winbar)
+ loclist 1 if showing a location list
+ {only with the +quickfix feature}
+ quickfix 1 if quickfix or location list window
+ {only with the +quickfix feature}
+ terminal 1 if a terminal window
+ {only with the +terminal feature}
+ tabnr tab page number
+ variables a reference to the dictionary with
+ window-local variables
+ width window width
+ winbar 1 if the window has a toolbar, 0
+ otherwise
+ wincol leftmost screen column of the window,
+ col from |win_screenpos()|
+ winid |window-ID|
+ winnr window number
+ winrow topmost screen column of the window,
+ row from |win_screenpos()|
+
getwinpos([{timeout}]) *getwinpos()*
The result is a list with two numbers, the result of
getwinposx() and getwinposy() combined:
@@ -4962,37 +5004,6 @@ getwinposy() The result is a Number, which is the Y coordinate in pixels of
The result will be -1 if the information is not available.
The value can be used with `:winpos`.
-getwininfo([{winid}]) *getwininfo()*
- Returns information about windows as a List with Dictionaries.
-
- If {winid} is given Information about the window with that ID
- is returned. If the window does not exist the result is an
- empty list.
-
- Without {winid} information about all the windows in all the
- tab pages is returned.
-
- Each List item is a Dictionary with the following entries:
- bufnr number of buffer in the window
- height window height (excluding winbar)
- winbar 1 if the window has a toolbar, 0
- otherwise
- loclist 1 if showing a location list
- {only with the +quickfix feature}
- quickfix 1 if quickfix or location list window
- {only with the +quickfix feature}
- terminal 1 if a terminal window
- {only with the +terminal feature}
- tabnr tab page number
- variables a reference to the dictionary with
- window-local variables
- width window width
- winid |window-ID|
- winnr window number
-
- To obtain all window-local variables use: >
- gettabwinvar({tabnr}, {winnr}, '&')
-
getwinvar({winnr}, {varname} [, {def}]) *getwinvar()*
Like |gettabwinvar()| for the current tabpage.
Examples: >
@@ -6005,7 +6016,7 @@ match({expr}, {pat} [, {start} [, {count}]]) *match()*
the pattern. 'smartcase' is NOT used. The matching is always
done like 'magic' is set and 'cpoptions' is empty.
- *matchadd()* *E798* *E799* *E801*
+ *matchadd()* *E798* *E799* *E801* *E957*
matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
Defines a pattern to be highlighted in the current window (a
"match"). It will be highlighted with {group}. Returns an
@@ -6044,6 +6055,8 @@ matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
conceal Special character to show instead of the
match (only for |hl-Conceal| highlighted
matches, see |:syn-cchar|)
+ window Instead of the current window use the
+ window with this number or window ID.
The number of matches is not limited, as it is the case with
the |:match| commands.
@@ -6211,32 +6224,38 @@ mode([expr]) Return a string that indicates the current mode.
a non-empty String (|non-zero-arg|), then the full mode is
returned, otherwise only the first letter is returned.
- n Normal, Terminal-Normal
- no Operator-pending
- v Visual by character
- V Visual by line
- CTRL-V Visual blockwise
- s Select by character
- S Select by line
- CTRL-S Select blockwise
- i Insert
- ic Insert mode completion |compl-generic|
- ix Insert mode |i_CTRL-X| completion
- R Replace |R|
- Rc Replace mode completion |compl-generic|
- Rv Virtual Replace |gR|
- Rx Replace mode |i_CTRL-X| completion
- c Command-line editing
- cv Vim Ex mode |gQ|
- ce Normal Ex mode |Q|
- r Hit-enter prompt
- rm The -- more -- prompt
- r? A |:confirm| query of some sort
- ! Shell or external command is executing
- t Terminal-Job mode: keys go to the job
+ n Normal, Terminal-Normal
+ no Operator-pending
+ niI Normal using |i_CTRL-O| in |Insert-mode|
+ niR Normal using |i_CTRL-O| in |Replace-mode|
+ niV Normal using |i_CTRL-O| in |Virtual-Replace-mode|
+ v Visual by character
+ V Visual by line
+ CTRL-V Visual blockwise
+ s Select by character
+ S Select by line
+ CTRL-S Select blockwise
+ i Insert
+ ic Insert mode completion |compl-generic|
+ ix Insert mode |i_CTRL-X| completion
+ R Replace |R|
+ Rc Replace mode completion |compl-generic|
+ Rv Virtual Replace |gR|
+ Rx Replace mode |i_CTRL-X| completion
+ c Command-line editing
+ cv Vim Ex mode |gQ|
+ ce Normal Ex mode |Q|
+ r Hit-enter prompt
+ rm The -- more -- prompt
+ r? A |:confirm| query of some sort
+ ! Shell or external command is executing
+ t Terminal-Job mode: keys go to the job
This is useful in the 'statusline' option or when used
with |remote_expr()| In most other places it always returns
"c" or "n".
+ Note that in the future more modes and more specific modes may
+ be added. It's better not to compare the whole string but only
+ the leading character(s).
Also see |visualmode()|.
mzeval({expr}) *mzeval()*
@@ -7047,6 +7066,7 @@ searchpair({start}, {middle}, {end} [, {flags} [, {skip}
When evaluating {skip} causes an error the search is aborted
and -1 returned.
{skip} can be a string, a lambda, a funcref or a partial.
+ Anything else makes the function fail.
For {stopline} and {timeout} see |search()|.
@@ -8688,6 +8708,8 @@ test_override({name}, {val}) *test_override()*
redraw disable the redrawing() function
char_avail disable the char_avail() function
starting reset the "starting" variable, see below
+ nfa_fail makes the NFA regexp engine fail to force a
+ fallback to the old engine
ALL clear all overrides ({val} is not used)
"starting" is to be used when a test should behave like
@@ -9037,7 +9059,7 @@ win_id2win({expr}) *win_id2win()*
win_screenpos({nr}) *win_screenpos()*
Return the screen position of window {nr} as a list with two
numbers: [row, col]. The first window always has position
- [1, 1].
+ [1, 1], unless there is a tabline, then it is [2, 1].
{nr} can be the window number or the |window-ID|.
Return [0, 0] if the window cannot be found in the current
tabpage.
@@ -9249,6 +9271,7 @@ amiga Amiga version of Vim.
arabic Compiled with Arabic support |Arabic|.
arp Compiled with ARP support (Amiga).
autocmd Compiled with autocommand support. |autocommand|
+autochdir Compiled with support for 'autochdir'
autoservername Automatically enable |clientserver|
balloon_eval Compiled with |balloon-eval| support.
balloon_multiline GUI supports multiline balloons.
@@ -11566,7 +11589,7 @@ The sandbox is also used for the |:sandbox| command.
These items are not allowed in the sandbox:
- changing the buffer text
- - defining or changing mapping, autocommands, functions, user commands
+ - defining or changing mapping, autocommands, user commands
- setting certain options (see |option-summary|)
- setting certain v: variables (see |v:var|) *E794*
- executing a shell command
@@ -11588,6 +11611,7 @@ location. Insecure in this context are:
- sourcing a .vimrc or .exrc in the current directory
- while executing in the sandbox
- value coming from a modeline
+- executing a function that was defined in the sandbox
Note that when in the sandbox and saving an option value and restoring it, the
option will still be marked as it was set in the sandbox.
@@ -11630,4 +11654,4 @@ without the |+eval| feature.
Find more information in the file src/testdir/README.txt.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/evim-ja.UTF-8.1 b/runtime/doc/evim-ja.UTF-8.1
index 1b7a657..1a03527 100644
--- a/runtime/doc/evim-ja.UTF-8.1
+++ b/runtime/doc/evim-ja.UTF-8.1
@@ -25,11 +25,9 @@ MS-Windows のメモ帳のような動作です。
.PP
引数や Vim についての詳細は vim(1) を参照してください。
.PP
-オプション 'insertmode' が設定され、テキストを直接、入力できるようになりま
-す。
+オプション 'insertmode' が設定され、テキストを直接、入力できるようになります。
.br
-コピーとペーストのキー操作が MS-Windows と同じになるように、マップが設定され
-ます。
+コピーとペーストのキー操作が MS-Windows と同じになるように、マップが設定されます。
CTRL-X が切り取り、CTRL-C がコピー、CTRL-V がペーストです。
標準の CTRL-V の操作は CTRL-Q に割り当てられます。
.SH オプション
@@ -41,8 +39,7 @@ eVim の初期化スクリプト。
.SH 別名
evim は "gumbies のための Vim" とも呼ばれています。
evim を使っているあなたはきっと、頭にハンカチをかぶっているのです。
-(訳注: gumbies は Monty Python に登場するおもしろ集団。ハンカチをかぶっ
-ている。)
+(訳注: gumbies は Monty Python に登場するおもしろ集団。ハンカチをかぶっている。)
.SH 関連項目
vim(1)
.SH 著者
diff --git a/runtime/doc/evim.man b/runtime/doc/evim.man
new file mode 100644
index 0000000..8b8db81
--- /dev/null
+++ b/runtime/doc/evim.man
@@ -0,0 +1,52 @@
+EVIM(1) EVIM(1)
+
+
+
+NAME
+ evim - easy Vim, edit a file with Vim and setup for modeless editing
+
+SYNOPSIS
+ evim [options] [file ..]
+ eview
+
+DESCRIPTION
+ eVim starts Vim and sets options to make it behave like a modeless edi-
+ tor. This is still Vim but used as a point-and-click editor. This
+ feels a lot like using Notepad on MS-Windows. eVim will always run in
+ the GUI, to enable the use of menus and toolbar.
+
+ Only to be used for people who really can't work with Vim in the normal
+ way. Editing will be much less efficient.
+
+ eview is the same, but starts in read-only mode. It works just like
+ evim -R.
+
+ See vim(1) for details about Vim, options, etc.
+
+ The 'insertmode' option is set to be able to type text directly.
+ Mappings are setup to make Copy and Paste work with the MS-Windows
+ keys. CTRL-X cuts text, CTRL-C copies text and CTRL-V pastes text.
+ Use CTRL-Q to obtain the original meaning of CTRL-V.
+
+OPTIONS
+ See vim(1).
+
+FILES
+ /usr/local/lib/vim/evim.vim
+ The script loaded to initialize eVim.
+
+AKA
+ Also Known As "Vim for gumbies". When using evim you are expected to
+ take a handkerchief, make a knot in each corner and wear it on your
+ head.
+
+SEE ALSO
+ vim(1)
+
+AUTHOR
+ Most of Vim was made by Bram Moolenaar, with a lot of help from others.
+ See the Help/Credits menu.
+
+
+
+ 2002 February 16 EVIM(1)
diff --git a/runtime/doc/farsi.txt b/runtime/doc/farsi.txt
index 1bb9f20..493714e 100644
--- a/runtime/doc/farsi.txt
+++ b/runtime/doc/farsi.txt
@@ -266,4 +266,4 @@ changes made in the current line.
For more information about the bugs refer to rileft.txt.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/filetype.txt b/runtime/doc/filetype.txt
index f41dc70..b08e3d7 100644
--- a/runtime/doc/filetype.txt
+++ b/runtime/doc/filetype.txt
@@ -320,8 +320,8 @@ then Vim will load all plugins in these directories and below:
Note that the last one is the value of $VIMRUNTIME which has been expanded.
Note that when using a plugin manager or |packages| many directories will be
-added to 'runtimepath'. These plugins earch require their own directory,
-don't put them directly in ~/.vim/plugin.
+added to 'runtimepath'. These plugins each require their own directory, don't
+put them directly in ~/.vim/plugin.
What if it looks like your plugin is not being loaded? You can find out what
happens when Vim starts up by using the |-V| argument: >
@@ -695,4 +695,4 @@ The mappings can be disabled with: >
<
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/fold.txt b/runtime/doc/fold.txt
index ad3f514..c3ee97e 100644
--- a/runtime/doc/fold.txt
+++ b/runtime/doc/fold.txt
@@ -601,4 +601,4 @@ used. Otherwise the values from the window where the buffer was edited last
are used.
==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/ft_sql.txt b/runtime/doc/ft_sql.txt
index 9819c06..f461b7e 100644
--- a/runtime/doc/ft_sql.txt
+++ b/runtime/doc/ft_sql.txt
@@ -777,4 +777,4 @@ Setting the filetype back to Perl sets all the usual "perl" related items back
as they were.
-vim:tw=78:ts=8:ft=help:norl:
+vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index c30aa33..603a4d4 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -1075,4 +1075,4 @@ careful!
For the Win32 GUI the external commands are executed in a separate window.
See |gui-shell-win32|.
- vim:tw=78:sw=4:ts=8:ft=help:norl:
+ vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/gui_w32.txt b/runtime/doc/gui_w32.txt
index 9d676ea..15dd275 100644
--- a/runtime/doc/gui_w32.txt
+++ b/runtime/doc/gui_w32.txt
@@ -442,7 +442,7 @@ with the Intellimouse driver 2.2 and when "Universal Scrolling" is turned on.
XPM support *w32-xpm-support*
-Gvim can be build on MS-Windows with support for XPM files. |+xpm_w32|
+GVim can be build on MS-Windows with support for XPM files. |+xpm_w32|
See the Make_mvc.mak file for instructions, search for XPM.
To try out if XPM support works do this: >
@@ -451,4 +451,4 @@ To try out if XPM support works do this: >
:exe 'sign place 1 line=1 name=vimxpm file=' . expand('%:p')
<
- vim:tw=78:sw=4:ts=8:ft=help:norl:
+ vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/gui_x11.txt b/runtime/doc/gui_x11.txt
index 8a5e9bf..6b7a773 100644
--- a/runtime/doc/gui_x11.txt
+++ b/runtime/doc/gui_x11.txt
@@ -721,4 +721,4 @@ and use CLIPBOARD ("+) for cut/copy/paste operations. You thus have access to
both by choosing to use either of the "* or "+ registers.
- vim:tw=78:sw=4:ts=8:ft=help:norl:
+ vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/hangulin.txt b/runtime/doc/hangulin.txt
index 56f188b..708cfe9 100644
--- a/runtime/doc/hangulin.txt
+++ b/runtime/doc/hangulin.txt
@@ -109,4 +109,4 @@ Send comments, patches and suggestions to:
SungHyun Nam <goweol@gmail.com>
Chi-Deok Hwang <...>
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/hebrew.txt b/runtime/doc/hebrew.txt
index 5400b49..f2c3a3d 100644
--- a/runtime/doc/hebrew.txt
+++ b/runtime/doc/hebrew.txt
@@ -139,4 +139,4 @@ The result is that all Hebrew characters are displayed as ~x. To solve this
problem, set isprint=@,128-255.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/help.txt b/runtime/doc/help.txt
index 4c8eb94..239de9d 100644
--- a/runtime/doc/help.txt
+++ b/runtime/doc/help.txt
@@ -225,4 +225,4 @@ will try to find help for it. Especially for options in single quotes, e.g.
'compatible'.
------------------------------------------------------------------------------
- vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:ft=help:norl:
+ vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/helphelp.txt b/runtime/doc/helphelp.txt
index 29941c1..f6c6ab7 100644
--- a/runtime/doc/helphelp.txt
+++ b/runtime/doc/helphelp.txt
@@ -370,4 +370,4 @@ highlighting. So do these:
You can find the details in $VIMRUNTIME/syntax/help.vim
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/howto.txt b/runtime/doc/howto.txt
index f697310..26d611e 100644
--- a/runtime/doc/howto.txt
+++ b/runtime/doc/howto.txt
@@ -93,4 +93,4 @@ How to ... *howdoi* *how-do-i* *howto* *how-to*
|2html.vim| convert a colored file to HTML
|less| use Vim like less or more with syntax highlighting
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/if_cscop.txt b/runtime/doc/if_cscop.txt
index cf2aff2..ba0f1d5 100644
--- a/runtime/doc/if_cscop.txt
+++ b/runtime/doc/if_cscop.txt
@@ -484,4 +484,4 @@ For a cscope version for Win32 see (seems abandoned):
Win32 support was added by Sergey Khorev <sergey.khorev@gmail.com>. Contact
him if you have Win32-specific issues.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/if_lua.txt b/runtime/doc/if_lua.txt
index 51e332d..a68f972 100644
--- a/runtime/doc/if_lua.txt
+++ b/runtime/doc/if_lua.txt
@@ -125,9 +125,9 @@ Vim evaluation and command execution, and others.
Non-numeric keys are not used to initialize
the list. See also |lua-eval| for conversion
rules. Example: >
- :lua t = {math.pi, false, say = 'hi'}
- :echo luaeval('vim.list(t)')
- :" [3.141593, 0], 'say' is ignored
+ :lua t = {math.pi, false, say = 'hi'}
+ :echo luaeval('vim.list(t)')
+ :" [3.141593, v:false], 'say' is ignored
<
vim.dict([arg]) Returns an empty dictionary or, if "arg" is a
Lua table, returns a dict d such that d[k] =
@@ -136,13 +136,14 @@ Vim evaluation and command execution, and others.
strings. Keys that are not strings are not
used to initialize the dictionary. See also
|lua-eval| for conversion rules. Example: >
- :lua t = {math.pi, false, say = 'hi'}
- :echo luaeval('vim.dict(t)')
- :" {'say': 'hi'}, numeric keys ignored
+ :lua t = {math.pi, false, say = 'hi'}
+ :echo luaeval('vim.dict(t)')
+ :" {'1': 3.141593, '2': v:false,
+ :" 'say': 'hi'}
<
vim.funcref({name}) Returns a Funcref to function {name} (see
|Funcref|). It is equivalent to Vim's
- "function". NOT IMPLEMENTED YET
+ function().
vim.buffer([arg]) If "arg" is a number, returns buffer with
number "arg" in the buffer list or, if "arg"
@@ -166,7 +167,7 @@ Vim evaluation and command execution, and others.
or window, respectively. Examples: >
:lua l = vim.list()
:lua print(type(l), vim.type(l))
- :" userdata list
+ :" list
<
vim.command({cmd}) Executes the vim (ex-mode) command {cmd}.
Examples: >
diff --git a/runtime/doc/if_mzsch.txt b/runtime/doc/if_mzsch.txt
index f118b17..9d27683 100644
--- a/runtime/doc/if_mzsch.txt
+++ b/runtime/doc/if_mzsch.txt
@@ -312,4 +312,4 @@ MzScheme's raco command:
raco pkg install cext-lib # raco ctool command
<
======================================================================
- vim:tw=78:ts=8:sts=4:ft=help:norl:
+ vim:tw=78:ts=8:noet:sts=4:ft=help:norl:
diff --git a/runtime/doc/if_ole.txt b/runtime/doc/if_ole.txt
index 4ec9ac5..e734df9 100644
--- a/runtime/doc/if_ole.txt
+++ b/runtime/doc/if_ole.txt
@@ -202,4 +202,4 @@ In Vim >
[.Net remarks provided by Dave Fishburn and Brian Sturk]
==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/if_perl.txt b/runtime/doc/if_perl.txt
index a06954e..b82ee83 100644
--- a/runtime/doc/if_perl.txt
+++ b/runtime/doc/if_perl.txt
@@ -303,4 +303,4 @@ version of the shared library must match the Perl version Vim was compiled
with.
==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/if_pyth.txt b/runtime/doc/if_pyth.txt
index 89baef4..30a3a72 100644
--- a/runtime/doc/if_pyth.txt
+++ b/runtime/doc/if_pyth.txt
@@ -924,4 +924,4 @@ If you have more than one version of Python 3, you need to link python3 to the
one you prefer, before running configure.
==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/if_ruby.txt b/runtime/doc/if_ruby.txt
index 1b4fd40..b140476 100644
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -145,7 +145,7 @@ self[{n}] Returns the buffer object for the number {n}. The first number
Methods:
-name Returns the name of the buffer.
+name Returns the full name of the buffer.
number Returns the number of the buffer.
count Returns the number of lines.
length Returns the number of lines.
@@ -181,6 +181,7 @@ height = {n} Sets the window height to {n}.
width Returns the width of the window.
width = {n} Sets the window width to {n}.
cursor Returns a [row, col] array for the cursor position.
+ First line number is 1 and first column number is 0.
cursor = [{row}, {col}]
Sets the cursor position to {row} and {col}.
@@ -233,4 +234,4 @@ version of the shared library must match the Ruby version Vim was compiled
with.
==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/if_sniff.txt b/runtime/doc/if_sniff.txt
index cf6ed1c..d0e16a8 100644
--- a/runtime/doc/if_sniff.txt
+++ b/runtime/doc/if_sniff.txt
@@ -8,4 +8,4 @@
The SNiFF+ support was removed at patch 7.4.1433. If you want to check it out
sync to before that.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/if_tcl.txt b/runtime/doc/if_tcl.txt
index 979a19b..e822dfd 100644
--- a/runtime/doc/if_tcl.txt
+++ b/runtime/doc/if_tcl.txt
@@ -544,4 +544,4 @@ of DYNAMIC_TCL_DLL file what was specified at compile time. The version of
the shared library must match the Tcl version Vim was compiled with.
==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/indent.txt b/runtime/doc/indent.txt
index 180d932..54fb526 100644
--- a/runtime/doc/indent.txt
+++ b/runtime/doc/indent.txt
@@ -1156,4 +1156,4 @@ indent for a continuation line, a line that starts with a backslash: >
Three times shiftwidth is the default value.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/index.txt b/runtime/doc/index.txt
index f569ec5..1a0d225 100644
--- a/runtime/doc/index.txt
+++ b/runtime/doc/index.txt
@@ -1657,4 +1657,4 @@ tag command action ~
|:~| :~ repeat last ":substitute"
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/insert.txt b/runtime/doc/insert.txt
index 0aeac14..e145cac 100644
--- a/runtime/doc/insert.txt
+++ b/runtime/doc/insert.txt
@@ -1535,7 +1535,7 @@ phpFunctions.
If you wish non-filetype syntax items to also be included, you can use a
regular expression syntax (added in version 13.0 of
-autoload\syntaxcomplete.vim) to add items. Looking at the output from
+autoload/syntaxcomplete.vim) to add items. Looking at the output from
":syntax list" while editing a PHP file I can see some of these entries: >
htmlArg,htmlTag,htmlTagName,javaScriptStatement,javaScriptGlobalObjects
@@ -2005,4 +2005,4 @@ self explanatory. Using the long or the short version depends on the
[READ ERRORS] not all of the file could be read
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index 8325bb3..a000482 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -906,4 +906,4 @@ buffer lines logical lines window lines screen lines ~
6. ~
==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 18b61df..d6dbd50 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1552,4 +1552,4 @@ local to the script and use mappings local to the script. When the user
invokes the user command, it will run in the context of the script it was
defined in. This matters if |<SID>| is used in a command.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/mbyte.txt b/runtime/doc/mbyte.txt
index 99ce10f..24fed6d 100644
--- a/runtime/doc/mbyte.txt
+++ b/runtime/doc/mbyte.txt
@@ -1467,4 +1467,4 @@ Contributions specifically for the multi-byte features by:
Taro Muraoka <koron@tka.att.ne.jp>
Yasuhiro Matsumoto <mattn@mail.goo.ne.jp>
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index b4a72ff..c23ae65 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -866,4 +866,4 @@ The |g<| command can be used to see the last page of previous command output.
This is especially useful if you accidentally typed <Space> at the hit-enter
prompt.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/mlang.txt b/runtime/doc/mlang.txt
index 3d590e0..4d85bbd 100644
--- a/runtime/doc/mlang.txt
+++ b/runtime/doc/mlang.txt
@@ -210,4 +210,4 @@ a message adapt to language preferences of the user, >
:endif
<
- vim:tw=78:sw=4:ts=8:ft=help:norl:
+ vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index 25d87cf..b210520 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1019,12 +1019,13 @@ These commands are not marks themselves, but jump to a mark:
==============================================================================
8. Jumps *jump-motions*
-A "jump" is one of the following commands: "'", "`", "G", "/", "?", "n",
-"N", "%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and
-the commands that start editing a new file. If you make the cursor "jump"
-with one of these commands, the position of the cursor before the jump is
+A "jump" is a command that normally moves the cursor several lines away. If
+you make the cursor "jump" the position of the cursor before the jump is
remembered. You can return to that position with the "''" and "``" command,
-unless the line containing that position was changed or deleted.
+unless the line containing that position was changed or deleted. The
+following commands are "jump" commands: "'", "`", "G", "/", "?", "n", "N",
+"%", "(", ")", "[[", "]]", "{", "}", ":s", ":tag", "L", "M", "H" and the
+commands that start editing a new file.
*CTRL-O*
CTRL-O Go to [count] Older cursor position in jump list
@@ -1163,7 +1164,7 @@ remembered.
*:changes*
:changes Print the change list. A ">" character indicates the
current position. Just after a change it is below the
- newest entry, indicating that "g;" takes you to the
+ newest entry, indicating that `g;` takes you to the
newest entry position. The first column indicates the
count needed to take you to this position. Example:
@@ -1173,8 +1174,8 @@ remembered.
1 14 54 the latest changed line
>
- The "3g;" command takes you to line 9. Then the
- output of ":changes is:
+ The `3g;` command takes you to line 9. Then the
+ output of `:changes` is:
change line col text ~
> 0 9 8 bla bla bla
@@ -1340,4 +1341,4 @@ L To line [count] from bottom of window (default: Last
position is in a status line, that window is made the
active window and the cursor is not moved. {not in Vi}
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/netbeans.txt b/runtime/doc/netbeans.txt
index 3e99f8b..61e58c2 100644
--- a/runtime/doc/netbeans.txt
+++ b/runtime/doc/netbeans.txt
@@ -409,9 +409,9 @@ defineAnnoType typeNum typeName tooltip glyphFile fg bg
Vim will define a sign for the annotation.
When color is a number, this is the "#rrggbb" Red, Green and
Blue values of the color (see |gui-colors|) and the
- highlighting is only defined for GVim.
+ highlighting is only defined for gVim.
When color is a name, this color is defined both for Vim
- running in a color terminal and for GVim.
+ running in a color terminal and for gVim.
When both "fg" and "bg" are "none" no line highlighting is
used (new in version 2.1).
When "glyphFile" is empty, no text sign is used (new in
@@ -1007,4 +1007,4 @@ Expert tab MIME Type property. NetBeans is MIME oriented and the External
Editor will only open MIME types specified in this property.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index d37fa64..8645c47 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -830,7 +830,9 @@ A jump table for the options with a short description can be found at |Q_op|.
{not in Vi}
When a file has been detected to have been changed outside of Vim and
it has not been changed inside of Vim, automatically read it again.
- When the file has been deleted this is not done. |timestamp|
+ When the file has been deleted this is not done, so you have the text
+ from before it was deleted. When it appears again then it is read.
+ |timestamp|
If this option has a local value, use this command to switch back to
using the global value: >
:set autoread<
@@ -2085,10 +2087,10 @@ A jump table for the options with a short description can be found at |Q_op|.
See also |map_bar|.
*cpo-B*
B A backslash has no special meaning in mappings,
- abbreviations and the "to" part of the menu commands.
- Remove this flag to be able to use a backslash like a
- CTRL-V. For example, the command ":map X \<Esc>"
- results in X being mapped to:
+ abbreviations, user commands and the "to" part of the
+ menu commands. Remove this flag to be able to use a
+ backslash like a CTRL-V. For example, the command
+ ":map X \<Esc>" results in X being mapped to:
'B' included: "\^[" (^[ is a real <Esc>)
'B' excluded: "<Esc>" (5 characters)
('<' excluded in both cases)
@@ -5233,7 +5235,10 @@ A jump table for the options with a short description can be found at |Q_op|.
Running into the limit often means that the pattern is very
inefficient or too complex. This may already happen with the pattern
"\(.\)*" on a very long line. ".*" works much better.
- Vim may run out of memory before hitting the 'maxmempattern' limit.
+ Might also happen on redraw, when syntax rules try to match a complex
+ text structure.
+ Vim may run out of memory before hitting the 'maxmempattern' limit, in
+ which case you get an "Out of memory" error instead.
*'maxmemtot'* *'mmt'*
'maxmemtot' 'mmt' number (default between 2048 and 10240 (system
@@ -7172,6 +7177,10 @@ A jump table for the options with a short description can be found at |Q_op|.
set.
NOTE: This option is set to 0 when 'compatible' is set.
+ If Vim is compiled with the |+vartabs| feature then the value of
+ 'softtabstop' will be ignored if |'varsofttabstop'| is set to
+ anything other than an empty string.
+
*'spell'* *'nospell'*
'spell' boolean (default off)
local to window
@@ -7723,6 +7732,10 @@ A jump table for the options with a short description can be found at |Q_op|.
though. Otherwise aligned comments will be wrong when 'tabstop' is
changed.
+ If Vim is compiled with the |+vartabs| feature then the value of
+ 'tabstop' will be ignored if |'vartabstop'| is set to anything other
+ than an empty string.
+
*'tagbsearch'* *'tbs'* *'notagbsearch'* *'notbs'*
'tagbsearch' 'tbs' boolean (default on)
global
@@ -8468,6 +8481,44 @@ A jump table for the options with a short description can be found at |Q_op|.
written to disk (see |crash-recovery|). Also used for the
|CursorHold| autocommand event.
+ *'varsofttabstop'* *'vsts'*
+'varsofttabstop' 'vsts' string (default "")
+ local to buffer
+ {only available when compiled with the |+vartabs|
+ feature}
+ {not in Vi}
+ A list of the number of spaces that a <Tab> counts for while editing,
+ such as inserting a <Tab> or using <BS>. It "feels" like variable-
+ width <Tab>s are being inserted, while in fact a mixture of spaces
+ and <Tab>s is used. Tab widths are separated with commas, with the
+ final value applying to all subsequent tabs.
+
+ For example, when editing assembly language files where statements
+ start in the 9th column and comments in the 41st, it may be useful
+ to use the following: >
+ :set varsofttabstop=8,32,8
+< This will set soft tabstops with 8 and 8 + 32 spaces, and 8 more
+ for every column thereafter.
+
+ Note that the value of |'softtabstop'| will be ignored while
+ 'varsofttabstop' is set.
+
+ *'vartabstop'* *'vts'*
+'vartabstop' 'vts' string (default "")
+ local to buffer
+ {only available when compiled with the |+vartabs|
+ feature}
+ {not in Vi}
+ A list of the number of spaces that a <Tab> in the file counts for,
+ separated by commas. Each value corresponds to one tab, with the
+ final value applying to all subsequent tabs. For example: >
+ :set vartabstop=4,20,10,8
+< This will make the first tab 4 spaces wide, the second 20 spaces,
+ the third 10 spaces, and all following tabs 8 spaces.
+
+ Note that the value of |'tabstop'| will be ignored while 'vartabstop'
+ is set.
+
*'verbose'* *'vbs'*
'verbose' 'vbs' number (default 0)
global
@@ -9153,4 +9204,4 @@ A jump table for the options with a short description can be found at |Q_op|.
screen. When non-zero, characters are sent to the terminal one by
one. For MS-DOS pcterm this does not work. For debugging purposes.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/os_390.txt b/runtime/doc/os_390.txt
index 5b4b9f7..ab88cc6 100644
--- a/runtime/doc/os_390.txt
+++ b/runtime/doc/os_390.txt
@@ -131,4 +131,4 @@ Also look at:
------------------------------------------------------------------------------
- vim:tw=78:fo=tcq2:ts=8:ft=help:norl:
+ vim:tw=78:fo=tcq2:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/os_amiga.txt b/runtime/doc/os_amiga.txt
index ad083b5..26aec5f 100644
--- a/runtime/doc/os_amiga.txt
+++ b/runtime/doc/os_amiga.txt
@@ -144,4 +144,4 @@ Installation ~
;End VIM
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/os_beos.txt b/runtime/doc/os_beos.txt
index 148f5fe..1356a6b 100644
--- a/runtime/doc/os_beos.txt
+++ b/runtime/doc/os_beos.txt
@@ -317,4 +317,4 @@ it is about 1191K.
<rhialto@polder.ubc.kun.nl>
http://polder.ubc.kun.nl/~rhialto/be
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/os_dos.txt b/runtime/doc/os_dos.txt
index b950953..d24efdf 100644
--- a/runtime/doc/os_dos.txt
+++ b/runtime/doc/os_dos.txt
@@ -295,4 +295,4 @@ When starting up, Vim checks for the presence of "sh" anywhere in the 'shell'
option. If it is present, Vim sets the 'shellcmdflag' and 'shellquote' or
'shellxquote' options will be set as described above.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/os_mac.txt b/runtime/doc/os_mac.txt
index 72c0c16..28ebe66 100644
--- a/runtime/doc/os_mac.txt
+++ b/runtime/doc/os_mac.txt
@@ -179,4 +179,4 @@ the system clipboard, the darwin feature should be disabled to prevent Vim
from hanging at runtime.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/os_mint.txt b/runtime/doc/os_mint.txt
index 96e139d..ed33491 100644
--- a/runtime/doc/os_mint.txt
+++ b/runtime/doc/os_mint.txt
@@ -36,4 +36,4 @@ Send bug reports to
Jens M. Felderhoff, e-mail: <jmf@infko.uni-koblenz.de>
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/os_msdos.txt b/runtime/doc/os_msdos.txt
index 50fb4e8..d5be05f 100644
--- a/runtime/doc/os_msdos.txt
+++ b/runtime/doc/os_msdos.txt
@@ -12,4 +12,4 @@ work, there is not enough memory. The DOS32 version (using DJGPP) might still
work on older systems.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/os_os2.txt b/runtime/doc/os_os2.txt
index 7891756..2f094cf 100644
--- a/runtime/doc/os_os2.txt
+++ b/runtime/doc/os_os2.txt
@@ -10,4 +10,4 @@ This file used to contain the particularities for the OS/2 version of Vim.
The OS/2 support was removed in patch 7.4.1008.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/os_qnx.txt b/runtime/doc/os_qnx.txt
index 466699f..4cbc7ea 100644
--- a/runtime/doc/os_qnx.txt
+++ b/runtime/doc/os_qnx.txt
@@ -135,4 +135,4 @@ Todo:
- Replace usage of fork() with spawn() when launching external
programs.
- vim:tw=78:sw=4:ts=8:ts=8:ft=help:norl:
+ vim:tw=78:sw=4:ts=8:noet:ts=8:ft=help:norl:
diff --git a/runtime/doc/os_risc.txt b/runtime/doc/os_risc.txt
index 095d5a9..d951b8e 100644
--- a/runtime/doc/os_risc.txt
+++ b/runtime/doc/os_risc.txt
@@ -9,4 +9,4 @@ The RISC OS support has been removed from Vim with patch 7.3.187.
If you would like to use Vim on RISC OS get the files from before that patch.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/os_unix.txt b/runtime/doc/os_unix.txt
index 4b69af5..5067b1e 100644
--- a/runtime/doc/os_unix.txt
+++ b/runtime/doc/os_unix.txt
@@ -57,4 +57,4 @@ For real color terminals the ":highlight" command can be used.
The file "tools/vim132" is a shell script that can be used to put Vim in 132
column mode on a vt100 and lookalikes.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/os_vms.txt b/runtime/doc/os_vms.txt
index 3e723b6..fc6da61 100644
--- a/runtime/doc/os_vms.txt
+++ b/runtime/doc/os_vms.txt
@@ -952,4 +952,4 @@ of OS_VMS.TXT:
Bruce Hunsaker <BNHunsaker@chq.byu.edu>
Sandor Kopanyi <sandor.kopanyi@mailbox.hu>
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/os_win32.txt b/runtime/doc/os_win32.txt
index e995333..9a5f748 100644
--- a/runtime/doc/os_win32.txt
+++ b/runtime/doc/os_win32.txt
@@ -303,4 +303,4 @@ A. Yes, place your favorite icon in bitmaps/vim.ico in a directory of
'runtimepath'. For example ~/vimfiles/bitmaps/vim.ico.
- vim:tw=78:fo=tcq2:ts=8:ft=help:norl:
+ vim:tw=78:fo=tcq2:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 337cbf7..e7e510f 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -293,6 +293,14 @@ the "#" is under your left hand middle finger (search to the left and up) and
the "*" is under your right hand middle finger (search to the right and down).
(this depends on your keyboard layout though).
+ *E956*
+In very rare cases a regular expression is used recursively. This can happen
+when executing a pattern takes a long time and when checkig for messages on
+channels a callback is invoked that also uses a pattern or an autocommand is
+triggered. In most cases this should be fine, but if a pattern is in use when
+it's used again it fails. Usually this means there is something wrong with
+the pattern.
+
==============================================================================
2. The definition of a pattern *search-pattern* *pattern* *[pattern]*
*regular-expression* *regexp* *Pattern*
@@ -1409,4 +1417,4 @@ Finally, these constructs are unique to Perl:
":2match" for another plugin.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/pi_getscript.txt b/runtime/doc/pi_getscript.txt
index 4190706..ae38a3b 100644
--- a/runtime/doc/pi_getscript.txt
+++ b/runtime/doc/pi_getscript.txt
@@ -479,4 +479,4 @@ v2 May 14, 2003 : extracts name of item to be obtained from the
and they became numbers. Fixes comparison.
==============================================================================
-vim:tw=78:ts=8:ft=help:fdm=marker
+vim:tw=78:ts=8:noet:ft=help:fdm=marker
diff --git a/runtime/doc/pi_gzip.txt b/runtime/doc/pi_gzip.txt
index 21b6520..6017efa 100644
--- a/runtime/doc/pi_gzip.txt
+++ b/runtime/doc/pi_gzip.txt
@@ -40,4 +40,4 @@ compression. Thus editing the patchmode file will not give you the automatic
decompression. You have to rename the file if you want this.
==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/pi_logipat.txt b/runtime/doc/pi_logipat.txt
index f8d6662..8d33a56 100644
--- a/runtime/doc/pi_logipat.txt
+++ b/runtime/doc/pi_logipat.txt
@@ -118,4 +118,4 @@ Copyright: (c) 2004-2015 by Charles E. Campbell *logiPat-copyright*
==============================================================================
-vim:tw=78:ts=8:ft=help
+vim:tw=78:ts=8:noet:ft=help
diff --git a/runtime/doc/pi_netrw.txt b/runtime/doc/pi_netrw.txt
index b4f2f26..478338e 100644
--- a/runtime/doc/pi_netrw.txt
+++ b/runtime/doc/pi_netrw.txt
@@ -4267,4 +4267,4 @@ netrw:
==============================================================================
Modelines: {{{1
- vim:tw=78:ts=8:ft=help:norl:fdm=marker
+ vim:tw=78:ts=8:noet:ft=help:norl:fdm=marker
diff --git a/runtime/doc/pi_paren.txt b/runtime/doc/pi_paren.txt
index d4ab4a0..8c4f04a 100644
--- a/runtime/doc/pi_paren.txt
+++ b/runtime/doc/pi_paren.txt
@@ -57,4 +57,4 @@ comments. This is unrelated to the matchparen highlighting, they use a
different mechanism.
==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/pi_spec.txt b/runtime/doc/pi_spec.txt
index abe5f11..aaede1e 100644
--- a/runtime/doc/pi_spec.txt
+++ b/runtime/doc/pi_spec.txt
@@ -108,4 +108,4 @@ If you don't like the release updating feature and don't want to answer
Good luck!!
-vim:tw=78:ts=8:ft=help:norl:
+vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/pi_tar.txt b/runtime/doc/pi_tar.txt
index 7a6faf1..f39e0c4 100644
--- a/runtime/doc/pi_tar.txt
+++ b/runtime/doc/pi_tar.txt
@@ -148,4 +148,4 @@ Copyright 2005-2012: *tar-copyright*
v1 (original) * Michael Toren (see http://michael.toren.net/code/)
==============================================================================
-vim:tw=78:ts=8:ft=help
+vim:tw=78:ts=8:noet:ft=help
diff --git a/runtime/doc/pi_vimball.txt b/runtime/doc/pi_vimball.txt
index 563b12a..fec16a4 100644
--- a/runtime/doc/pi_vimball.txt
+++ b/runtime/doc/pi_vimball.txt
@@ -273,4 +273,4 @@ WINDOWS *vimball-windows*
==============================================================================
-vim:tw=78:ts=8:ft=help:fdm=marker
+vim:tw=78:ts=8:noet:ft=help:fdm=marker
diff --git a/runtime/doc/pi_zip.txt b/runtime/doc/pi_zip.txt
index c5fa391..3517735 100644
--- a/runtime/doc/pi_zip.txt
+++ b/runtime/doc/pi_zip.txt
@@ -149,4 +149,4 @@ Copyright: Copyright (C) 2005-2015 Charles E Campbell *zip-copyright*
v1 Sep 15, 2005 * Initial release, had browsing, reading, and writing
==============================================================================
-vim:tw=78:ts=8:ft=help:fdm=marker
+vim:tw=78:ts=8:noet:ft=help:fdm=marker
diff --git a/runtime/doc/print.txt b/runtime/doc/print.txt
index b93a230..07a9503 100644
--- a/runtime/doc/print.txt
+++ b/runtime/doc/print.txt
@@ -752,4 +752,4 @@ to adjust the number of lines before a formfeed character to prevent
accidental blank pages.
==============================================================================
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index c3f8504..95bcfa0 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -298,6 +298,10 @@ processing a quickfix or location list command, it will be aborted.
from the last error backwards, -1 being the last error.
The 'switchbuf' settings are respected when jumping
to a buffer.
+ The |:filter| command can be used to display only the
+ quickfix entries matching a supplied pattern. The
+ pattern is matched against the filename, module name,
+ pattern and text of the entry.
:cl[ist] +{count} List the current and next {count} valid errors. This
is similar to ":clist from from+count", where "from"
@@ -1287,7 +1291,7 @@ to the file.
Changing directory
The following uppercase conversion characters specify the type of special
-format strings. At most one of them may be given as a prefix at the begin
+format strings. At most one of them may be given as a prefix at the beginning
of a single comma-separated format pattern.
Some compilers produce messages that consist of directory names that have to
be prepended to each file name read by %f (example: GNU make). The following
@@ -1790,4 +1794,4 @@ start of the file about how to use it. (This script is deprecated, see
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt
index 6f43022..03ac357 100644
--- a/runtime/doc/quickref.txt
+++ b/runtime/doc/quickref.txt
@@ -957,6 +957,8 @@ Short explanation of each option: *option-list*
'undoreload' 'ur' max nr of lines to save for undo on a buffer reload
'updatecount' 'uc' after this many characters flush swap file
'updatetime' 'ut' after this many milliseconds flush swap file
+'varsofttabstop' 'vsts' a list of number of spaces when typing <Tab>
+'vartabstop' 'vts' a list of number of spaces for <Tab>s
'verbose' 'vbs' give informative messages
'verbosefile' 'vfile' file to write messages in
'viewdir' 'vdir' directory where to store files with :mkview
@@ -1445,4 +1447,4 @@ Context-sensitive completion on the command-line:
|zN| zN fold normal set 'foldenable'
|zi| zi invert 'foldenable'
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/quotes.txt b/runtime/doc/quotes.txt
index 063a314..04e2aec 100644
--- a/runtime/doc/quotes.txt
+++ b/runtime/doc/quotes.txt
@@ -272,4 +272,4 @@ In summary:
|____/ |_| \___/|_| |_| (_|_) (Tony Nugent, Australia) `
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/recover.txt b/runtime/doc/recover.txt
index 89703fd..c4007db 100644
--- a/runtime/doc/recover.txt
+++ b/runtime/doc/recover.txt
@@ -234,4 +234,4 @@ Note that after recovery the key of the swap file will be used for the text
file. Thus if you write the text file, you need to use that new key.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/remote.txt b/runtime/doc/remote.txt
index f856c98..03e0d97 100644
--- a/runtime/doc/remote.txt
+++ b/runtime/doc/remote.txt
@@ -63,7 +63,7 @@ The following command line arguments are available:
--servername {name} Become the server {name}. When used together
with one of the --remote commands: connect to
server {name} instead of the default (see
- below).
+ below). The name used will be uppercase.
*--remote-send*
--remote-send {keys} Send {keys} to server and exit. The {keys}
are not mapped. Special key names are
@@ -204,4 +204,4 @@ When using gvim, the --remote-wait only works properly this way: >
start /w gvim --remote-wait file.txt
<
- vim:tw=78:sw=4:ts=8:ft=help:norl:
+ vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/repeat.txt b/runtime/doc/repeat.txt
index 6246478..55aed24 100644
--- a/runtime/doc/repeat.txt
+++ b/runtime/doc/repeat.txt
@@ -265,7 +265,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
loaded during initialization, see |load-plugins|.
Also see |pack-add|.
- {only available when compiled with +eval}
+ {only available when compiled with |+eval|}
*:packl* *:packloadall*
:packl[oadall][!] Load all packages in the "start" directory under each
@@ -289,7 +289,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
An error only causes sourcing the script where it
happens to be aborted, further plugins will be loaded.
See |packages|.
- {only available when compiled with +eval}
+ {only available when compiled with |+eval|}
:scripte[ncoding] [encoding] *:scripte* *:scriptencoding* *E167*
Specify the character encoding used in the script.
@@ -1010,4 +1010,4 @@ mind there are various things that may clobber the results:
- The "self" time is wrong when a function is used recursively.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/rileft.txt b/runtime/doc/rileft.txt
index 17bfdba..f5ec8e8 100644
--- a/runtime/doc/rileft.txt
+++ b/runtime/doc/rileft.txt
@@ -121,4 +121,4 @@ o When both 'rightleft' and 'revins' are on: 'textwidth' does not work.
o There is no full bidirectionality (bidi) support.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/russian.txt b/runtime/doc/russian.txt
index cf64873..fae8690 100644
--- a/runtime/doc/russian.txt
+++ b/runtime/doc/russian.txt
@@ -71,4 +71,4 @@ In order to use the Russian documentation, make sure you have set the
releases of gettext.
===============================================================================
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/scroll.txt b/runtime/doc/scroll.txt
index 971fec8..1415e2f 100644
--- a/runtime/doc/scroll.txt
+++ b/runtime/doc/scroll.txt
@@ -332,4 +332,4 @@ Add these mappings to your vimrc file: >
:map <M-Esc>[65~ <S-ScrollWheelDown>
:map! <M-Esc>[65~ <S-ScrollWheelDown>
<
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/sign.txt b/runtime/doc/sign.txt
index dab63b1..bd63ea9 100644
--- a/runtime/doc/sign.txt
+++ b/runtime/doc/sign.txt
@@ -202,4 +202,4 @@ JUMPING TO A SIGN *:sign-jump* *E157*
have a name.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/spell.txt b/runtime/doc/spell.txt
index 6f42eb3..2b096e3 100644
--- a/runtime/doc/spell.txt
+++ b/runtime/doc/spell.txt
@@ -1646,4 +1646,4 @@ WORDCHARS (Hunspell) *spell-WORDCHARS*
is no need to separate words before checking them (using a
trie instead of a hashtable).
- vim:tw=78:sw=4:ts=8:ft=help:norl:
+ vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/sponsor.txt b/runtime/doc/sponsor.txt
index 6e42d15..50148e1 100644
--- a/runtime/doc/sponsor.txt
+++ b/runtime/doc/sponsor.txt
@@ -213,4 +213,4 @@ is done. But a receipt is possible.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 0c15a1e..3c2d868 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -511,9 +511,11 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
{not in Vi}
*--clean*
---clean Equal to "-u DEFAULTS -U NONE -i NONE":
+--clean Similar to "-u DEFAULTS -U NONE -i NONE":
- initializations from files and environment variables is
skipped
+ -'runtimepath'and 'packpath' are set to exclude home
+ directory entries (does not happen with -u DEFAULTS).
- the |defaults.vim| script is loaded, which implies
'nocompatible': use Vim defaults
- no |gvimrc| script is loaded
@@ -1594,6 +1596,8 @@ VIMINFO FILE NAME *viminfo-file-name*
- The "-i" Vim argument can be used to set another file name, |-i|. When the
file name given is "NONE" (all uppercase), no viminfo file is ever read or
written. Also not for the commands below!
+- The 'viminfofile' option can be used like the "-i" argument. In fact, the
+ value form the "-i" argument is stored in the 'viminfofile' option.
- For the commands below, another file name can be given, overriding the
default and the name given with 'viminfo' or "-i" (unless it's NONE).
@@ -1683,4 +1687,4 @@ most of the information will be restored).
Use ! to abandon a modified buffer. |abandon|
{not when compiled with tiny or small features}
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index 526231f..b1a1e72 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -2876,17 +2876,17 @@ This covers syntax highlighting for the older Unix (Bourne) sh, and newer
shells such as bash, dash, posix, and the Korn shells.
Vim attempts to determine which shell type is in use by specifying that
-various filenames are of specific types: >
+various filenames are of specific types, e.g.: >
ksh : .kshrc* *.ksh
bash: .bashrc* bashrc bash.bashrc .bash_profile* *.bash
<
-If none of these cases pertain, then the first line of the file is examined
-(ex. looking for /bin/sh /bin/ksh /bin/bash). If the first line specifies a
-shelltype, then that shelltype is used. However some files (ex. .profile) are
-known to be shell files but the type is not apparent. Furthermore, on many
-systems sh is symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh"
-(Posix).
+See $VIMRUNTIME/filetype.vim for the full list of patterns. If none of these
+cases pertain, then the first line of the file is examined (ex. looking for
+/bin/sh /bin/ksh /bin/bash). If the first line specifies a shelltype, then
+that shelltype is used. However some files (ex. .profile) are known to be
+shell files but the type is not apparent. Furthermore, on many systems sh is
+symbolically linked to "bash" (Linux, Windows+cygwin) or "ksh" (Posix).
One may specify a global default by instantiating one of the following
variables in your <.vimrc>:
@@ -5478,4 +5478,4 @@ literal text specify the size of that text (in bytes):
"<\@1<=span" Matches the same, but only tries one byte before "span".
- vim:tw=78:sw=4:ts=8:ft=help:norl:
+ vim:tw=78:sw=4:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/tabpage.txt b/runtime/doc/tabpage.txt
index 31fcc43..a80d7c3 100644
--- a/runtime/doc/tabpage.txt
+++ b/runtime/doc/tabpage.txt
@@ -472,4 +472,4 @@ If you want to show something specific for a tab page, you might want to use a
tab page local variable. |t:var|
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/tags b/runtime/doc/tags
index cd14b3f..135c390 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -1144,6 +1144,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'updatetime' options.txt /*'updatetime'*
'ur' options.txt /*'ur'*
'ut' options.txt /*'ut'*
+'varsofttabstop' options.txt /*'varsofttabstop'*
+'vartabstop' options.txt /*'vartabstop'*
'vb' options.txt /*'vb'*
'vbs' options.txt /*'vbs'*
'vdir' options.txt /*'vdir'*
@@ -1160,6 +1162,8 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
'virtualedit' options.txt /*'virtualedit'*
'visualbell' options.txt /*'visualbell'*
'vop' options.txt /*'vop'*
+'vsts' options.txt /*'vsts'*
+'vts' options.txt /*'vts'*
'w1200' vi_diff.txt /*'w1200'*
'w300' vi_diff.txt /*'w300'*
'w9600' vi_diff.txt /*'w9600'*
@@ -1354,6 +1358,7 @@ $VIM_POSIX vi_diff.txt /*$VIM_POSIX*
+toolbar various.txt /*+toolbar*
+unix eval.txt /*+unix*
+user_commands various.txt /*+user_commands*
++vartabs various.txt /*+vartabs*
+vertsplit various.txt /*+vertsplit*
+viminfo various.txt /*+viminfo*
+virtualedit various.txt /*+virtualedit*
@@ -4615,6 +4620,8 @@ E952 autocmd.txt /*E952*
E953 eval.txt /*E953*
E954 options.txt /*E954*
E955 eval.txt /*E955*
+E956 pattern.txt /*E956*
+E957 eval.txt /*E957*
E96 diff.txt /*E96*
E97 diff.txt /*E97*
E98 diff.txt /*E98*
@@ -5171,6 +5178,7 @@ autocmds-kept version5.txt /*autocmds-kept*
autocommand autocmd.txt /*autocommand*
autocommand-events autocmd.txt /*autocommand-events*
autocommand-pattern autocmd.txt /*autocommand-pattern*
+autocommands autocmd.txt /*autocommands*
autoformat change.txt /*autoformat*
autoload eval.txt /*autoload*
autoload-functions eval.txt /*autoload-functions*
@@ -5757,6 +5765,7 @@ debug-vs2005 debug.txt /*debug-vs2005*
debug-win32 debug.txt /*debug-win32*
debug-windbg debug.txt /*debug-windbg*
debug.txt debug.txt /*debug.txt*
+debugbreak() eval.txt /*debugbreak()*
debugger-compilation debugger.txt /*debugger-compilation*
debugger-features debugger.txt /*debugger-features*
debugger-integration debugger.txt /*debugger-integration*
diff --git a/runtime/doc/tagsrch.txt b/runtime/doc/tagsrch.txt
index 555beb5..d3ceac6 100644
--- a/runtime/doc/tagsrch.txt
+++ b/runtime/doc/tagsrch.txt
@@ -854,4 +854,4 @@ Common arguments for the commands above:
< For a ":djump", ":dsplit", ":dlist" and ":dsearch" command the pattern
is used as a literal string, not as a search pattern.
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/term.txt b/runtime/doc/term.txt
index dbf7e64..77cd933 100644
--- a/runtime/doc/term.txt
+++ b/runtime/doc/term.txt
@@ -977,4 +977,4 @@ To swap the meaning of the left and right mouse buttons: >
:noremap! <RightDrag> <LeftDrag>
:noremap! <RightRelease> <LeftRelease>
<
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/terminal.txt b/runtime/doc/terminal.txt
index 262b162..f9fc0ee 100644
--- a/runtime/doc/terminal.txt
+++ b/runtime/doc/terminal.txt
@@ -523,9 +523,9 @@ inspects the resulting screen state.
Functions ~
-term_sendkeys() send keystrokes to a terminal (not subject to tmap)
-term_wait() wait for screen to be updated
-term_scrape() inspect terminal screen
+|term_sendkeys()| send keystrokes to a terminal (not subject to tmap)
+|term_wait()| wait for screen to be updated
+|term_scrape()| inspect terminal screen
==============================================================================
@@ -552,7 +552,7 @@ src/testdir/test_syntax.vim. The main parts are:
characters. This makes sure the dump is always this size. The function
RunVimInTerminal() takes care of this. Pass it the arguments for the Vim
command.
-- Send any commands to Vim using term_sendkeys(). For example: >
+- Send any commands to Vim using |term_sendkeys()|. For example: >
call term_sendkeys(buf, ":echo &lines &columns\<CR>")
- Check that the screen is now in the expected state, using
VerifyScreenDump(). This expects the reference screen dump to be in the
@@ -580,13 +580,13 @@ Creating a screen dump ~
*terminal-screendump*
To create the screen dump, run Vim (or any other program) in a terminal and
-make it show the desired state. Then use the term_dumpwrite() function to
+make it show the desired state. Then use the |term_dumpwrite()| function to
create a screen dump file. For example: >
:call term_dumpwrite(77, "mysyntax.dump")
Here "77" is the buffer number of the terminal. Use `:ls!` to see it.
-You can view the screen dump with term_dumpload(): >
+You can view the screen dump with |term_dumpload()|: >
:call term_dumpload("mysyntax.dump")
To verify that Vim still shows exactly the same screen, run Vim again with
@@ -594,7 +594,7 @@ exactly the same way to show the desired state. Then create a screen dump
again, using a different file name: >
:call term_dumpwrite(88, "test.dump")
-To assert that the files are exactly the same use assert_equalfile(): >
+To assert that the files are exactly the same use |assert_equalfile()|: >
call assert_equalfile("mysyntax.dump", "test.dump")
If there are differences then v:errors will contain the error message.
@@ -603,8 +603,8 @@ If there are differences then v:errors will contain the error message.
Comparing screen dumps ~
*terminal-diffscreendump*
-assert_equalfile() does not make it easy to see what is different.
-To spot the problem use term_dumpdiff(): >
+|assert_equalfile()| does not make it easy to see what is different.
+To spot the problem use |term_dumpdiff()|: >
call term_dumpdiff("mysyntax.dump", "test.dump")
This will open a window consisting of three parts:
@@ -900,7 +900,7 @@ Vim window width *termdebug_wide*
To change the width of the Vim window when debugging starts, and use a
vertical split: >
let g:termdebug_wide = 163
-This will set &columns to 163 when :Termdebug is used. The value is restored
+This will set &columns to 163 when `:Termdebug` is used. The value is restored
when quitting the debugger.
If g:termdebug_wide is set and &columns is already larger than
g:termdebug_wide then a vertical split will be used without changing &columns.
@@ -909,4 +909,4 @@ for when the terminal can't be resized by Vim).
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/tips.txt b/runtime/doc/tips.txt
index 3698348..bbe341c 100644
--- a/runtime/doc/tips.txt
+++ b/runtime/doc/tips.txt
@@ -408,14 +408,13 @@ when they are not in the same location as the compressed "doc" directory. See
==============================================================================
Executing shell commands in a window *shell-window*
-There have been questions for the possibility to execute a shell in a window
-inside Vim. The answer: you can't! Including this would add a lot of code to
-Vim, which is a good reason not to do this. After all, Vim is an editor, it
-is not supposed to do non-editing tasks. However, to get something like this,
-you might try splitting your terminal screen or display window with the
+See |terminal|.
+
+Another solution is splitting your terminal screen or display window with the
"splitvt" program. You can probably find it on some ftp server. The person
that knows more about this is Sam Lantinga <slouken@cs.ucdavis.edu>.
-An alternative is the "window" command, found on BSD Unix systems, which
+
+Another alternative is the "window" command, found on BSD Unix systems, which
supports multiple overlapped windows. Or the "screen" program, found at
www.uni-erlangen.de, which supports a stack of windows.
@@ -531,4 +530,4 @@ A slightly more advanced version is used in the |matchparen| plugin.
autocmd InsertEnter * match none
<
- vim:tw=78:ts=8:ft=help:norl:
+ vim:tw=78:ts=8:noet:ft=help:norl:
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index c338513..6929417 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -43,34 +43,22 @@ Prompt buffer:
- delay next prompt until plugin gives OK?
Terminal debugger:
-- Using terminal window: after "cont" in gdb window CTRL-C interrupts, but
- after :Continue it does not. Mode of UI is changed? :Stop does work.
-- patch from Christian to handle changing 'background'
- and a patch to show breakpoint nr in sign. (June 14)
- Make prompt-buffer variant work better.
+- When only gdb window exists, on "quit" edit another buffer.
- Termdebug does not work when Vim was build with mzscheme: gdb hangs just
after "run". Everything else works, including communication channel. Not
initializing mzscheme avoid the problem, thus it's not some #ifdef.
-- Show breakpoint number in the sign? (Uri Moszkowicz, 2018 Jun 13, #3007)
-- Allow for users to create their own gdb mappings. Perhaps by making the gdb
- buffer global? (Uri Moszkowicz, #3012) Or with a function to send a command
- to gdb.
Terminal emulator window:
+- When the job in the terminal doesn't use mouse events, let the scroll wheel
+ scroll the scrollback, like a terminal does at the shell prompt. #2490
+ And use modeless selection. #2962
- With a vertical split only one window is updated. (Linwei, 2018 Jun 2,
#2977)
-- When typing : at the more prompt, instead of entering a new Vim command, the
- : is inserted in the terminal window. Should skip terminal_loop here.
- ()
- When pasting should call vterm_keyboard_start_paste(), e.g. when using
K_MIDDLEMOUSE, calling insert_reg().
- Users expect parsing the :term argument like a shell does, also support
single quotes. E.g. with: :term grep 'alice says "hello"' (#1999)
-- When running a shell in a terminal to run Vim tests, CTRL-W : the command
- line keeps getting cleard. Doing the same in another window is OK. (Jason
- Franklin, 2018 Jun 17)
-- How to access selection in Terminal running a shell? (damnskippy, 2018 May
- 27, #29620 When terminal doesn't use the mouse, use modeless selection.
- Win32: Redirecting input does not work, half of Test_terminal_redir_file()
is disabled.
- Win32: Redirecting output works but includes escape sequences.
@@ -90,6 +78,9 @@ Does not build with MinGW out of the box:
- _stat64 is not defined, need to use "struct stat" in vim.h
- WINVER conflict, should use 0x0600 by default?
+Patches for Python: #3162, #3263 (Ozaki Kiichi)
+ Needs update.
+
Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
13, #2910) Can't reproduce?
@@ -99,43 +90,73 @@ On Win32 when not in the console and t_Co >= 256, allow using 'tgc'.
Errors found with random data:
heap-buffer-overflow in alist_add (#2472)
-More warnings from static analysis:
-https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
-
-Patch to make "is" and "as" work better. (Jason Franklin, 2018 May 19)
+Improve fallback for menu translations, to avoid having to create lots of
+files that source the actual file. E.g. menu_da_de -> menu_da
+Include part of #3242?
-Patch to add tests for user and language completion. (Dominique Pelle, 2018
-Jun 2, #2978) typo wk -> we
-Patch to support user name completion on MS-Windows. (Yasuhiro Matsumoto, 2012
-Aug 16)
+Inlcude Chinese-Taiwan translations. (bystar, #3261)
-Patch to add tests for libcall() and libcallnr(). (Dominique Pelle, #2982)
+Using mouse for inputlist() doesn't work after patch 8.0.1756. (Dominique
+Pelle, 2018 Jul 22, #3239) Also see 8.0.0722. Check both console and GUI.
-Patch to fix that v:shell_error is always zero when using terminal for shell
-command. (Ichizok, 2018 Jun 8, #2994)
-
-Patch to make test for terminal out&error more reliable. (Ichizok, 2018 Jun 8,
-#2991)
+More warnings from static analysis:
+https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
-Patch to fix duplicate entry in tagfiles() and add a test. (Dominique Pelle,
-#2979)
+When handle_drop() is called while the updating_screen is true, it fails
+completely. Should store the file list and use it when updating_screen is set
+to false in reset_updating_screen().
Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17)
-Related to bracketed paste.
+Related to bracketed paste. I cannot reproduce it.
Using ":file" in quickfix window during an autocommand doesn't work.
(Jason Franklin, 2018 May 23) Allow for using it when there is no argument.
-Pull request #2967: Allow white space in sign text. (Ben Jackson)
-
-Patch for xterm and vt320 builtin termcap. (Kouichi Iwamoto, 2018 May 31,
-#2973)
-
-Patch to add more testing for :cd command. (Dominique Pelle, 2018 May 30,
-#2972)
+Patch in pull request #2967: Allow white space in sign text. (Ben Jackson)
+Test fails in AppVeyor.
+
+Removing flags from 'cpoptions' breaks the Winbar buttons in termdebug.
+(Dominique Pelle, 2018 Jul 16)
+
+Problem with two buffers with the same name a/b, if it didn't exist before and
+is created outside of Vim. (dskloetg, 2018 Jul 16, #3219)
+
+Memory leak in test_assert:
+==19127== by 0x2640D7: alloc (misc2.c:874)
+==19127== by 0x2646D6: vim_strsave (misc2.c:1315)
+==19127== by 0x1B68D2: f_getcwd (evalfunc.c:4950)
+And:
+==19127== by 0x2640D7: alloc (misc2.c:874)
+==19127== by 0x1A9477: set_var (eval.c:7601)
+==19127== by 0x19F96F: set_var_lval (eval.c:2233)
+==19127== by 0x19EA3A: ex_let_one (eval.c:1810)
+==19127== by 0x19D737: ex_let_vars (eval.c:1294)
+==19127== by 0x19D6B4: ex_let (eval.c:1259)
+Memory leaks in test_channel? (or is it because of fork())
+Using uninitialized value in test_crypt.
+Memory leaks in test_escaped_glob
+==20651== by 0x2640D7: alloc (misc2.c:874)
+==20651== by 0x2646D6: vim_strsave (misc2.c:1315)
+==20651== by 0x3741EA: get_function_args (userfunc.c:131)
+==20651== by 0x378779: ex_function (userfunc.c:2036)
+Memory leak in test_terminal:
+==23530== by 0x2640D7: alloc (misc2.c:874)
+==23530== by 0x2646D6: vim_strsave (misc2.c:1315)
+==23530== by 0x25841D: FullName_save (misc1.c:5443)
+==23530== by 0x17CB4F: fix_fname (buffer.c:4794)
+==23530== by 0x17CB9A: fname_expand (buffer.c:4838)
+==23530== by 0x1759AB: buflist_new (buffer.c:1889)
+==23530== by 0x35C923: term_start (terminal.c:421)
+==23530== by 0x2AFF30: mch_call_shell_terminal (os_unix.c:4377)
+==23530== by 0x2B16BE: mch_call_shell (os_unix.c:5383)
+
+gethostbyname() is old, use getaddrinfo() if available. (#3227)
+
+matchaddpos() gets slow with many matches. Proposal by Rick Howe, 2018 Jul
+19.
Patch to make mode() return something different for Normal mode when coming
-from Insert mode with CTRL-O. (#3000)
+from Insert mode with CTRL-O. (#3000) Useful for positioning the cursor.
Script generated by :mksession does not work well if there are windows with
modified buffers
@@ -146,18 +167,42 @@ modified buffers
Patch to make :help work for tags with a ?. (Hirohito Higashi, 2018 May 28)
+Patch to adjust to DPI setting for GTK. (Roel van de Kraats, 2017 Nov 20,
+#2357)
+
+Patch to fix window size when using VTP. (Nobuhiro Takasaki, #3164)
+
Compiler warnings (geeknik, 2017 Oct 26):
- signed integer overflow in do_sub() (#2249)
- signed integer overflow in get_address() (#2248)
- signed integer overflow in getdecchrs() (#2254)
- undefined left shift in get_string_tv() (#2250)
+Win32 console: <F11> and <F12> typed in Insert mode don't result in normal
+characters. (#3246)
+
Patch for more quickfix refactoring. (Yegappan Lakshmanan, #2950)
Tests failing for "make testgui" with GTK:
- Test_setbufvar_options()
- Test_exit_callback_interval()
+When using CTRL-W CR in the quickfix window, the jumplist in the opened window
+is cleared, to avoid going back to the list of errors buffer (would have two
+windows with it). Can we just remove the jump list entries for the quickfix
+buffer?
+
+Patch to stack and pop the window title and icon. (IWAMOTO Kouichi, 2018 Jun
+22, #3059)
+8 For xterm need to open a connection to the X server to get the window
+ title, which can be slow. Can also get the title with "<Esc>[21t", no
+ need to use X11 calls. This returns "<Esc>]l{title}<Esc>\".
+Using title stack probably works better.
+
+When a function is defined in the sandbox (with :function or as a lambda)
+always execute it in the sandbox. (#3182)
+Remove "safe" argument from call_vim_function(), it's always FALSE.
+
Make balloon_show() work outside of 'balloonexpr'? Users expect it to work:
#2948. (related to #1512?)
On Win32 it stops showing, because showState is already ShS_SHOWING.
@@ -181,9 +226,21 @@ Cursor in wrong position when line wraps. (#2540)
Patch for Lua support. (Kazunobu Kuriyama, 2018 May 26)
+Make {skip} argument of searchpair() consistent with other places where we
+pass an expression to evaluate. Allow passing zero for "never skip".
+
Add an option similar to 'lazyredraw' to skip redrawing while executing a
script or function.
+Universal solution to detect if t_RS is working, using cursor position.
+Koichi Iwamoto, #2126
+
+Patch to fix profiling condition lines. (Ozaki Kiichi,, 2017 Dec 26, #2499)
+
+When using a menu item while the "more" prompt is displayed doesn't work well.
+E.g. after using help->version. Have a key that ends the "more" prompt and
+does nothing otherwise?
+
MS-Windows: write may fail if another program is reading the file.
If 'readonly' is not set but the file appears to be readonly later, try again
(wait a little while).
@@ -198,9 +255,6 @@ deleting autocmds, not when adding them.
Quickfix window height is not kept with a vertical split. (Lifepillar, 2018
Jun 10, #2998)
-Patch for variable tabstops. On github (Christian Brabandt, 2014 May 15)
-Update 2018 March 12, #2711
-
Improve the installer for MS-Windows. There are a few alternatives:
- Add silent install option. (Shane Lee, #751)
- Installer from Cream (Steve Hall).
@@ -223,6 +277,10 @@ Does setting 'cursorline' cause syntax highlighting to slow down? Perhaps is
mess up the cache? (Mike Lee Williams, 2018 Jan 27, #2539)
Also: 'foldtext' is evaluated too often. (Daniel Hahler, #2773)
+With 'foldmethod' "indent" and appending an empty line, what follows isn't
+included in the existing fold. Deleting the empty line and undo fixes it.
+(Oleg Koshovetc, 2018 Jul 15, #3214)
+
When using :packadd files under "later" are not used, which is inconsistent
with packages under "start". (xtal8, #1994)
@@ -248,12 +306,15 @@ confusing error message. (Wang Shidong, 2018 Jan 2, #2519)
Add the debug command line history to viminfo.
+Issue #686: apply 'F' in 'shortmess' to more messages. Also #3221.
+
Avoid that "sign unplace id" does a redraw right away, esp. when there is a
sequence of these commands. (Andy Stewart, 2018 Mar 16)
ch_sendraw() with long string does not try to read in between, which may cause
a deadlock if the reading side is waiting for the write to finish. (Nate
Bosch, 2018 Jan 13, #2548)
+Perhaps just make chunks of 1024 bytes?
Patch to include a cfilter plugin to filter quickfix/location lists.
(Yegappan Lakshmanan, 2018 May 12)
@@ -321,6 +382,8 @@ highlighted. (van-de-bugger, 2018 Jan 23, #2576)
Patch to parse ":line" in tags file and use it for search. (Daniel Hahler,
#2546) Fixes #1057. Missing a test.
+":file" does not show anything when 'shortmess' contains 'F'. (#3070)
+
Patch to add winlayout() function. (Yegappan Lakshmanan, 2018 Jan 4)
No profile information for function that executes ":quit". (Daniel Hahler,
@@ -366,9 +429,6 @@ redrawn properly. (xtal8, 2017 Oct 23, #2241)
In an optional package the "after" directory is not scanned?
(Renato Fabbri, 2018 Feb 22)
-Universal solution to detect if t_RS is working, using cursor position.
-Koichi Iwamoto, #2126
-
Patch for Neovim concerning restoring when closing help window. (glacambre
neovim #7431)
@@ -400,9 +460,6 @@ Problem with 'delcombine'. (agguser, 2017 Nov 10, #2313)
MS-Windows: buffer completion doesn't work when using backslash (or slash)
for a path separator. (xtal8, #2201)
-Patch to adjust to DPI setting for GTK. (Roel van de Kraats, 2017 Nov 20,
-#2357)
-
Test runtime files.
Start with filetype detection: testdir/test_filetype.vim
@@ -415,9 +472,6 @@ Perhaps use a vimcontext / endvimcontext command block.
After using :noautocmd CursorMoved may still trigger. (Andy Stewart, 2017 Sep
13, #2084). Set old position after the command.
-Illegal memory access, requires ASAN to see. (Dominique Pelle, 2015 Jul 28)
-Still happens (2017 Jul 9)
-
When bracketed paste is used, pasting at the ":append" prompt does not get the
line breaks. (Ken Takata, 2017 Aug 22)
@@ -426,10 +480,6 @@ The ":move" command does not honor closed folds. (Ryan Lue, #2351)
Patch to fix increment/decrement not working properly when 'virtualedit' is
set. (Hirohito Higashi, 2016 Aug 1, #923)
-Memory leaks in test_channel? (or is it because of fork())
-Using uninitialized value in test_crypt.
-Memory leaks in test_escaped_glob
-
Patch to make gM move to middle of line. (Yasuhiro Matsumoto, Sep 8, #2070)
Cannot copy modeless selection when cursor is inside it. (lkintact, #2300)
@@ -463,6 +513,10 @@ The ++ options for the :edit command are also useful on the Vim command line.
When recovering a file, put the swap file name in b:recovered_swapfile. Then
a command can delete it.
+When a swap file exists, is not for a running process, is from the same
+machine and recovering results in the same text, we could silently delete it.
+#1237
+
Overlong utf-8 sequence is displayed wrong. (Harm te Hennepe, 2017 Sep 14,
#2089) Patch with possible solution by Björn Linse.
@@ -725,8 +779,6 @@ Does this also fix #1408 ?
Patch for 'cursorlinenr' option. (Ozaki Kiichi, 2016 Nov 30)
-Patch to fix profiling condition lines. (Ozaki Kiichi,, 2017 Dec 26, #2499)
-
Patch to be able to separately map CTRL-H and BS on Windows.
(Linwei, 2017 Jul 11, #1833)
@@ -1023,9 +1075,6 @@ Added tests (James McCoy, 2016 Aug 3). Still needs more work.
Feature request: add the "al" text object, to manipulate a screen line.
Especially useful when using 'linebreak'
-Access to uninitialized memory in match_backref() regexp_nda.c:4882
-(Dominique Pelle, 2015 Nov 6)
-
":cd C:\Windows\System32\drivers\etc*" does not work, even though the
directory exists. (Sergio Gallelli, 2013 Dec 29)
@@ -1075,7 +1124,7 @@ Patch to add TagNotFound autocommand. (Anton Lindqvist, 2016 Feb 3)
Patch to add Error autocommand. (Anton Lindqvist, 2016 Feb 17)
Only remembers one error.
-Gvim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
+GVim: when both Tab and CTRL-I are mapped, use CTRL-I not for Tab.
Unexpected delay when using CTRL-O u. It's not timeoutlen.
(Gary Johnson, 2015 Aug 28)
@@ -1414,9 +1463,6 @@ Patch by Thomas Tuegel, also for GTK, 2013 Nov 24
:help gives example for z?, but it does not work. m? and t? do work.
-Patch to add funcref to Lua. (Luis Carvalho, 2013 Sep 4)
-With tests: Sep 5.
-
Discussion about canonicalization of Hebrew. (Ron Aaron, 2011 April 10)
Checking runtime scripts: Thilo Six, 2012 Jun 6.
@@ -1862,7 +1908,7 @@ accented character. (Tony Mechelynck, 2010 Apr 15)
Don't call check_restricted() for histadd(), setbufvar(), settabvar(),
setwinvar().
-Patch for GVimExt to show an icon. (Dominik Riebeling, 2010 Nov 7)
+Patch for gVimExt to show an icon. (Dominik Riebeling, 2010 Nov 7)
When 'lines' is 25 and 'scrolloff' is 12, "j" scrolls zero or two lines
instead of one. (Constantin Pan, 2010 Sep 10)
@@ -2445,7 +2491,7 @@ go to Insert mode and add a few lines. Then backspacing every other time
moves the cursor instead of deleting. (Chris Kaiser, 2007 Sep 25)
Windows installer could add a "open in new tab of existing Vim" menu entry.
-Gvimext: patch to add "Edit with single Vim &tabbed" menu entry.
+GvimExt: patch to add "Edit with single Vim &tabbed" menu entry.
Just have two choices, always using one Vim and selecting between using an
argument list or opening each file in a separate tab.
(Erik Falor, 2008 May 21, 2008 Jun 26)
@@ -2521,7 +2567,7 @@ C++ indenting wrong with "=". (James Kanze, 2007 Jan 26)
When using --remote-silent and the file name matches 'wildignore' get an E479
error. without --remote-silent it works fine. (Ben Fritz, 2008 Jun 20)
-Gvim: dialog for closing Vim should check if Vim is busy writing a file. Then
+GVim: dialog for closing Vim should check if Vim is busy writing a file. Then
use a different dialog: "busy saving, really quit? yes / no".
Check other interfaces for changing curbuf in a wrong way. Patch like for
@@ -3430,9 +3476,6 @@ Macintosh:
7 X11: Some people prefer to use CLIPBOARD instead of PRIMARY for the normal
selection. Add an "xclipboard" argument to the 'clipboard' option? (Mark
Waggoner)
-8 For xterm need to open a connection to the X server to get the window
- title, which can be slow. Can also get the title with "<Esc>[21t", no
- need to use X11 calls. This returns "<Esc>]l{title}<Esc>\".
6 When the xterm reports the number of colors, a redraw occurs. This is
annoying on a slow connection. Wait for the xterm to report the number of
colors before drawing the screen. With a timeout.
@@ -4676,10 +4719,7 @@ Autocommands:
command used dos fileformat. Same for 'fileencoding'.
- Add events to autocommands:
Error - When an error happens
- NormalEnter - Entering Normal mode
- ReplaceEnter - Entering Replace mode
- VisualEnter - Entering Visual mode
- *Leave - Leaving a mode (in pair with the above *Enter)
+ ModeChange - after changing mode (before waiting for a char)
VimLeaveCheck - Before Vim decides to exit, so that it can be cancelled
when exiting isn't a good idea.
CursorHoldC - CursorHold while command-line editing
diff --git a/runtime/doc/usr_05.txt b/runtime/doc/usr_05.txt
index 368551a..e2424d6 100644
--- a/runtime/doc/usr_05.txt
+++ b/runtime/doc/usr_05.txt
@@ -344,8 +344,9 @@ when you use Vim. There are only two steps for adding a global plugin:
GETTING A GLOBAL PLUGIN
Where can you find plugins?
+- Some are always loaded, you can see them in the directory $VIMRUNTIME/plugin.
- Some come with Vim. You can find them in the directory $VIMRUNTIME/macros
- and its sub-directories.
+ and its sub-directories and under $VIM/vimfiles/pack/dist/opt/.
- Download from the net. There is a large collection on http://www.vim.org.
- They are sometimes posted in a Vim |maillist|.
- You could write one yourself, see |write-plugin|.
diff --git a/runtime/doc/usr_09.txt b/runtime/doc/usr_09.txt
index ee33f94..1bc7aff 100644
--- a/runtime/doc/usr_09.txt
+++ b/runtime/doc/usr_09.txt
@@ -5,9 +5,10 @@
Using the GUI
-Vim works in an ordinary terminal. GVim can do the same things and a few
-more. The GUI offers menus, a toolbar, scrollbars and other items. This
-chapter is about these extra things that the GUI offers.
+Vim works in an ordinary terminal, while gVim has a Graphical User Interface
+(GUI). It can do the same things and a few more. The GUI offers menus, a
+toolbar, scrollbars and other items. This chapter is about these extra things
+that the GUI offers.
|09.1| Parts of the GUI
|09.2| Using the mouse
diff --git a/runtime/doc/various.txt b/runtime/doc/various.txt
index 7c8f311..48d63cd 100644
--- a/runtime/doc/various.txt
+++ b/runtime/doc/various.txt
@@ -453,6 +453,7 @@ N *+timers* the |timer_start()| function
N *+title* Setting the window 'title' and 'icon'
N *+toolbar* |gui-toolbar|
N *+user_commands* User-defined commands. |user-commands|
+B *+vartabs* Variable-width tabstops. |'vartabstop'|
N *+viminfo* |'viminfo'|
*+vertsplit* Vertically split windows |:vsplit|; Always enabled
since 8.0.1118.
@@ -460,7 +461,7 @@ N *+viminfo* |'viminfo'|
N *+virtualedit* |'virtualedit'|
S *+visual* Visual mode |Visual-mode| Always enabled since 7.4.200.
N *+visualextra* extra Visual mode commands |blockwise-operators|
-N *+vreplace* |gR| and |gr|
+T *+vreplace* |gR| and |gr|
*+vtp* on MS-Windows console: support for 'termguicolors'
N *+wildignore* |'wildignore'|
N *+wildmenu* |'wildmenu'|
diff --git a/runtime/doc/version5.txt b/runtime/doc/version5.txt
index f87d904..075e583 100644
--- a/runtime/doc/version5.txt
+++ b/runtime/doc/version5.txt
@@ -2347,7 +2347,7 @@ Added *added-5.2*
Support for mapping numeric keypad +,-,*,/ keys. (Negri)
When not mapped, they produce the normal character.
-Win32 GUI: When directory dropped on Gvim, cd there and edit new buffer.
+Win32 GUI: When directory dropped on gVim, cd there and edit new buffer.
(Negri)
Win32 GUI: Made CTRL-Break work as interrupt, so that CTRL-C can be
@@ -7615,7 +7615,7 @@ VMS doesn't always have lstat(), added an #ifdef around it.
Added a few corrections for the Macintosh. (Axel Kielhorn)
-Win32: Gvimext could not edit more than a few files at once, the length of the
+Win32: GvimExt could not edit more than a few files at once, the length of the
argument was fixed.
diff --git a/runtime/doc/version6.txt b/runtime/doc/version6.txt
index 5335895..a4dd5e6 100644
--- a/runtime/doc/version6.txt
+++ b/runtime/doc/version6.txt
@@ -2967,7 +2967,7 @@ DOS and Windows: Expanding *.vim also matched file.vimfoo. Expand path like
Unix to avoid problems with Windows dir functions. Merged the DOS and Win32
functions.
-Win32: Gvimext could not edit more than a few files at once, the length of the
+Win32: GvimExt could not edit more than a few files at once, the length of the
argument was fixed.
"ls -1 * | xargs vim" worked, but the input was in cooked mode. Now switch to
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 045bd30..8155176 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1980,7 +1980,7 @@ Appending to a register didn't insert a line break like Vi. Added the '>'
flag to 'cpoptions' for this.
Using "I" in a line with only blanks appended to the line. This is not Vi
-compatible. Added the 'H' flag in 'coptions' for this.
+compatible. Added the 'H' flag in 'cpoptions' for this.
When joining multiple lines the cursor would be at the last joint, but Vi
leaves it at the position where "J" would put it. Added the 'q' flag in
diff --git a/runtime/doc/vim-da.1 b/runtime/doc/vim-da.1
new file mode 100644
index 0000000..cc272ad
--- /dev/null
+++ b/runtime/doc/vim-da.1
@@ -0,0 +1,555 @@
+.TH VIM 1 "11. april 2006"
+.SH NAVN
+vim \- Vi IMproved, en programmrs teksteditor
+.SH SYNOPSIS
+.br
+.B vim
+[tilvalg] [fil ..]
+.br
+.B vim
+[tilvalg] \-
+.br
+.B vim
+[tilvalg] \-t tag
+.br
+.B vim
+[tilvalg] \-q [fejlfil]
+.PP
+.br
+.B ex
+.br
+.B view
+.br
+.B gvim
+.B gview
+.B evim
+.B eview
+.br
+.B rvim
+.B rview
+.B rgvim
+.B rgview
+.SH BESKRIVELSE
+.B Vim
+er en teksteditor som er opad kompatibel med Vi.
+Den kan bruges til at redigere alle slags ren tekst.
+Den er srlig nyttig til at redigere programmer.
+.PP
+Der er mange forbedringer over Vi: multiniveau fortryd,
+multivinduer og -buffere, syntaksfremhvning, redigering af kommandolinje,
+fuldfrelse af filnavn, onlinehjlp, visuel markering, osv.
+Se ":help vi_diff.txt" for et overblik over forskellene mellem
+.B Vim
+og Vi.
+.PP
+Mens
+.B Vim
+krer, kan der indhentes massere af hjlp fra online-hjlpesystemet, med
+":help"-kommandoen.
+Se ONLINEHJLP-sektionen nedenfor.
+.PP
+Oftest startes
+.B Vim
+for at redigere en enkelt fil med kommandoen
+.PP
+ vim fil
+.PP
+Mere generelt startes
+.B Vim
+med:
+.PP
+ vim [tilvalg] [filliste]
+.PP
+Hvis fillisten mangler, s startes editoren med en tom buffer.
+Ellers kan n af flgende fire mder bruges til at vlge en eller
+flere filer som skal redigeres.
+.TP 12
+fil ..
+En liste over filnavne.
+Den frste bliver den nuvrende fil og lses ind i bufferen.
+Markren placeres p den frste linje i bufferen.
+Du kan g til de andre filer med ":next"-kommandoen. Skriv "\-\-" foran
+fillisten, for at redigere en fil som begynder med en bindestreg.
+.TP
+\-
+Filen som skal redigeres lses fra stdin. Kommandoer lses fra stderr, hvilket
+skal vre en tty.
+.TP
+\-t {tag}
+Filen som skal redigeres og den indledende markrplacering afhnger af
+et "tag", en slags g til-etiket.
+{tag} opsls i tags-filen, den tilknyttede fil bliver den nuvrende
+fil og den tilknyttede kommando udfres.
+Det bruges mest til C-programmer, hvor {tag} kunne vre et
+funktionsnavn.
+Virkningen er at filen som indeholder funktionen bliver den nuvrende fil
+og markren placeres i begyndelsen af funktionen.
+Se ":help tag\-commands".
+.TP
+\-q [fejlfil]
+Start i quickFix-tilstand.
+Filen [fejlfil] lses og den frste fejl vises.
+Hvis [fejlfil] udelades, s indhentes filnavnet fra 'errorfile'-valgmuligheden
+(standard er "AztecC.Err" p Amiga, "errors.err" p andre
+systemer).
+Der kan hoppes til yderligere fejl med ":cn"-kommandoen.
+Se ":help quickfix".
+.PP
+.B Vim
+opfrer sig anderledes, afhngig af navnet p kommandoen (eksekverbaren kan
+stadig vre den samme fil).
+.TP 10
+vim
+Den "normale" mde, alt er standard.
+.TP
+ex
+Start i Ex-tilstand.
+G til normal tilstand med ":vi"-kommandoen.
+Det kan ogs gres med "\-e"-argumentet.
+.TP
+view
+Start i skrivebeskyttet tilstand. Du vil vre beskyttet mod at skrive filerne.
+Det kan ogs gres med "\-R"-argumentet.
+.TP
+gvim gview
+GUI-versionen.
+Starter et nyt vindue.
+Det kan ogs gres med "\-g"-argumentet.
+.TP
+evim eview
+GUI-versionen i easy-tilstand.
+Starter et nyt vindue.
+Det kan ogs gres med "\-y"-argumentet.
+.TP
+rvim rview rgvim rgview
+Som dem ovenfor, men med restriktioner. Det vil ikke vre muligt at starte
+skalkommandoer, eller at suspendere
+.B Vim\c
+\&.
+Det kan ogs gres med "\-Z"-argumentet.
+.SH TILVALG
+Tilvalgene kan gives i vilkrlig rkkeflge, fr eller efter filnavnene.
+Tilvalg uden et argument kan kombineres efter en enkelt bindestreg.
+.TP 12
++[nummer]
+Ved den frste fil, placeres markren p linje "nummer".
+Hvis "nummer" mangler, s placeres markren p den sidste linje.
+.TP
++/{sti}
+Ved den frste fil, placeres markren p linjen med den
+frste forekomst af {sti}.
+Se ":help search\-pattern" for tilgngelige sgemnstre.
+.TP
++{kommando}
+.TP
+\-c {kommando}
+{kommando} udfres efter den frste fil er blevet lst.
+{kommando} fortolkes som en Ex-kommando.
+Hvis {kommando} indeholder mellemrum, s skal den omsluttes af
+dobbelte citationstegn (det afhnger af den skal der bruges).
+Eksempel: Vim "+set si" main.c
+.br
+Bemrk: Du kan bruge op til 10 "+"- eller "\-c"-kommandoer.
+.TP
+\-S {fil}
+{fil} bliver sourced efter den frste fil er blevet lst.
+Det svarer til \-c "source {fil}".
+{fil} m ikke begynde med '\-'.
+Hvis {fil} udelades, s bruges "Session.vim" (virker kun nr \-S er det sidste
+argument).
+.TP
+\-\-cmd {kommando}
+Ligesom at bruge "\-c", men kommandoen udfres lige inden
+behandlingen af vimrc-filer.
+Du kan bruge op til 10 af disse kommandoer, uafhngigt af "\-c"-kommandoer.
+.TP
+\-A
+Hvis
+.B Vim
+blev kompileret med understttelse af ARABIC til redigering af filer som er
+orienteret hjre mod venstre og arabisk tastaturlayout, s starter tilvalget
+.B Vim
+i arabisk tilstand, dvs. 'arabic' sttes.
+Ellers gives en fejlmeddelelse og
+.B Vim
+afbrydes.
+.TP
+\-b
+Binr tilstand.
+Der sttes nogle f valgmuligheder som gr det muligt at redigere en
+binr eller eksekverbar fil.
+.TP
+\-C
+Kompatibel. St 'compatible'-valgmuligheden.
+Det fr
+.B Vim
+til at opfre sig mest som Vi, selvom der findes en .vimrc-fil.
+.TP
+\-d
+Start i diff-tilstand.
+Der skal vre to, tre eller fire filnavneargumenter.
+.B Vim
+bner alle filerne og viser forskellene mellem dem.
+Virker ligesom vimdiff(1).
+.TP
+\-d {enhed}
+bn {enhed} til brug som en terminal.
+Kun p Amiga.
+Eksempel:
+"\-d con:20/30/600/150".
+.TP
+\-D
+Fejlretning. G til fejlretningstilstand nr den frste kommando udfres fra
+et script.
+.TP
+\-e
+Start
+.B Vim
+i Ex-tilstand, ligesom hvis "ex"-eksekverbaren blev kaldt.
+.TP
+\-E
+Start
+.B Vim
+i forbedret Ex-tilstand, ligesom hvis "exim"-eksekverbaren blev kaldt.
+.TP
+\-f
+Forgrund. I GUI-versionen, vil
+.B Vim
+ikke fork'e og frigre fra skallen som den blev startet i.
+P Amiga, genstartes
+.B Vim
+ikke for at bne et nyt vindue.
+Tilvalget br bruges nr
+.B Vim
+udfres af et program der venter p at redigeringssession
+bliver frdig (f.eks. mail).
+P Amiga virker ":sh"- og ":!"-kommandoerne ikke.
+.TP
+\-\-nofork
+Forgrund. I GUI-versionen, vil
+.B Vim
+ikke fork'e og frigre fra skallen som den blev startet i.
+.TP
+\-F
+Hvis
+.B Vim
+blev kompileret med understttelse af FKMAP til redigering af filer som er
+orienteret hjre mod venstre og persisk tastaturlayout, s starter tilvalget
+.B Vim
+i persisk tilstand, dvs. 'fkmap' og 'rightleft' sttes.
+Ellers gives en fejlmeddelelse og
+.B Vim
+afbrydes.
+.TP
+\-g
+Hvis
+.B Vim
+blev kompileret med understttelse af GUI, s aktiveres GUI'en af
+denne valgmulighed. Hvis understttelse af GUI ikke blev kompileret ind,
+s gives en fejlmeddelelse og
+.B Vim
+afbrydes.
+.TP
+\-h
+Giv lidt hjlp om kommandolinjeargumenterne og tilvalgene.
+Herefter afsluttes
+.B Vim\c
+\&.
+.TP
+\-H
+Hvis
+.B Vim
+blev kompileret med understttelse af RIGHTLEFT til redigering af filer som er
+orienteret hjre mod venstre og hebraisk tastaturlayout, s starter tilvalget
+.B Vim
+i hebraisk tilstand, dvs. 'hkmap' og 'rightleft' sttes.
+Ellers gives en fejlmeddelelse og
+.B Vim
+afbrydes.
+.TP
+\-i {viminfo}
+Nr brug af viminfo-filen er aktiveret, s stter tilvalget det
+filnavn som skal bruges, i stedet for standarden "~/.viminfo".
+Det kan ogs bruges til at springe brugen af .viminfo-filen over,
+ved at give navnet "NONE".
+.TP
+\-L
+Samme som \-r.
+.TP
+\-l
+Lisp-tilstand.
+Stter 'lisp'- og 'showmatch'-valgmulighederne til.
+.TP
+\-m
+ndring af filer er deaktiveret.
+Nulstiller 'write'-valgmuligheden.
+Du kan stadig ndre bufferen, men det er ikke muligt at skrive en fil.
+.TP
+\-M
+ndringer tillades ikke. 'modifiable'- og 'write'-valgmulighederne fjernes,
+s ndringer ikke er tilladt og filer ikke kan skrives. Bemrk at
+valgmulighederne kan sttes for at gre det muligt at foretage ndringer.
+.TP
+\-N
+No-compatible-tilstand. Nulstil 'compatible'-valgmuligheden.
+Det fr
+.B Vim
+til at opfre sig en smule bedre, men mindre Vi-kompatibel, selvom der ikke
+findes en .vimrc-fil.
+.TP
+\-n
+Der bruges ingen swap-fil.
+Det er umuligt at gendanne efter programmet er holdt op med at virke.
+God hvis du vil redigere en fil p et meget langsomt medie (f.eks. floppy).
+Kan ogs gres med ":set uc=0".
+Kan fortrydes med ":set uc=200".
+.TP
+\-nb
+Bliv en editor-server til NetBeans. Se dokumentationen for detaljer.
+.TP
+\-o[N]
+bn N vinduer stablet.
+Nr N udelades, s bnes t vindue pr. fil.
+.TP
+\-O[N]
+bn N vinduer side om side.
+Nr N udelades, s bnes t vindue pr. fil.
+.TP
+\-p[N]
+bn N fanebladssider.
+Nr N udelades, s bnes n fanebladsside pr. fil.
+.TP
+\-R
+Skrivebeskyttet tilstand.
+'readonly'-valgmuligheden sttes.
+Du kan stadig redigere bufferen, men vil vre forhindret i
+fejlagtigt at overskrive en fil.
+Hvis du vil overskrive en fil, s tilfj et
+udrbstegn til Ex-kommandoen, som i ":w!".
+\-R-tilvalget indebrer ogs \-n-tilvalget (se ovenfor).
+'readonly'-valgmuligheden kan sls fra med ":set noro".
+Se ":help 'readonly'".
+.TP
+\-r
+Oplist swap-filer, med information om at bruge dem til gendannelse.
+.TP
+\-r {fil}
+Gendannelsestilstand.
+Swap-filen bruges til at gendanne en redigeringssession som holdt
+op med at virke. Swap-filen er en fil med det samme filnavn som tekstfilen,
+med ".swp" tilfjet i slutningen.
+Se ":help recovery".
+.TP
+\-s
+Stille tilstand. Kun nr der startes som "Ex" eller
+nr "\-e"-tilvalget blev givet inden "\-s"-tilvalget.
+.TP
+\-s {scriptind}
+Script-filen {scriptind} lses.
+Tegnene i filen fortolkes som havde du skrevet dem.
+Det samme kan gres med kommandoen ":source! {scriptind}".
+Hvis slutningen af filen ns inden editoren afslutter,
+s lses yderligere tegn fra tastaturet.
+.TP
+\-T {terminal}
+Fortller
+.B Vim
+navnet p terminalen som du bruger.
+Krves kun nr den automatisk mde ikke virker.
+Skal vre en terminal som kendes af
+.B Vim
+(indbygget) eller defineret i termcap- eller terminfo-filen.
+.TP
+\-u {vimrc}
+Brug kommandoerne i {vimrc}-filen til initialiseringer.
+Alle de andre initialiseringer springes over.
+Brug den til at redigere en srlig slags filer.
+Den kan ogs bruges til at springe alle initialiseringer over,
+ved at give navnet "NONE". Se ":help initialization" i vim for flere detaljer.
+.TP
+\-U {gvimrc}
+Brug kommandoerne i {gvimrc}-filen til GUI-initialiseringer.
+Alle de andre GUI-initialiseringer springes over.
+Den kan ogs bruges til at springe alle GUI-initialiseringer over,
+ved at give navnet "NONE". Se ":help gui\-init" i vim for flere detaljer.
+.TP
+\-V[N]
+Uddybende. Giv meddelelser om hvilke filer som er sourced og til lsning og
+skrivning af en viminfo-fil. Det valgfrie nummer N er vrdien af 'verbose'.
+Standard er 10.
+.TP
+\-v
+Start
+.B Vim
+i Vi-tilstand, ligesom eksekverbaren kaldet "vi". Det har kun virkning nr
+eksekverbaren kaldes "ex".
+.TP
+\-w {scriptud}
+Alle tegnene som du skrev optages i filen {scriptud}, indtil du afslutter
+.B Vim\c
+\&.
+Det er nyttigt hvis du vil oprette en script-fil som skal bruges med
+"vim \-s" eller ":source!".
+Hvis {scriptud}-filen findes, s tilfjes tegnene til slutningen.
+.TP
+\-W {scriptud}
+Ligesom \-w, men en eksisterende fil overskrives.
+.TP
+\-x
+Brug kryptering nr der skrives filer. Sprger efter en krypteringsngle.
+.TP
+\-X
+Opret ikke forbindelse til X-serveren. Afkorter opstartstiden i en terminal,
+men vinduets titel og udklipsholder bruges ikke.
+.TP
+\-y
+Start
+.B Vim
+i easy-tilstand, ligesom hvis "evim"- eller "eview"-eksekverbarene blev kaldt.
+Fr
+.B Vim
+til at opfre sig som en klik og skriv-editor.
+.TP
+\-Z
+Restriktiv tilstand. Virker ligesom eksekverbaren som begynder med "r".
+.TP
+\-\-
+Betegner slutningen af tilvalgene.
+Argumenter efter dette hndteres som et filnavn.
+Det kan bruges til at redigere et filnavn som begynder med et '\-'.
+.TP
+\-\-echo\-wid
+Kun GTK GUI: Ekko vinduets id p stdout.
+.TP
+\-\-help
+Giv en hjlpemeddelelse og afslut, ligesom "\-h".
+.TP
+\-\-literal
+Tag filnavnets argumenter bogstaveligt, udvid ikke jokertegn.
+Det har ingen virkning i Unix hvor skallen udvidder jokertegn.
+.TP
+\-\-noplugin
+Spring indlsning af plugins over. Indebres af \-u NONE.
+.TP
+\-\-remote
+Opret forbindelse til en Vim-server og f den til at redigere filerne
+som gives i resten af argumenterne. Hvis der ikke findes nogen server,
+s gives der en advarsel og filerne redigeres i den nuvrende Vim.
+.TP
+\-\-remote\-expr {udtryk}
+Opret forbindelse til en Vim-server, evaluer
+{udtryk} i den og udskriv resultatet p stdout.
+.TP
+\-\-remote\-send {ngler}
+Opret forbindelse til en Vim-server and send {ngler} til den.
+.TP
+\-\-remote\-silent
+Som \-\-remote, men uden advarslen nr der ikke findes nogen server.
+.TP
+\-\-remote\-wait
+Som \-\-remote, men Vim afslutter ikke fr filerne er blevet redigeret.
+.TP
+\-\-remote\-wait\-silent
+Som \-\-remote\-wait, men uden advarslen nr der ikke findes nogen server.
+.TP
+\-\-serverlist
+Oplist navnene p alle Vim-servere som der kan findes.
+.TP
+\-\-servername {navn}
+Brug servernavnet {navn}. Bruges til den nuvrende Vim,
+medmindre det bruges med et \-\-remote-argument,
+s er det navnet p serveren som der skal oprettes forbindelse til.
+.TP
+\-\-socketid {id}
+Kun GTK GUI: Brug GtkPlug-mekanismen til at kre gvim i et andet vindue.
+.TP
+\-\-version
+Udskriv versionsinformation og afslut.
+.SH ONLINEHJLP
+Skriv ":help" i
+.B Vim
+for at begynde.
+Skriv ":help emne" for at f hjlp til et bestemt emne.
+F.eks.: ":help ZZ" for at f hjlpe til "ZZ"-kommandoen.
+Brug <Tab> og CTRL-D for at fuldfre emner (":help cmdline\-completion").
+Tags findes til at hoppe fra et sted til et andet (en slags hypertekst-links,
+se ":help").
+Alle dokumentationsfiler kan vises p denne mde, f.eks.
+":help syntax.txt".
+.SH FILER
+.TP 15
+/usr/local/lib/vim/doc/*.txt
+.B Vim\c
+-dokumentationsfilerne.
+Brug ":help doc\-file\-list" for at f den fulde liste.
+.TP
+/usr/local/lib/vim/doc/tags
+Tags-filen som bruges til at finde information i dokumentationsfilerne.
+.TP
+/usr/local/lib/vim/syntax/syntax.vim
+Systembrede syntaksinitialiseringer.
+.TP
+/usr/local/lib/vim/syntax/*.vim
+Syntaksfiler til diverse sprog.
+.TP
+/usr/local/lib/vim/vimrc
+Systembrede
+.B Vim\c
+-initialiseringer.
+.TP
+~/.vimrc
+Dine personlige
+.B Vim\c
+-initialiseringer.
+.TP
+/usr/local/lib/vim/gvimrc
+Systembrede gvim-initialiseringer.
+.TP
+~/.gvimrc
+Dine personlige gvim-initialiseringer.
+.TP
+/usr/local/lib/vim/optwin.vim
+Script som bruges til ":options"-kommandoen,
+en god mde til at vise og stte valgmuligheder.
+.TP
+/usr/local/lib/vim/menu.vim
+Systembrede menu-initialiseringer til gvim.
+.TP
+/usr/local/lib/vim/bugreport.vim
+Script til at generere en fejlrapport. Se ":help bugs".
+.TP
+/usr/local/lib/vim/filetype.vim
+Script til at registrere filtypen ud fra navnet. Se ":help 'filetype'".
+.TP
+/usr/local/lib/vim/scripts.vim
+Script til at registrere filtypen ud fra indholdet. Se ":help 'filetype'".
+.TP
+/usr/local/lib/vim/print/*.ps
+Filer som bruges til PostScript-udskrivning.
+.PP
+Ls VIM-hjemmesiden for seneste info:
+.br
+<URL:http://www.vim.org/>
+.SH SE OGS
+vimtutor(1)
+.SH FORFATTER
+Det meste af
+.B Vim
+blev lavet af Bram Moolenaar, med en masse hjlp fra andre.
+Se ":help credits" i
+.B Vim\c
+\&.
+.br
+.B Vim
+er baseret p Stevie, arbejdet p af: Tim Thompson,
+Tony Andrews og G.R. (Fred) Walter.
+Selvom der nsten ikke er noget af den originale kode tilbage.
+.SH FEJL
+Formodentligt.
+Se ":help todo" for en liste over kendte problemer.
+.PP
+Bemrk at flere ting som af nogle kan anses som vrende fejl,
+faktisk er pga. en for nr reproduktion af Vi's opfrsel.
+Og hvis du tnker at andre ting er fejl "fordi Vi gr det anderledes",
+s kig nrmere p vi_diff.txt-filen (eller skriv :help vi_diff.txt i Vim).
+Se ogs 'compatible'- og 'cpoptions'-valgmulighederne.
diff --git a/runtime/doc/vim-da.UTF-8.1 b/runtime/doc/vim-da.UTF-8.1
new file mode 100644
index 0000000..451c30f
--- /dev/null
+++ b/runtime/doc/vim-da.UTF-8.1
@@ -0,0 +1,555 @@
+.TH VIM 1 "11. april 2006"
+.SH NAVN
+vim \- Vi IMproved, en programmørs teksteditor
+.SH SYNOPSIS
+.br
+.B vim
+[tilvalg] [fil ..]
+.br
+.B vim
+[tilvalg] \-
+.br
+.B vim
+[tilvalg] \-t tag
+.br
+.B vim
+[tilvalg] \-q [fejlfil]
+.PP
+.br
+.B ex
+.br
+.B view
+.br
+.B gvim
+.B gview
+.B evim
+.B eview
+.br
+.B rvim
+.B rview
+.B rgvim
+.B rgview
+.SH BESKRIVELSE
+.B Vim
+er en teksteditor som er opad kompatibel med Vi.
+Den kan bruges til at redigere alle slags ren tekst.
+Den er særlig nyttig til at redigere programmer.
+.PP
+Der er mange forbedringer over Vi: multiniveau fortryd,
+multivinduer og -buffere, syntaksfremhævning, redigering af kommandolinje,
+fuldførelse af filnavn, onlinehjælp, visuel markering, osv.
+Se ":help vi_diff.txt" for et overblik over forskellene mellem
+.B Vim
+og Vi.
+.PP
+Mens
+.B Vim
+kører, kan der indhentes massere af hjælp fra online-hjælpesystemet, med
+":help"-kommandoen.
+Se ONLINEHJÆLP-sektionen nedenfor.
+.PP
+Oftest startes
+.B Vim
+for at redigere en enkelt fil med kommandoen
+.PP
+ vim fil
+.PP
+Mere generelt startes
+.B Vim
+med:
+.PP
+ vim [tilvalg] [filliste]
+.PP
+Hvis fillisten mangler, så startes editoren med en tom buffer.
+Ellers kan én af følgende fire måder bruges til at vælge en eller
+flere filer som skal redigeres.
+.TP 12
+fil ..
+En liste over filnavne.
+Den første bliver den nuværende fil og læses ind i bufferen.
+Markøren placeres på den første linje i bufferen.
+Du kan gå til de andre filer med ":next"-kommandoen. Skriv "\-\-" foran
+fillisten, for at redigere en fil som begynder med en bindestreg.
+.TP
+\-
+Filen som skal redigeres læses fra stdin. Kommandoer læses fra stderr, hvilket
+skal være en tty.
+.TP
+\-t {tag}
+Filen som skal redigeres og den indledende markørplacering afhænger af
+et "tag", en slags gå til-etiket.
+{tag} opslås i tags-filen, den tilknyttede fil bliver den nuværende
+fil og den tilknyttede kommando udføres.
+Det bruges mest til C-programmer, hvor {tag} kunne være et
+funktionsnavn.
+Virkningen er at filen som indeholder funktionen bliver den nuværende fil
+og markøren placeres i begyndelsen af funktionen.
+Se ":help tag\-commands".
+.TP
+\-q [fejlfil]
+Start i quickFix-tilstand.
+Filen [fejlfil] læses og den første fejl vises.
+Hvis [fejlfil] udelades, så indhentes filnavnet fra 'errorfile'-valgmuligheden
+(standard er "AztecC.Err" på Amiga, "errors.err" på andre
+systemer).
+Der kan hoppes til yderligere fejl med ":cn"-kommandoen.
+Se ":help quickfix".
+.PP
+.B Vim
+opfører sig anderledes, afhængig af navnet på kommandoen (eksekverbaren kan
+stadig være den samme fil).
+.TP 10
+vim
+Den "normale" måde, alt er standard.
+.TP
+ex
+Start i Ex-tilstand.
+Gå til normal tilstand med ":vi"-kommandoen.
+Det kan også gøres med "\-e"-argumentet.
+.TP
+view
+Start i skrivebeskyttet tilstand. Du vil være beskyttet mod at skrive filerne.
+Det kan også gøres med "\-R"-argumentet.
+.TP
+gvim gview
+GUI-versionen.
+Starter et nyt vindue.
+Det kan også gøres med "\-g"-argumentet.
+.TP
+evim eview
+GUI-versionen i easy-tilstand.
+Starter et nyt vindue.
+Det kan også gøres med "\-y"-argumentet.
+.TP
+rvim rview rgvim rgview
+Som dem ovenfor, men med restriktioner. Det vil ikke være muligt at starte
+skalkommandoer, eller at suspendere
+.B Vim\c
+\&.
+Det kan også gøres med "\-Z"-argumentet.
+.SH TILVALG
+Tilvalgene kan gives i vilkårlig rækkefølge, før eller efter filnavnene.
+Tilvalg uden et argument kan kombineres efter en enkelt bindestreg.
+.TP 12
++[nummer]
+Ved den første fil, placeres markøren på linje "nummer".
+Hvis "nummer" mangler, så placeres markøren på den sidste linje.
+.TP
++/{sti}
+Ved den første fil, placeres markøren på linjen med den
+første forekomst af {sti}.
+Se ":help search\-pattern" for tilgængelige søgemønstre.
+.TP
++{kommando}
+.TP
+\-c {kommando}
+{kommando} udføres efter den første fil er blevet læst.
+{kommando} fortolkes som en Ex-kommando.
+Hvis {kommando} indeholder mellemrum, så skal den omsluttes af
+dobbelte citationstegn (det afhænger af den skal der bruges).
+Eksempel: Vim "+set si" main.c
+.br
+Bemærk: Du kan bruge op til 10 "+"- eller "\-c"-kommandoer.
+.TP
+\-S {fil}
+{fil} bliver sourced efter den første fil er blevet læst.
+Det svarer til \-c "source {fil}".
+{fil} må ikke begynde med '\-'.
+Hvis {fil} udelades, så bruges "Session.vim" (virker kun når \-S er det sidste
+argument).
+.TP
+\-\-cmd {kommando}
+Ligesom at bruge "\-c", men kommandoen udføres lige inden
+behandlingen af vimrc-filer.
+Du kan bruge op til 10 af disse kommandoer, uafhængigt af "\-c"-kommandoer.
+.TP
+\-A
+Hvis
+.B Vim
+blev kompileret med understøttelse af ARABIC til redigering af filer som er
+orienteret højre mod venstre og arabisk tastaturlayout, så starter tilvalget
+.B Vim
+i arabisk tilstand, dvs. 'arabic' sættes.
+Ellers gives en fejlmeddelelse og
+.B Vim
+afbrydes.
+.TP
+\-b
+Binær tilstand.
+Der sættes nogle få valgmuligheder som gør det muligt at redigere en
+binær eller eksekverbar fil.
+.TP
+\-C
+Kompatibel. Sæt 'compatible'-valgmuligheden.
+Det får
+.B Vim
+til at opføre sig mest som Vi, selvom der findes en .vimrc-fil.
+.TP
+\-d
+Start i diff-tilstand.
+Der skal være to, tre eller fire filnavneargumenter.
+.B Vim
+åbner alle filerne og viser forskellene mellem dem.
+Virker ligesom vimdiff(1).
+.TP
+\-d {enhed}
+Åbn {enhed} til brug som en terminal.
+Kun på Amiga.
+Eksempel:
+"\-d con:20/30/600/150".
+.TP
+\-D
+Fejlretning. Gå til fejlretningstilstand når den første kommando udføres fra
+et script.
+.TP
+\-e
+Start
+.B Vim
+i Ex-tilstand, ligesom hvis "ex"-eksekverbaren blev kaldt.
+.TP
+\-E
+Start
+.B Vim
+i forbedret Ex-tilstand, ligesom hvis "exim"-eksekverbaren blev kaldt.
+.TP
+\-f
+Forgrund. I GUI-versionen, vil
+.B Vim
+ikke fork'e og frigøre fra skallen som den blev startet i.
+På Amiga, genstartes
+.B Vim
+ikke for at åbne et nyt vindue.
+Tilvalget bør bruges når
+.B Vim
+udføres af et program der venter på at redigeringssession
+bliver færdig (f.eks. mail).
+På Amiga virker ":sh"- og ":!"-kommandoerne ikke.
+.TP
+\-\-nofork
+Forgrund. I GUI-versionen, vil
+.B Vim
+ikke fork'e og frigøre fra skallen som den blev startet i.
+.TP
+\-F
+Hvis
+.B Vim
+blev kompileret med understøttelse af FKMAP til redigering af filer som er
+orienteret højre mod venstre og persisk tastaturlayout, så starter tilvalget
+.B Vim
+i persisk tilstand, dvs. 'fkmap' og 'rightleft' sættes.
+Ellers gives en fejlmeddelelse og
+.B Vim
+afbrydes.
+.TP
+\-g
+Hvis
+.B Vim
+blev kompileret med understøttelse af GUI, så aktiveres GUI'en af
+denne valgmulighed. Hvis understøttelse af GUI ikke blev kompileret ind,
+så gives en fejlmeddelelse og
+.B Vim
+afbrydes.
+.TP
+\-h
+Giv lidt hjælp om kommandolinjeargumenterne og tilvalgene.
+Herefter afsluttes
+.B Vim\c
+\&.
+.TP
+\-H
+Hvis
+.B Vim
+blev kompileret med understøttelse af RIGHTLEFT til redigering af filer som er
+orienteret højre mod venstre og hebraisk tastaturlayout, så starter tilvalget
+.B Vim
+i hebraisk tilstand, dvs. 'hkmap' og 'rightleft' sættes.
+Ellers gives en fejlmeddelelse og
+.B Vim
+afbrydes.
+.TP
+\-i {viminfo}
+Når brug af viminfo-filen er aktiveret, så sætter tilvalget det
+filnavn som skal bruges, i stedet for standarden "~/.viminfo".
+Det kan også bruges til at springe brugen af .viminfo-filen over,
+ved at give navnet "NONE".
+.TP
+\-L
+Samme som \-r.
+.TP
+\-l
+Lisp-tilstand.
+Sætter 'lisp'- og 'showmatch'-valgmulighederne til.
+.TP
+\-m
+Ændring af filer er deaktiveret.
+Nulstiller 'write'-valgmuligheden.
+Du kan stadig ændre bufferen, men det er ikke muligt at skrive en fil.
+.TP
+\-M
+Ændringer tillades ikke. 'modifiable'- og 'write'-valgmulighederne fjernes,
+så ændringer ikke er tilladt og filer ikke kan skrives. Bemærk at
+valgmulighederne kan sættes for at gøre det muligt at foretage ændringer.
+.TP
+\-N
+No-compatible-tilstand. Nulstil 'compatible'-valgmuligheden.
+Det får
+.B Vim
+til at opføre sig en smule bedre, men mindre Vi-kompatibel, selvom der ikke
+findes en .vimrc-fil.
+.TP
+\-n
+Der bruges ingen swap-fil.
+Det er umuligt at gendanne efter programmet er holdt op med at virke.
+God hvis du vil redigere en fil på et meget langsomt medie (f.eks. floppy).
+Kan også gøres med ":set uc=0".
+Kan fortrydes med ":set uc=200".
+.TP
+\-nb
+Bliv en editor-server til NetBeans. Se dokumentationen for detaljer.
+.TP
+\-o[N]
+Åbn N vinduer stablet.
+Når N udelades, så åbnes ét vindue pr. fil.
+.TP
+\-O[N]
+Åbn N vinduer side om side.
+Når N udelades, så åbnes ét vindue pr. fil.
+.TP
+\-p[N]
+Åbn N fanebladssider.
+Når N udelades, så åbnes én fanebladsside pr. fil.
+.TP
+\-R
+Skrivebeskyttet tilstand.
+'readonly'-valgmuligheden sættes.
+Du kan stadig redigere bufferen, men vil være forhindret i
+fejlagtigt at overskrive en fil.
+Hvis du vil overskrive en fil, så tilføj et
+udråbstegn til Ex-kommandoen, som i ":w!".
+\-R-tilvalget indebærer også \-n-tilvalget (se ovenfor).
+'readonly'-valgmuligheden kan slås fra med ":set noro".
+Se ":help 'readonly'".
+.TP
+\-r
+Oplist swap-filer, med information om at bruge dem til gendannelse.
+.TP
+\-r {fil}
+Gendannelsestilstand.
+Swap-filen bruges til at gendanne en redigeringssession som holdt
+op med at virke. Swap-filen er en fil med det samme filnavn som tekstfilen,
+med ".swp" tilføjet i slutningen.
+Se ":help recovery".
+.TP
+\-s
+Stille tilstand. Kun når der startes som "Ex" eller
+når "\-e"-tilvalget blev givet inden "\-s"-tilvalget.
+.TP
+\-s {scriptind}
+Script-filen {scriptind} læses.
+Tegnene i filen fortolkes som havde du skrevet dem.
+Det samme kan gøres med kommandoen ":source! {scriptind}".
+Hvis slutningen af filen nås inden editoren afslutter,
+så læses yderligere tegn fra tastaturet.
+.TP
+\-T {terminal}
+Fortæller
+.B Vim
+navnet på terminalen som du bruger.
+Kræves kun når den automatisk måde ikke virker.
+Skal være en terminal som kendes af
+.B Vim
+(indbygget) eller defineret i termcap- eller terminfo-filen.
+.TP
+\-u {vimrc}
+Brug kommandoerne i {vimrc}-filen til initialiseringer.
+Alle de andre initialiseringer springes over.
+Brug den til at redigere en særlig slags filer.
+Den kan også bruges til at springe alle initialiseringer over,
+ved at give navnet "NONE". Se ":help initialization" i vim for flere detaljer.
+.TP
+\-U {gvimrc}
+Brug kommandoerne i {gvimrc}-filen til GUI-initialiseringer.
+Alle de andre GUI-initialiseringer springes over.
+Den kan også bruges til at springe alle GUI-initialiseringer over,
+ved at give navnet "NONE". Se ":help gui\-init" i vim for flere detaljer.
+.TP
+\-V[N]
+Uddybende. Giv meddelelser om hvilke filer som er sourced og til læsning og
+skrivning af en viminfo-fil. Det valgfrie nummer N er værdien af 'verbose'.
+Standard er 10.
+.TP
+\-v
+Start
+.B Vim
+i Vi-tilstand, ligesom eksekverbaren kaldet "vi". Det har kun virkning når
+eksekverbaren kaldes "ex".
+.TP
+\-w {scriptud}
+Alle tegnene som du skrev optages i filen {scriptud}, indtil du afslutter
+.B Vim\c
+\&.
+Det er nyttigt hvis du vil oprette en script-fil som skal bruges med
+"vim \-s" eller ":source!".
+Hvis {scriptud}-filen findes, så tilføjes tegnene til slutningen.
+.TP
+\-W {scriptud}
+Ligesom \-w, men en eksisterende fil overskrives.
+.TP
+\-x
+Brug kryptering når der skrives filer. Spørger efter en krypteringsnøgle.
+.TP
+\-X
+Opret ikke forbindelse til X-serveren. Afkorter opstartstiden i en terminal,
+men vinduets titel og udklipsholder bruges ikke.
+.TP
+\-y
+Start
+.B Vim
+i easy-tilstand, ligesom hvis "evim"- eller "eview"-eksekverbarene blev kaldt.
+Får
+.B Vim
+til at opføre sig som en klik og skriv-editor.
+.TP
+\-Z
+Restriktiv tilstand. Virker ligesom eksekverbaren som begynder med "r".
+.TP
+\-\-
+Betegner slutningen af tilvalgene.
+Argumenter efter dette håndteres som et filnavn.
+Det kan bruges til at redigere et filnavn som begynder med et '\-'.
+.TP
+\-\-echo\-wid
+Kun GTK GUI: Ekko vinduets id på stdout.
+.TP
+\-\-help
+Giv en hjælpemeddelelse og afslut, ligesom "\-h".
+.TP
+\-\-literal
+Tag filnavnets argumenter bogstaveligt, udvid ikke jokertegn.
+Det har ingen virkning i Unix hvor skallen udvidder jokertegn.
+.TP
+\-\-noplugin
+Spring indlæsning af plugins over. Indebæres af \-u NONE.
+.TP
+\-\-remote
+Opret forbindelse til en Vim-server og få den til at redigere filerne
+som gives i resten af argumenterne. Hvis der ikke findes nogen server,
+så gives der en advarsel og filerne redigeres i den nuværende Vim.
+.TP
+\-\-remote\-expr {udtryk}
+Opret forbindelse til en Vim-server, evaluer
+{udtryk} i den og udskriv resultatet på stdout.
+.TP
+\-\-remote\-send {nøgler}
+Opret forbindelse til en Vim-server and send {nøgler} til den.
+.TP
+\-\-remote\-silent
+Som \-\-remote, men uden advarslen når der ikke findes nogen server.
+.TP
+\-\-remote\-wait
+Som \-\-remote, men Vim afslutter ikke før filerne er blevet redigeret.
+.TP
+\-\-remote\-wait\-silent
+Som \-\-remote\-wait, men uden advarslen når der ikke findes nogen server.
+.TP
+\-\-serverlist
+Oplist navnene på alle Vim-servere som der kan findes.
+.TP
+\-\-servername {navn}
+Brug servernavnet {navn}. Bruges til den nuværende Vim,
+medmindre det bruges med et \-\-remote-argument,
+så er det navnet på serveren som der skal oprettes forbindelse til.
+.TP
+\-\-socketid {id}
+Kun GTK GUI: Brug GtkPlug-mekanismen til at køre gvim i et andet vindue.
+.TP
+\-\-version
+Udskriv versionsinformation og afslut.
+.SH ONLINEHJÆLP
+Skriv ":help" i
+.B Vim
+for at begynde.
+Skriv ":help emne" for at få hjælp til et bestemt emne.
+F.eks.: ":help ZZ" for at få hjælpe til "ZZ"-kommandoen.
+Brug <Tab> og CTRL-D for at fuldføre emner (":help cmdline\-completion").
+Tags findes til at hoppe fra et sted til et andet (en slags hypertekst-links,
+se ":help").
+Alle dokumentationsfiler kan vises på denne måde, f.eks.
+":help syntax.txt".
+.SH FILER
+.TP 15
+/usr/local/lib/vim/doc/*.txt
+.B Vim\c
+-dokumentationsfilerne.
+Brug ":help doc\-file\-list" for at få den fulde liste.
+.TP
+/usr/local/lib/vim/doc/tags
+Tags-filen som bruges til at finde information i dokumentationsfilerne.
+.TP
+/usr/local/lib/vim/syntax/syntax.vim
+Systembrede syntaksinitialiseringer.
+.TP
+/usr/local/lib/vim/syntax/*.vim
+Syntaksfiler til diverse sprog.
+.TP
+/usr/local/lib/vim/vimrc
+Systembrede
+.B Vim\c
+-initialiseringer.
+.TP
+~/.vimrc
+Dine personlige
+.B Vim\c
+-initialiseringer.
+.TP
+/usr/local/lib/vim/gvimrc
+Systembrede gvim-initialiseringer.
+.TP
+~/.gvimrc
+Dine personlige gvim-initialiseringer.
+.TP
+/usr/local/lib/vim/optwin.vim
+Script som bruges til ":options"-kommandoen,
+en god måde til at vise og sætte valgmuligheder.
+.TP
+/usr/local/lib/vim/menu.vim
+Systembrede menu-initialiseringer til gvim.
+.TP
+/usr/local/lib/vim/bugreport.vim
+Script til at generere en fejlrapport. Se ":help bugs".
+.TP
+/usr/local/lib/vim/filetype.vim
+Script til at registrere filtypen ud fra navnet. Se ":help 'filetype'".
+.TP
+/usr/local/lib/vim/scripts.vim
+Script til at registrere filtypen ud fra indholdet. Se ":help 'filetype'".
+.TP
+/usr/local/lib/vim/print/*.ps
+Filer som bruges til PostScript-udskrivning.
+.PP
+Læs VIM-hjemmesiden for seneste info:
+.br
+<URL:http://www.vim.org/>
+.SH SE OGSÅ
+vimtutor(1)
+.SH FORFATTER
+Det meste af
+.B Vim
+blev lavet af Bram Moolenaar, med en masse hjælp fra andre.
+Se ":help credits" i
+.B Vim\c
+\&.
+.br
+.B Vim
+er baseret på Stevie, arbejdet på af: Tim Thompson,
+Tony Andrews og G.R. (Fred) Walter.
+Selvom der næsten ikke er noget af den originale kode tilbage.
+.SH FEJL
+Formodentligt.
+Se ":help todo" for en liste over kendte problemer.
+.PP
+Bemærk at flere ting som af nogle kan anses som værende fejl,
+faktisk er pga. en for nær reproduktion af Vi's opførsel.
+Og hvis du tænker at andre ting er fejl "fordi Vi gør det anderledes",
+så kig nærmere på vi_diff.txt-filen (eller skriv :help vi_diff.txt i Vim).
+Se også 'compatible'- og 'cpoptions'-valgmulighederne.
diff --git a/runtime/doc/vim-ja.UTF-8.1 b/runtime/doc/vim-ja.UTF-8.1
index 5b7798b..363922b 100644
--- a/runtime/doc/vim-ja.UTF-8.1
+++ b/runtime/doc/vim-ja.UTF-8.1
@@ -36,8 +36,7 @@ vim \- Vi IMproved, プログラマのテキストエディタ
特に、プログラムの編集に力を発揮します。
.PP
Vi に多くの改良が加えられています:
-多段アンドゥ、マルチウィンドウ、マルチバッファ、構文強調表示、
-コマンドライン編集、ファイル名補完、ヘルプ、ビジュアル選択、などなど。
+多段アンドゥ、マルチウィンドウ、マルチバッファ、構文強調表示、コマンドライン編集、ファイル名補完、ヘルプ、ビジュアル選択、などなど。
.B Vim
と Vi の違いについての要約は ":help vi_diff.txt" を参照してください。
.PP
@@ -66,24 +65,23 @@ file ..
filelist の前に "\-\-" を指定してください。
.TP
\-
-ファイルは標準入力から読み込まれます。コマンドは標準エラー (ttyからの入
-力になっているはず) から読み込まれます。
+ファイルは標準入力から読み込まれます。コマンドは標準エラー
+(ttyからの入力になっているはず) から読み込まれます。
.TP
\-t {tag}
開くファイルとカーソルの初期位置は "tag" に依存します。goto label の一種です。
-tags ファイルから {tag} が検索され、関連したファイルがカレントファイルになり
-ます。そして、関連したコマンドが実行されます。
-これは主に C 言語のファイルを開くときに使われます。その場合 {tag} に関数など
-を指定して使います。
-関数を含んでいるファイルが開かれ、その関数の先頭にカーソルが移動する、
-という動作になります。
+tags ファイルから {tag} が検索され、関連したファイルがカレントファイルになります。
+そして、関連したコマンドが実行されます。
+これは主に C 言語のファイルを開くときに使われます。
+その場合 {tag} に関数などを指定して使います。
+関数を含んでいるファイルが開かれ、その関数の先頭にカーソルが移動する、という動作になります。
詳しくは ":help tag\-commands" を参照してください。
.TP
\-q [errorfile]
クイックフィックスモードで起動します。
[errorfile] に指定したファイルが読み込まれ、最初のエラーが表示されます。
-[errorfile] を省略した場合は、オプション 'errorfile' が使われます (初期設定
-は、Amiga では "AztecC.Err"、その他のシステムでは "errors.err" です)。
+[errorfile] を省略した場合は、オプション 'errorfile' が使われます
+(初期設定は、Amiga では "AztecC.Err"、その他のシステムでは "errors.err" です)。
":cn" コマンドで次のエラーにジャンプできます。
詳しくは ":help quickfix" を参照してください。
.PP
@@ -144,16 +142,15 @@ Note: "+" と "\-c" は合わせて 10 個まで指定できます。
一番目のファイルが読み込まれた後に {file} が実行されます。
これは \-c "source {file}" と同じ動作です。
{file} の先頭が '\-' の場合は使えません。
-{file} が省略された場合は、"Session.vim" が使われます (ただし \-S が最後の引
-数だった場合のみ)。
+{file} が省略された場合は、"Session.vim" が使われます
+(ただし \-S が最後の引数だった場合のみ)。
.TP
\-\-cmd {command}
"\-c" と同じですが、vimrc を処理する前にコマンドが実行されます。
これらのコマンドは "\-c" コマンドとは別に、10 個まで指定できます。
.TP
\-A
-アラビア語がサポートされていて、アラビア語キーマップがある場合は、
-アラビア語モードで起動します ('arabic' がオンになります)。
+アラビア語がサポートされていて、アラビア語キーマップがある場合は、アラビア語モードで起動します ('arabic' がオンになります)。
右横書きのファイルを編集できます。
サポートされていない場合はエラーメッセージを表示して終了します。
.TP
@@ -180,8 +177,8 @@ Amiga でのみ使います。
"\-d con:20/30/600/150".
.TP
\-D
-デバッグ。スクリプトの最初のコマンドが実行されるところからデバッグモードを開
-始します。
+デバッグ。
+スクリプトの最初のコマンドが実行されるところからデバッグモードを開始します。
.TP
\-e
Ex モードで起動します。
@@ -203,8 +200,7 @@ Amiga では、":sh" と "!" コマンドは機能しなくなります。
フォアグラウンド。GUI バージョンで、プロセスをフォークしなくなります。
.TP
\-F
-ペルシア語がサポートされていて、ペルシア語キーマップがある場合は、
-ペルシア語モードで起動します ('fkmap' と 'rightleft' がオンになります)。
+ペルシア語がサポートされていて、ペルシア語キーマップがある場合は、ペルシア語モードで起動します ('fkmap' と 'rightleft' がオンになります)。
右横書きのファイルを編集できます。
サポートされていない場合はエラーメッセージを表示して終了します。
.TP
@@ -216,14 +212,13 @@ GUI がサポートされている場合は、GUI で起動します。
コマンドライン引数やオプションのヘルプを表示して終了します。
.TP
\-H
-ヘブライ語がサポートされていて、ヘブライ語キーマップがある場合は、
-ヘブライ語モードで起動します ('hkmap' と 'rightleft' がオンになります)。
+ヘブライ語がサポートされていて、ヘブライ語キーマップがある場合は、ヘブライ語モードで起動します ('hkmap' と 'rightleft' がオンになります)。
右横書きのファイルを編集できます。
サポートされていない場合はエラーメッセージを表示して終了します。
.TP
\-i {viminfo}
-viminfo ファイルを使う設定になっている場合は、初期設定の "~/.viminfo" の代わ
-りに、指定されたファイルを設定します。
+viminfo ファイルを使う設定になっている場合は、初期設定の "~/.viminfo"
+の代わりに、指定されたファイルを設定します。
"NONE" を指定すると、.viminfo ファイルを使わないように設定できます。
.TP
\-L
@@ -239,8 +234,8 @@ lisp モード。
バッファを変更することはできますが、ファイルを保存することはできません。
.TP
\-M
-変更を不可能にします。オプションの 'modifiable' と 'write' がオフになり、
-ファイルの変更と保存ができなくなります。
+変更を不可能にします。
+オプションの 'modifiable' と 'write' がオフになり、ファイルの変更と保存ができなくなります。
Note: それらのオプションを設定すれば変更できるようになります。
.TP
\-N
@@ -252,8 +247,7 @@ Note: それらのオプションを設定すれば変更できるようにな
\-n
スワップファイルを使用しません。
クラッシュしてもリカバリできなくなります。
-フロッピーディスクのような非常に低速なメディアのファイルを読み書きするときに
-便利です。
+フロッピーディスクのような非常に低速なメディアのファイルを読み書きするときに便利です。
":set uc=0" と設定しても同じです。
戻すには ":set uc=200" と設定してください。
.TP
@@ -276,10 +270,8 @@ N を省略した場合は、引数のファイルを個別のタブページで
\-R
読み込み専用モード。
オプション 'readonly' がオンになります。
-バッファを変更することはできますが、間違ってファイルを上書きしてしまうのを防
-ぐことができます。
-ファイルを保存したい場合は、":w!" のように、Ex コマンドに感嘆符を付けてくだ
-さい。
+バッファを変更することはできますが、間違ってファイルを上書きしてしまうのを防ぐことができます。
+ファイルを保存したい場合は、":w!" のように、Ex コマンドに感嘆符を付けてください。
\-R オプションは \-n オプションの効果も含んでいます (上記参照)。
オプション 'readonly' は ":set noro" でオフにできます。
詳しくは ":help 'readonly'" を参照してください。
@@ -301,13 +293,13 @@ N を省略した場合は、引数のファイルを個別のタブページで
{scriptin} をスクリプトファイルとして読み込まれます。
ファイル中の文字列は、手で入力したときと同じように処理されます。
これは ":source! {scriptin}" と同じ動作です。
-エディタが終了する前にファイルの終わりまで読み込んだ場合、
-それ以降はキーボードから入力を読み込みます。
+エディタが終了する前にファイルの終わりまで読み込んだ場合、それ以降はキーボードから入力を読み込みます。
.TP
\-T {terminal}
端末の名前を指定します。
端末が自動的に認識されない場合に使ってください。
-Vim が組み込みでサポートしている名前か、
+.B Vim
+が組み込みでサポートしている名前か、
termcap または terminfo ファイルで定義されている名前を指定してください。
.TP
\-u {vimrc}
@@ -324,8 +316,9 @@ termcap または terminfo ファイルで定義されている名前を指定
詳しくは ":help gui\-init" を参照してください。
.TP
\-V[N]
-冗長モード。スクリプトファイルを実行したり viminfo ファイルを読み書きするた
-びにメッセージを表示します。N に指定した数値が 'verbose' に設定されます。
+冗長モード。
+スクリプトファイルを実行したり viminfo ファイルを読み書きするたびにメッセージを表示します。
+N に指定した数値が 'verbose' に設定されます。
省略した場合は 10 になります。
.TP
\-v
@@ -335,8 +328,7 @@ Vi モードで起動します。
.TP
\-w {scriptout}
入力した文字を {scriptout} に記録します。
-"vim \-s" や "source!" で実行するためのスクリプトファイルを作成するのに便利
-です。
+"vim \-s" や "source!" で実行するためのスクリプトファイルを作成するのに便利です。
{scriptout} ファイルがすでに存在した場合は追加保存されます。
.TP
\-W {scriptout}
@@ -371,46 +363,40 @@ GTK GUI のみ: Window ID を標準出力に出力します。
ヘルプを表示して終了します。"\-h" と同じです。
.TP
\-\-literal
-引数のファイル名をリテラル文字列として扱います。ワイルドカードを展開しませ
-ん。Unix のように、シェルがワイルドカードを展開する場合は機能しません。
+引数のファイル名をリテラル文字列として扱います。ワイルドカードを展開しません。
+Unix のように、シェルがワイルドカードを展開する場合は機能しません。
.TP
\-\-noplugin
プラグインをロードしません。\-u NONE はこの動作を含んでいます。
.TP
\-\-remote
Vim サーバーと通信し、引数に指定されたファイルを Vim サーバーで開きます。
-サーバーが存在しない場合は、エラーメッセージを表示され、起動中の Vim でファ
-イルが開かれます。
+サーバーが存在しない場合は、エラーメッセージを表示され、起動中の Vim でファイルが開かれます。
.TP
\-\-remote\-expr {expr}
-Vim サーバーと通信し、{expr} に与えられた式を Vim サーバーで実行し、結果を標
-準出力に出力します。
+Vim サーバーと通信し、{expr} に与えられた式を Vim サーバーで実行し、結果を標準出力に出力します。
.TP
\-\-remote\-send {keys}
Vim サーバーと通信し、{keys} に与えられたキーを Vim サーバーに送信します。
.TP
\-\-remote\-silent
-\-\-remote と同じですが、サーバーが存在しなくてもエラーメッセージを表示しま
-せん。
+\-\-remote と同じですが、サーバーが存在しなくてもエラーメッセージを表示しません。
.TP
\-\-remote\-wait
\-\-remote と同じですが、ファイルが開かれるのを確認できるまで待機します。
.TP
\-\-remote\-wait\-silent
-\-\-remote\-wait と同じですが、サーバーが存在しなくてもエラーメッセージを表
-示しません。
+\-\-remote\-wait と同じですが、サーバーが存在しなくてもエラーメッセージを表示しません。
.TP
\-\-serverlist
Vim サーバーの一覧を表示します。
.TP
\-\-servername {name}
-サーバーの名前を {name} に設定します。\-\-remote 引数を指定しなかった場合
-は、起動中の Vim の名前として使われるので、後からその名前を使ってサーバー通
-信できます。
+サーバーの名前を {name} に設定します。
+\-\-remote 引数を指定しなかった場合は、起動中の Vim の名前として使われるので、後からその名前を使ってサーバー通信できます。
.TP
\-\-socketid {id}
-GTK GUI のみ: GtkPlug メカニズムを使って gvim を別のウィンドウの中で実行しま
-す。
+GTK GUI のみ: GtkPlug メカニズムを使って gvim を別のウィンドウの中で実行します。
.TP
\-\-version
バージョン情報を表示して終了します。
@@ -459,8 +445,8 @@ GTK GUI のみ: GtkPlug メカニズムを使って gvim を別のウィンド
ユーザーの gvim 初期化ファイル。
.TP
/usr/local/lib/vim/optwin.vim
-":options" コマンドで使われるファイル。オプションを表示したり設定したりでき
-ます。
+":options" コマンドで使われるファイル。
+オプションを表示したり設定したりできます。
.TP
/usr/local/lib/vim/menu.vim
システムのメニュー初期化ファイル。gvim で使います。
@@ -494,8 +480,7 @@ G.R. (Fred) Walter によって開発されました。
.SH バグ
既知のバグは ":help todo" に記載されています。
.PP
-Vi の動作を忠実に再現した結果、多くの人がバグだと思うような機能もいくつかあ
-ります。
-"この動作は Vi と違う" からバグだと思った場合は、vi_diff.txtを確認してみてく
-ださい (ファイルを開くか、Vim から ":help vi_diff.txt" と入力)。
+Vi の動作を忠実に再現した結果、多くの人がバグだと思うような機能もいくつかあります。
+"この動作は Vi と違う" からバグだと思った場合は、 vi_diff.txt を確認してみてください
+(ファイルを開くか、 Vim から ":help vi_diff.txt" と入力)。
オプションの 'compatible' と 'cpoptions' も確認してください。
diff --git a/runtime/doc/vim.1 b/runtime/doc/vim.1
index 20714b7..3c29361 100644
--- a/runtime/doc/vim.1
+++ b/runtime/doc/vim.1
@@ -108,8 +108,8 @@ Go to Normal mode with the ":vi" command.
Can also be done with the "\-e" argument.
.TP
view
-Start in read-only mode. You will be protected from writing the files. Can
-also be done with the "\-R" argument.
+Start in read-only mode. You will be protected from writing the files.
+Can also be done with the "\-R" argument.
.TP
gvim gview
The GUI version.
@@ -142,8 +142,7 @@ See ":help search\-pattern" for the available search patterns.
+{command}
.TP
\-c {command}
-{command} will be executed after the
-first file has been read.
+{command} will be executed after the first file has been read.
{command} is interpreted as an Ex command.
If the {command} contains spaces it must be enclosed in double quotes (this
depends on the shell that is used).
@@ -355,8 +354,7 @@ Tells
.B Vim
the name of the terminal you are using.
Only required when the automatic way doesn't work.
-Should be a terminal known
-to
+Should be a terminal known to
.B Vim
(builtin) or defined in the termcap or terminfo file.
.TP
diff --git a/runtime/doc/vimdiff-da.1 b/runtime/doc/vimdiff-da.1
new file mode 100644
index 0000000..194bce2
--- /dev/null
+++ b/runtime/doc/vimdiff-da.1
@@ -0,0 +1,50 @@
+.TH VIMDIFF 1 "30. marts 2001"
+.SH NAVN
+vimdiff \- rediger to, tre eller fire version af en fil med Vim,
+og vis forskellene
+.SH SYNOPSIS
+.br
+.B vimdiff
+[tilvalg] fil1 fil2 [fil3 [fil4]]
+.PP
+.B gvimdiff
+.SH BESKRIVELSE
+.B Vimdiff
+starter
+.B Vim
+p to (eller tre eller fire) filer.
+Hver fil fr sit eget vindue.
+Forskellene mellem filerne fremhves.
+Det er en fin mde til at inspicere ndringer og til at flytte ndringer fra
+en version til en anden version af den samme fil.
+.PP
+Se vim(1) for detaljer om selve Vim.
+.PP
+Nr den startes som
+.B gvimdiff
+, s starter den GUI'en, hvis den er tilgngelig.
+.PP
+I hvert vindue sttes 'diff'-valgmuligheden, som fr forskellene
+til at blive fremhvet.
+.br
+\'wrap'- og 'scrollbind'-valgmulighederne sttes for at f teksten til
+at se godt ud.
+.br
+\'foldmethod'-valgmuligheden sttes til "diff", hvilket lgger omrder af
+linjer uden ndringer i en sammenfoldning. 'foldcolumn' sttes til to,
+for at gre det lettere at se sammenfoldningerne og bne eller lukke dem.
+.SH TILVALG
+Lodrette opdelinger bruges til at opstille linjerne, som hvis "\-O"-argumentet
+blev brugt.
+Brug "\-o"-argumentet, for i stedet at bruge vandrette opdelinger.
+.PP
+Se vim(1) for alle andre argumenter.
+.SH SE OGS
+vim(1)
+.SH FORFATTER
+Det meste af
+.B Vim
+blev lavet af Bram Moolenaar, med en masse hjlp fra andre.
+Se ":help credits" i
+.B Vim\c
+\&. \ No newline at end of file
diff --git a/runtime/doc/vimdiff-da.UTF-8.1 b/runtime/doc/vimdiff-da.UTF-8.1
new file mode 100644
index 0000000..e8373a8
--- /dev/null
+++ b/runtime/doc/vimdiff-da.UTF-8.1
@@ -0,0 +1,50 @@
+.TH VIMDIFF 1 "30. marts 2001"
+.SH NAVN
+vimdiff \- rediger to, tre eller fire version af en fil med Vim,
+og vis forskellene
+.SH SYNOPSIS
+.br
+.B vimdiff
+[tilvalg] fil1 fil2 [fil3 [fil4]]
+.PP
+.B gvimdiff
+.SH BESKRIVELSE
+.B Vimdiff
+starter
+.B Vim
+på to (eller tre eller fire) filer.
+Hver fil får sit eget vindue.
+Forskellene mellem filerne fremhæves.
+Det er en fin måde til at inspicere ændringer og til at flytte ændringer fra
+en version til en anden version af den samme fil.
+.PP
+Se vim(1) for detaljer om selve Vim.
+.PP
+Når den startes som
+.B gvimdiff
+, så starter den GUI'en, hvis den er tilgængelig.
+.PP
+I hvert vindue sættes 'diff'-valgmuligheden, som får forskellene
+til at blive fremhævet.
+.br
+\'wrap'- og 'scrollbind'-valgmulighederne sættes for at få teksten til
+at se godt ud.
+.br
+\'foldmethod'-valgmuligheden sættes til "diff", hvilket lægger områder af
+linjer uden ændringer i en sammenfoldning. 'foldcolumn' sættes til to,
+for at gøre det lettere at se sammenfoldningerne og åbne eller lukke dem.
+.SH TILVALG
+Lodrette opdelinger bruges til at opstille linjerne, som hvis "\-O"-argumentet
+blev brugt.
+Brug "\-o"-argumentet, for i stedet at bruge vandrette opdelinger.
+.PP
+Se vim(1) for alle andre argumenter.
+.SH SE OGSÅ
+vim(1)
+.SH FORFATTER
+Det meste af
+.B Vim
+blev lavet af Bram Moolenaar, med en masse hjælp fra andre.
+Se ":help credits" i
+.B Vim\c
+\&.
diff --git a/runtime/doc/vimdiff-ja.UTF-8.1 b/runtime/doc/vimdiff-ja.UTF-8.1
index 56fadfe..03fb900 100644
--- a/runtime/doc/vimdiff-ja.UTF-8.1
+++ b/runtime/doc/vimdiff-ja.UTF-8.1
@@ -13,26 +13,21 @@ vimdiff \- 二つか三つか四つのファイルを Vim で開いて、その
.B Vim
で開きます。
ファイルは個別のウィンドウで開かれ、差分が強調表示されます。
-同じファイルの別のバージョン間で、変更を確認したり、変更を移動したりするのが
-簡単になります。
+同じファイルの別のバージョン間で、変更を確認したり、変更を移動したりするのが簡単になります。
.PP
Vim についての詳細は vim(1) を参照してください。
.PP
.B gvimdiff
という名前で起動された場合は GUI で起動します。
.PP
-差分を強調表示するために、
-それぞれのウィンドウの 'diff' オプションがオンに設定されます。
+差分を強調表示するために、それぞれのウィンドウの 'diff' オプションがオンに設定されます。
.br
-テキストを見やすくするために、オプションの 'wrap' と 'scrollbind' もオンに設
-定されます。
+テキストを見やすくするために、オプションの 'wrap' と 'scrollbind' もオンに設定されます。
.br
- 'foldmethod' オプションは "diff" に設定され、変更されていない行は折り畳まれ
-ます。
+ 'foldmethod' オプションは "diff" に設定され、変更されていない行は折り畳まれます。
折り畳みの確認と開閉が簡単にできるように、'foldcolumn' は 2 に設定されます。
.SH オプション
-行を並べて表示するために、"\-O" 引数を使ったときのように、ウィンドウは垂直分
-割されます。
+行を並べて表示するために、"\-O" 引数を使ったときのように、ウィンドウは垂直分割されます。
ウィンドウを水平分割したい場合は "\-o" 引数を使ってください。
.PP
その他の引数については vim(1) を参照してください。
diff --git a/runtime/doc/vimtutor-da.1 b/runtime/doc/vimtutor-da.1
new file mode 100644
index 0000000..ec8cde0
--- /dev/null
+++ b/runtime/doc/vimtutor-da.1
@@ -0,0 +1,53 @@
+.TH VIMTUTOR 1 "2. april 2001"
+.SH NAVN
+vimtutor \- Vim-vejledningen
+.SH SYNOPSIS
+.br
+.B vimtutor [\-g] [sprog]
+.SH BESKRIVELSE
+.B Vimtutor
+starter
+.B Vim\c
+-vejledningen.
+Det kopierer frst vejledningsfilen, s den kan ndres uden at ndre
+den originale fil.
+.PP
+.B Vimtutor
+er nyttig til personer der vil lre deres frste
+.B Vim\c
+-kommandoer.
+.PP
+Det valgfrie argument \-g starter vimtutor med gvim fremfor vim, hvis
+GUI-versionen af vim er tilgngelig, ellers bruges Vim hvis ikke gvim findes.
+.PP
+Det valgfrie [sprog]-argument er navnet p et sprog, p 2 bogstaver, ssom
+"da" eller "fi".
+Hvis [sprog]-argumentet mangler, bruges sproget fra den nuvrende lokalitet.
+Hvis der findes er en vejledning p dette sprog, s bruges den.
+Ellers bruges den engelske version.
+.PP
+.B Vim
+startes altid i Vi-kompatibel tilstand.
+.SH FILER
+.TP 15
+/usr/local/lib/vim/tutor/tutor[.sprog]
+.B Vimtutor\c
+-tekstfilerne.
+.TP 15
+/usr/local/lib/vim/tutor/tutor.vim
+Vim-scriptet som bruges til at kopiere
+.B Vimtutor\c
+-tekstfilen.
+.SH FORFATTER
+.B Vimtutor
+blev oprindeligt skrevet til Vi af Michael C. Pierce og Robert K. Ware,
+Colorado School of Mines med ideer af Charles Smith,
+Colorado State University.
+E-mail: bware@mines.colorado.edu.
+.br
+Den blev ndret til
+.B Vim
+af Bram Moolenaar.
+Overstternes navne kan ses i tutor-filerne.
+.SH SE OGS
+vim(1)
diff --git a/runtime/doc/vimtutor-da.UTF-8.1 b/runtime/doc/vimtutor-da.UTF-8.1
new file mode 100644
index 0000000..feb7ea3
--- /dev/null
+++ b/runtime/doc/vimtutor-da.UTF-8.1
@@ -0,0 +1,53 @@
+.TH VIMTUTOR 1 "2. april 2001"
+.SH NAVN
+vimtutor \- Vim-vejledningen
+.SH SYNOPSIS
+.br
+.B vimtutor [\-g] [sprog]
+.SH BESKRIVELSE
+.B Vimtutor
+starter
+.B Vim\c
+-vejledningen.
+Det kopierer først vejledningsfilen, så den kan ændres uden at ændre
+den originale fil.
+.PP
+.B Vimtutor
+er nyttig til personer der vil lære deres første
+.B Vim\c
+-kommandoer.
+.PP
+Det valgfrie argument \-g starter vimtutor med gvim fremfor vim, hvis
+GUI-versionen af vim er tilgængelig, ellers bruges Vim hvis ikke gvim findes.
+.PP
+Det valgfrie [sprog]-argument er navnet på et sprog, på 2 bogstaver, såsom
+"da" eller "fi".
+Hvis [sprog]-argumentet mangler, bruges sproget fra den nuværende lokalitet.
+Hvis der findes er en vejledning på dette sprog, så bruges den.
+Ellers bruges den engelske version.
+.PP
+.B Vim
+startes altid i Vi-kompatibel tilstand.
+.SH FILER
+.TP 15
+/usr/local/lib/vim/tutor/tutor[.sprog]
+.B Vimtutor\c
+-tekstfilerne.
+.TP 15
+/usr/local/lib/vim/tutor/tutor.vim
+Vim-scriptet som bruges til at kopiere
+.B Vimtutor\c
+-tekstfilen.
+.SH FORFATTER
+.B Vimtutor
+blev oprindeligt skrevet til Vi af Michael C. Pierce og Robert K. Ware,
+Colorado School of Mines med ideer af Charles Smith,
+Colorado State University.
+E-mail: bware@mines.colorado.edu.
+.br
+Den blev ændret til
+.B Vim
+af Bram Moolenaar.
+Oversætternes navne kan ses i tutor-filerne.
+.SH SE OGSÅ
+vim(1)
diff --git a/runtime/doc/vimtutor-ja.UTF-8.1 b/runtime/doc/vimtutor-ja.UTF-8.1
index 29b9b48..2ba8f43 100644
--- a/runtime/doc/vimtutor-ja.UTF-8.1
+++ b/runtime/doc/vimtutor-ja.UTF-8.1
@@ -7,14 +7,13 @@ vimtutor \- Vim チュートリアル
.SH 説明
.B Vim
のチュートリアルを起動します。
-演習ファイルのコピーを使って実施するので、オリジナルの演習ファイルを壊してし
-まう心配はありません。
+演習ファイルのコピーを使って実施するので、オリジナルの演習ファイルを壊してしまう心配はありません。
.PP
.B Vim
を初めて学ぶ人向けのチュートリアルです。
.PP
-引数に \-g を指定すると GUI 版の vim が利用可能であれば vim ではなく gvim を
-使って vimtutor が開始します。gvim が見つからないときは Vim が使用されます。
+引数に \-g を指定すると GUI 版の vim が利用可能であれば vim ではなく gvim
+を使って vimtutor が開始します。gvim が見つからないときは Vim が使用されます。
.PP
[language] 引数は "ja" や "es" などの二文字の言語名です。
[language] 引数を省略した場合はロケールの言語が使われます。
@@ -34,8 +33,8 @@ vimtutor \- Vim チュートリアル
.SH 著者
.B Vimtutor
は、Colorado State University の Charles Smith のアイデアを基に、
-Colorado School of Mines の Michael C. Pierce と Robert K. Ware の両名
-によって Vi 向けに作成されたものを基にしています。
+Colorado School of Mines の Michael C. Pierce と Robert K. Ware
+の両名によって Vi 向けに作成されたものを基にしています。
E-mail: bware@mines.colorado.edu.
.br
.B Vim
diff --git a/runtime/doc/xxd-ja.UTF-8.1 b/runtime/doc/xxd-ja.UTF-8.1
index 47688f8..b0640cf 100644
--- a/runtime/doc/xxd-ja.UTF-8.1
+++ b/runtime/doc/xxd-ja.UTF-8.1
@@ -22,8 +22,7 @@
.BR uuencode (1)
.BR uudecode (1)
-のように、バイナリデータを、メールに貼り付け可能な ASCII 形式に変換できた
-り、標準出力に出力することもできます。
+のように、バイナリデータを、メールに貼り付け可能な ASCII 形式に変換できたり、標準出力に出力することもできます。
さらに、バイナリファイルにパッチを当てるという使い方もできます。
.SH オプション
.I infile
@@ -37,8 +36,8 @@
.RB \` \- '
を指定した) 場合は、標準出力に出力されます。
.PP
-引数の解釈処理は適当なので注意してください。パラメータを取らない引数は
-最初の一文字だけチェックされます。
+引数の解釈処理は適当なので注意してください。
+パラメータを取らない引数は最初の一文字だけチェックされます。
引数の文字とパラメータの間のスペースは省略可能です。
パラメータは 10 進数、16 進数、8 進数で指定できます。
.BR \-c8
@@ -63,12 +62,12 @@
.TP
.IR \-e
リトルエンディアンの 16 進ダンプに切り替える。
-このオプションは、バイトのグループをリトルエンディアンのバイト順のワードとして
-扱います。標準のグルーピングは 4 バイトですが、
+このオプションは、バイトのグループをリトルエンディアンのバイト順のワードとして扱います。
+標準のグルーピングは 4 バイトですが、
.RI "" \-g
を使うことで変更可能です。
-このオプションは 16 進ダンプのみに適用され、ASCII (あるいは EBCDIC) 表示は
-変更されません。
+このオプションは 16 進ダンプのみに適用され、ASCII (あるいは EBCDIC)
+表示は変更されません。
このモードでは \-r、\-p、\-i は機能しません。
.TP
.IR "\-c cols " | " \-cols cols"
@@ -87,23 +86,22 @@
.IR "\-g bytes " | " \-groupsize bytes"
出力を
.RI < bytes >
-バイト (2 文字の 16 進数、または 8 文字の 2 進数) ごとにスペースで区切りま
-す。
+バイト (2 文字の 16 進数、または 8 文字の 2 進数) ごとにスペースで区切ります。
区切らずに出力するには
.I \-g 0
を指定してください。
.RI < Bytes >
の標準設定は \fI2\fP で、リトルエンディアンモードの場合は \fI4\fP 、
2 進ダンプの場合は \fI1\fP です。
-ポストスクリプト形式やインクルード形式で出力するときは、このオプションは使わ
-れません。
+ポストスクリプト形式やインクルード形式で出力するときは、このオプションは使われません。
.TP
.IR \-h " | " \-help
コマンドの説明を出力して終了する。変換は実行されません。
.TP
.IR \-i " | " \-include
-C インクルードファイル形式で出力します。入力ファイルの名前が付けられた静的配
-列の定義が出力されます。標準入力の場合は定義の中身だけ出力されます。
+C インクルードファイル形式で出力します。
+入力ファイルの名前が付けられた静的配列の定義が出力されます。
+標準入力の場合は定義の中身だけ出力されます。
.TP
.IR "\-l len " | " \-len len"
.RI < len >
@@ -135,9 +133,9 @@ infile の
.RI < seek >
バイト目 (絶対位置、または相対位置) から開始する。
\fI+ \fRは、現在の標準入力の位置から相対的な位置を示します
-(標準入力から読み込むときのみ意味があります)。\fI\- \fRは、入力の終わりから
-の文字数を示します (\fI+\fR と同時に指定した場合は、現在の標準入力の位置から
-手前の位置を示します)。
+(標準入力から読み込むときのみ意味があります)。
+\fI\- \fRは、入力の終わりからの文字数を示します
+(\fI+\fR と同時に指定した場合は、現在の標準入力の位置から手前の位置を示します)。
\-s 引数を指定しなかった場合は、現在のファイル位置から開始されます。
.TP
.I \-u
@@ -149,21 +147,20 @@ infile の
.PP
.I xxd \-r
では行番号の評価に関しての暗黙のルールがいくつかあります。
-出力ファイルがシーク可能なら、各行の行番号が順番通りに並んでなくても構いませ
-ん。位置が飛んでいても重なっていても大丈夫です。その場合、次の位置に移動する
-ために lseek(2) が使われます。
-出力ファイルがシーク不可なら、「隙間」だけが処理可能です。隙間は null バイト
-で埋められます。
+出力ファイルがシーク可能なら、各行の行番号が順番通りに並んでなくても構いません。
+位置が飛んでいても重なっていても大丈夫です。
+その場合、次の位置に移動するために lseek(2) が使われます。
+出力ファイルがシーク不可なら、「隙間」だけが処理可能です。
+隙間は null バイトで埋められます。
.PP
.I xxd \-r
は不正な入力をエラーにしません。ゴミは静かに読み飛ばされます。
.PP
16 進ダンプを編集するときは注意が必要です。
.I xxd \-r
-は必要な桁 (\-c 引数参照) だけ 16 進データを読み込んで、行の残りを無視しま
-す。つまり、ascii (または ebcdic) を示している列への変更は無視されます。
-xxd \-r \-p でプレーン形式 (ポストスクリプト形式) の 16 進ダンプを元に戻す場
-合は、列の数は影響しません。
+は必要な桁 (\-c 引数参照) だけ 16 進データを読み込んで、行の残りを無視します。
+つまり、ascii (または ebcdic) を示している列への変更は無視されます。
+xxd \-r \-p でプレーン形式 (ポストスクリプト形式) の 16 進ダンプを元に戻す場合は、列の数は影響しません。
2 桁の 16 進数と認識できるものはすべて変換されます。
.PP
\fI% xxd \-i file\fR
@@ -177,19 +174,16 @@ xxd \-r \-p でプレーン形式 (ポストスクリプト形式) の 16 進ダ
.I xxd \-s +seek
.IR "xxd \-s seek" ,
-の違いは、lseek(2) を使って入力を "巻き戻す" かどうかです。'+' が意味を持つ
-のは、入力が標準入力で、xxd が起動されたときに標準入力のファイル位置がファイ
-ルの先頭ではなかった場合です。
+の違いは、lseek(2) を使って入力を "巻き戻す" かどうかです。'+' が意味を持つのは、入力が標準入力で、xxd
+が起動されたときに標準入力のファイル位置がファイルの先頭ではなかった場合です。
以下の例が分かりやすいかもしれません (もっと混乱するかも!)...
.PP
-`cat' が既に標準入力を終わりまで読んでいるので、読む前に標準入力を巻き戻す必
-要がある。
+`cat' が既に標準入力を終わりまで読んでいるので、読む前に標準入力を巻き戻す必要がある。
.br
\fI% sh \-c "cat > plain_copy; xxd \-s 0 > hex_copy" < file\fR
.PP
ファイル位置 0x480 (=1024+128) 前方から 16 進ダンプする。
-`+' は 「現在地からの相対位置」を意味するので、dd が 1k 処理した後から、さら
-に `128' 進めます。
+`+' は 「現在地からの相対位置」を意味するので、dd が 1k 処理した後から、さらに `128' 進めます。
.br
\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +128 > hex_snippet" < file\fR
.PP
@@ -198,8 +192,7 @@ xxd \-r \-p でプレーン形式 (ポストスクリプト形式) の 16 進ダ
\fI% sh \-c "dd of=plain_snippet bs=1k count=1; xxd \-s +\-768 > hex_snippet" < file\fR
.PP
このような使い方はあまりしませんし、`+' を使うこともほとんどないでしょう。
-\-s を使うときはいつでも、strace(1) や truss(1) を使って、xxd の働きをチェッ
-クすることをお勧めします。
+\-s を使うときはいつでも、strace(1) や truss(1) を使って、xxd の働きをチェックすることをお勧めします。
.SH 例
.PP
.br
@@ -233,8 +226,7 @@ xxd \-r \-p でプレーン形式 (ポストスクリプト形式) の 16 進ダ
.br
.br
-この man ページの先頭から 120 バイトを一行に 12 オクテットずつ 16 進ダンプす
-る。
+この man ページの先頭から 120 バイトを一行に 12 オクテットずつ 16 進ダンプする。
.br
\fI% xxd \-l 120 \-c 12 xxd.1\fR
.br
@@ -301,8 +293,7 @@ xxd.1 の日付を修正する。
000fffc: 0000 0000 40 ....A
.PP
一文字の 'A' からなる 1 バイトのファイルを作成する。
- '\-r \-s' の後に指定した数値がファイル中の行番号に加算され、結果、余計なバ
-イトが飛ばされる。
+ '\-r \-s' の後に指定した数値がファイル中の行番号に加算され、結果、余計なバイトが飛ばされる。
.br
\fI% echo "010000: 41" | xxd \-r \-s \-0x10000 > file\fR
.PP
@@ -319,8 +310,8 @@ xxd.1 の日付を修正する。
\fI:'a,'z!xxd \-r\fR
.PP
.B vim(1)
-の中から xxd をフィルタとして実行し、
-16 進ダンプされた行を元に戻す。戻したい行にカーソルを移動して:
+の中から xxd をフィルタとして実行し、16 進ダンプされた行を元に戻す。
+戻したい行にカーソルを移動して:
.br
\fI!!xxd \-r\fR
.PP
diff --git a/runtime/filetype.vim b/runtime/filetype.vim
index 541f613..46bf567 100644
--- a/runtime/filetype.vim
+++ b/runtime/filetype.vim
@@ -1462,7 +1462,7 @@ au BufNewFile,BufRead sgml.catalog* call s:StarSetf('catalog')
" Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc.
" Gentoo ebuilds and Arch Linux PKGBUILDs are actually bash scripts
-au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.eclass,PKGBUILD* call dist#ft#SetFileTypeSH("bash")
+au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,bash-fc[-.]*,*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.eclass,PKGBUILD* call dist#ft#SetFileTypeSH("bash")
au BufNewFile,BufRead .kshrc*,*.ksh call dist#ft#SetFileTypeSH("ksh")
au BufNewFile,BufRead */etc/profile,.profile*,*.sh,*.env call dist#ft#SetFileTypeSH(getline(1))
diff --git a/runtime/ftplugin/man.vim b/runtime/ftplugin/man.vim
index ea3f9ac..dc03211 100644
--- a/runtime/ftplugin/man.vim
+++ b/runtime/ftplugin/man.vim
@@ -1,7 +1,7 @@
" Vim filetype plugin file
" Language: man
" Maintainer: SungHyun Nam <goweol@gmail.com>
-" Last Change: 2018 May 2
+" Last Change: 2018 Jul 25
" To make the ":Man" command available before editing a manual page, source
" this script from your startup vimrc file.
@@ -14,32 +14,47 @@ if &filetype == "man"
finish
endif
let b:did_ftplugin = 1
+endif
+
+let s:cpo_save = &cpo
+set cpo-=C
+if &filetype == "man"
" allow dot and dash in manual page name.
setlocal iskeyword+=\.,-
+ let b:undo_ftplugin = "setlocal iskeyword<"
" Add mappings, unless the user didn't want this.
if !exists("no_plugin_maps") && !exists("no_man_maps")
if !hasmapto('<Plug>ManBS')
nmap <buffer> <LocalLeader>h <Plug>ManBS
+ let b:undo_ftplugin = b:undo_ftplugin
+ \ . '|silent! nunmap <buffer> <LocalLeader>h'
endif
nnoremap <buffer> <Plug>ManBS :%s/.\b//g<CR>:setl nomod<CR>''
nnoremap <buffer> <c-]> :call <SID>PreGetPage(v:count)<CR>
nnoremap <buffer> <c-t> :call <SID>PopPage()<CR>
nnoremap <buffer> <silent> q :q<CR>
+
+ " Add undo commands for the maps
+ let b:undo_ftplugin = b:undo_ftplugin
+ \ . '|silent! nunmap <buffer> <Plug>ManBS'
+ \ . '|silent! nunmap <buffer> <c-]>'
+ \ . '|silent! nunmap <buffer> <c-t>'
+ \ . '|silent! nunmap <buffer> q'
endif
if exists('g:ft_man_folding_enable') && (g:ft_man_folding_enable == 1)
setlocal foldmethod=indent foldnestmax=1 foldenable
+ let b:undo_ftplugin = b:undo_ftplugin
+ \ . '|silent! setl fdm< fdn< fen<'
endif
- let b:undo_ftplugin = "setlocal iskeyword<"
-
endif
if exists(":Man") != 2
- com -nargs=+ -complete=shellcmd Man call s:GetPage(<f-args>)
+ com -nargs=+ -complete=shellcmd Man call s:GetPage(<q-mods>, <f-args>)
nmap <Leader>K :call <SID>PreGetPage(0)<CR>
nmap <Plug>ManPreGetPage :call <SID>PreGetPage(0)<CR>
endif
@@ -100,7 +115,7 @@ func <SID>FindPage(sect, page)
return 1
endfunc
-func <SID>GetPage(...)
+func <SID>GetPage(cmdmods, ...)
if a:0 >= 2
let sect = a:1
let page = a:2
@@ -154,7 +169,11 @@ func <SID>GetPage(...)
new
endif
else
- new
+ if a:cmdmods != ''
+ exe a:cmdmods . ' new'
+ else
+ new
+ endif
endif
setl nonu fdc=0
endif
@@ -218,4 +237,7 @@ endfunc
endif
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
" vim: set sw=2 ts=8 noet:
diff --git a/runtime/ftplugin/rst.vim b/runtime/ftplugin/rst.vim
index e61213e..9d737cd 100644
--- a/runtime/ftplugin/rst.vim
+++ b/runtime/ftplugin/rst.vim
@@ -1,10 +1,12 @@
-" Vim filetype plugin file
-" Language: reStructuredText documentation format
-" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2008-07-09
+" reStructuredText filetype plugin file
+" Language: reStructuredText documentation format
+" Maintainer: Marshall Ward <marshall.ward@gmail.com>
+" Original Maintainer: Nikolai Weibull <now@bitwi.se>
+" Website: https://github.com/marshallward/vim-restructuredtext
+" Latest Revision: 2018-01-07
if exists("b:did_ftplugin")
- finish
+ finish
endif
let b:did_ftplugin = 1
@@ -16,5 +18,25 @@ let b:undo_ftplugin = "setl com< cms< et< fo<"
setlocal comments=fb:.. commentstring=..\ %s expandtab
setlocal formatoptions+=tcroql
+" reStructuredText standard recommends that tabs be expanded to 8 spaces
+" The choice of 3-space indentation is to provide slightly better support for
+" directives (..) and ordered lists (1.), although it can cause problems for
+" many other cases.
+"
+" More sophisticated indentation rules should be revisted in the future.
+
+if !exists("g:rst_style") || g:rst_style != 0
+ setlocal expandtab shiftwidth=3 softtabstop=3 tabstop=8
+endif
+
+if has('patch-7.3.867') " Introduced the TextChanged event.
+ setlocal foldmethod=expr
+ setlocal foldexpr=RstFold#GetRstFold()
+ setlocal foldtext=RstFold#GetRstFoldText()
+ augroup RstFold
+ autocmd TextChanged,InsertLeave <buffer> unlet! b:RstFoldCache
+ augroup END
+endif
+
let &cpo = s:cpo_save
unlet s:cpo_save
diff --git a/runtime/ftplugin/vim.vim b/runtime/ftplugin/vim.vim
index 61dc79d..03a7789 100644
--- a/runtime/ftplugin/vim.vim
+++ b/runtime/ftplugin/vim.vim
@@ -14,8 +14,28 @@ let b:did_ftplugin = 1
let s:cpo_save = &cpo
set cpo-=C
-let b:undo_ftplugin = "setl fo< isk< com< tw< commentstring<"
- \ . "| unlet! b:match_ignorecase b:match_words b:match_skip"
+if !exists('*VimFtpluginUndo')
+ func VimFtpluginUndo()
+ setl fo< isk< com< tw< commentstring<
+ if exists(b:did_add_maps)
+ silent! nunmap <buffer> [['
+ silent! vunmap <buffer> [['
+ silent! nunmap <buffer> ]]'
+ silent! vunmap <buffer> ]]'
+ silent! nunmap <buffer> []'
+ silent! vunmap <buffer> []'
+ silent! nunmap <buffer> ]['
+ silent! vunmap <buffer> ]['
+ silent! nunmap <buffer> ]"'
+ silent! vunmap <buffer> ]"'
+ silent! nunmap <buffer> ["'
+ silent! vunmap <buffer> ["'
+ endif
+ unlet! b:match_ignorecase b:match_words b:match_skip b:did_add_maps
+ endfunc
+endif
+
+let b:undo_ftplugin = "call VimFtpluginUndo()"
" Set 'formatoptions' to break comment lines but not other lines,
" and insert the comment leader when hitting <CR> or using "o".
@@ -40,6 +60,8 @@ endif
setlocal commentstring=\"%s
if !exists("no_plugin_maps") && !exists("no_vim_maps")
+ let b:did_add_maps = 1
+
" Move around functions.
nnoremap <silent><buffer> [[ m':call search('^\s*fu\%[nction]\>', "bW")<CR>
vnoremap <silent><buffer> [[ m':<C-U>exe "normal! gv"<Bar>call search('^\s*fu\%[nction]\>', "bW")<CR>
diff --git a/runtime/gvim.desktop b/runtime/gvim.desktop
index aeeddfc..b5f461a 100644
--- a/runtime/gvim.desktop
+++ b/runtime/gvim.desktop
@@ -1,7 +1,11 @@
[Desktop Entry]
-Name=GVim
+Name=gVim
GenericName=Text Editor
+GenericName[da]=Teksteditor
GenericName[de]=Texteditor
+GenericName[eo]=Tekstoredaktilo
+GenericName[fr]=Éditeur de texte
+GenericName[pl]=Edytor tekstu
Comment=Edit text files
Comment[af]=Redigeer tekslêers
Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
@@ -14,17 +18,18 @@ Comment[bs]=Izmijeni tekstualne datoteke
Comment[ca]=Edita fitxers de text
Comment[cs]=Úprava textových souborů
Comment[cy]=Golygu ffeiliau testun
-Comment[da]=Redigér tekstfiler
+Comment[da]=Rediger tekstfiler
Comment[de]=Textdateien bearbeiten
Comment[el]=Επεξεργασία αρχείων κειμένου
Comment[en_CA]=Edit text files
Comment[en_GB]=Edit text files
+Comment[eo]=Redakti tekstajn dosierojn
Comment[es]=Edita archivos de texto
Comment[et]=Redigeeri tekstifaile
Comment[eu]=Editatu testu-fitxategiak
Comment[fa]=ویرایش پرونده‌های متنی
Comment[fi]=Muokkaa tekstitiedostoja
-Comment[fr]=Édite des fichiers texte
+Comment[fr]=Éditer des fichiers textes
Comment[ga]=Eagar comhad Téacs
Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો
Comment[he]=ערוך קבצי טקסט
@@ -50,7 +55,7 @@ Comment[nn]=Rediger tekstfiler
Comment[no]=Rediger tekstfiler
Comment[or]=ପାଠ୍ଯ ଫାଇଲଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ
Comment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ
-Comment[pl]=Edytor plików tekstowych
+Comment[pl]=Edytuj pliki tekstowe
Comment[pt]=Editar ficheiros de texto
Comment[pt_BR]=Edite arquivos de texto
Comment[ro]=Editare fişiere text
diff --git a/runtime/indent/sas.vim b/runtime/indent/sas.vim
index d591b27..9cc9e02 100644
--- a/runtime/indent/sas.vim
+++ b/runtime/indent/sas.vim
@@ -1,8 +1,8 @@
" Vim indent file
" Language: SAS
" Maintainer: Zhen-Huan Hu <wildkeny@gmail.com>
-" Version: 3.0.1
-" Last Change: Mar 13, 2017
+" Version: 3.0.3
+" Last Change: Jun 26, 2018
if exists("b:did_indent")
finish
@@ -27,9 +27,9 @@ let s:section_run = '\v%(^|;)\s*run\s*;'
let s:section_end = '\v%(^|;)\s*%(quit|enddata)\s*;'
" Regex that captures the start of a control block (anything inside a section)
-let s:block_str = '\v<%(do>%([^;]+<%(to|over)>[^;]+)=|%(define|layout|method|select)>[^;]+|begingraph)\s*;'
+let s:block_str = '\v<%(do>%([^;]+<%(to|over|while)>[^;]+)=|%(compute|define\s+%(column|footer|header|style|table|tagset|crosstabs|statgraph)|edit|layout|method|select)>[^;]+|begingraph)\s*;'
" Regex that captures the end of a control block (anything inside a section)
-let s:block_end = '\v<%(end|endlayout|endgraph)\s*;'
+let s:block_end = '\v<%(end|endcomp|endlayout|endgraph)\s*;'
" Regex that captures the start of a macro
let s:macro_str = '\v%(^|;)\s*\%macro>'
@@ -52,7 +52,7 @@ function! s:PrevMatch(lnum, regex)
let prev_lnum = prevnonblank(a:lnum - 1)
while prev_lnum > 0
let prev_line = getline(prev_lnum)
- if prev_line =~ a:regex
+ if prev_line =~? a:regex
break
else
let prev_lnum = prevnonblank(prev_lnum - 1)
@@ -71,11 +71,11 @@ function! GetSASIndent()
let prev_line = getline(prev_lnum)
" Previous non-blank line contains the start of a macro/section/block
" while not the end of a macro/section/block (at the same line)
- if (prev_line =~ s:section_str && prev_line !~ s:section_run && prev_line !~ s:section_end) ||
- \ (prev_line =~ s:block_str && prev_line !~ s:block_end) ||
- \ (prev_line =~ s:macro_str && prev_line !~ s:macro_end)
- let ind = indent(prev_lnum) + &sts
- elseif prev_line =~ s:section_run && prev_line !~ s:section_end
+ if (prev_line =~? s:section_str && prev_line !~? s:section_run && prev_line !~? s:section_end) ||
+ \ (prev_line =~? s:block_str && prev_line !~? s:block_end) ||
+ \ (prev_line =~? s:macro_str && prev_line !~? s:macro_end)
+ let ind = indent(prev_lnum) + shiftwidth()
+ elseif prev_line =~? s:section_run && prev_line !~? s:section_end
let prev_section_str_lnum = s:PrevMatch(v:lnum, s:section_str)
let prev_section_end_lnum = max([
\ s:PrevMatch(v:lnum, s:section_end),
@@ -83,9 +83,9 @@ function! GetSASIndent()
\ s:PrevMatch(v:lnum, s:program_end)])
" Check if the section supports run-processing
if prev_section_end_lnum < prev_section_str_lnum &&
- \ getline(prev_section_str_lnum) =~ '\v%(^|;)\s*proc\s+%(' .
+ \ getline(prev_section_str_lnum) =~? '\v%(^|;)\s*proc\s+%(' .
\ join(s:run_processing_procs, '|') . ')>'
- let ind = indent(prev_lnum) + &sts
+ let ind = indent(prev_lnum) + shiftwidth()
else
let ind = indent(prev_lnum)
endif
@@ -95,26 +95,26 @@ function! GetSASIndent()
endif
" Re-adjustments based on the inputs of the current line
let curr_line = getline(v:lnum)
- if curr_line =~ s:program_end
+ if curr_line =~? s:program_end
" End of the program
" Same indentation as the first non-blank line
return indent(nextnonblank(1))
- elseif curr_line =~ s:macro_end
+ elseif curr_line =~? s:macro_end
" Current line is the end of a macro
" Match the indentation of the start of the macro
return indent(s:PrevMatch(v:lnum, s:macro_str))
- elseif curr_line =~ s:block_end && curr_line !~ s:block_str
+ elseif curr_line =~? s:block_end && curr_line !~? s:block_str
" Re-adjust if current line is the end of a block
" while not the beginning of a block (at the same line)
" Returning the indent of previous block start directly
" would not work due to nesting
- let ind = ind - &sts
- elseif curr_line =~ s:section_str || curr_line =~ s:section_run || curr_line =~ s:section_end
+ let ind = ind - shiftwidth()
+ elseif curr_line =~? s:section_str || curr_line =~? s:section_run || curr_line =~? s:section_end
" Re-adjust if current line is the start/end of a section
" since the end of a section could be inexplicit
let prev_section_str_lnum = s:PrevMatch(v:lnum, s:section_str)
" Check if the previous section supports run-processing
- if getline(prev_section_str_lnum) =~ '\v%(^|;)\s*proc\s+%(' .
+ if getline(prev_section_str_lnum) =~? '\v%(^|;)\s*proc\s+%(' .
\ join(s:run_processing_procs, '|') . ')>'
let prev_section_end_lnum = max([
\ s:PrevMatch(v:lnum, s:section_end),
@@ -128,7 +128,7 @@ function! GetSASIndent()
\ s:PrevMatch(v:lnum, s:program_end)])
endif
if prev_section_end_lnum < prev_section_str_lnum
- let ind = ind - &sts
+ let ind = ind - shiftwidth()
endif
endif
return ind
diff --git a/runtime/indent/sh.vim b/runtime/indent/sh.vim
index fb398ca..32bc9f3 100644
--- a/runtime/indent/sh.vim
+++ b/runtime/indent/sh.vim
@@ -7,6 +7,7 @@
" License: Vim (see :h license)
" Repository: https://github.com/chrisbra/vim-sh-indent
" Changelog:
+" 20180724 - make check for zsh syntax more rigid (needs word-boundaries)
" 20180326 - better support for line continuation
" 20180325 - better detection of function definitions
" 20180127 - better support for zsh complex commands
@@ -70,7 +71,7 @@ function! GetShIndent()
" Check contents of previous lines
if line =~ '^\s*\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>' ||
- \ (&ft is# 'zsh' && line =~ '\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>')
+ \ (&ft is# 'zsh' && line =~ '\<\%(if\|then\|do\|else\|elif\|case\|while\|until\|for\|select\|foreach\)\>')
if line !~ '\<\%(fi\|esac\|done\|end\)\>\s*\%(#.*\)\=$'
let ind += s:indent_value('default')
endif
diff --git a/runtime/indent/xml.vim b/runtime/indent/xml.vim
index 87ffb32..dcafb46 100644
--- a/runtime/indent/xml.vim
+++ b/runtime/indent/xml.vim
@@ -1,6 +1,8 @@
" Language: xml
-" Maintainer: Johannes Zellner <johannes@zellner.org>
-" Last Change: 2017 Jun 13
+" Repository: https://github.com/chrisbra/vim-xml-ftplugin
+" Maintainer: Christian Brabandt <cb@256bit.org>
+" Previous Maintainer: Johannes Zellner <johannes@zellner.org>
+" Last Change: 20180724 - Correctly indent xml comments https://github.com/vim/vim/issues/3200
" Notes: 1) does not indent pure non-xml code (e.g. embedded scripts)
" 2) will be confused by unbalanced tags in comments
" or CDATA sections.
@@ -55,9 +57,6 @@ fun! <SID>XmlIndentSynCheck(lnum)
if '' != syn1 && syn1 !~ 'xml' && '' != syn2 && syn2 !~ 'xml'
" don't indent pure non-xml code
return 0
- elseif syn1 =~ '^xmlComment' && syn2 =~ '^xmlComment'
- " indent comments specially
- return -1
endif
endif
return 1
diff --git a/runtime/lang/README.txt b/runtime/lang/README.txt
index 3b10b4f..e5823f9 100644
--- a/runtime/lang/README.txt
+++ b/runtime/lang/README.txt
@@ -1,7 +1,4 @@
-Language files for Vim
-
-Translated menus
-----------------
+Language files for Vim: Translated menus
The contents of each menu file is a sequence of lines with "menutrans"
commands. Read one of the existing files to get an idea of how this works.
@@ -54,11 +51,3 @@ doing the conversion. Let the UTF-8 menu file source the latin1 menu file,
and put "scriptencoding latin1" in that one.
Other conversions may not always be available (e.g., between iso-8859-# and
MS-Windows codepages), thus the converted menu file must be available.
-
-
-Translated messages
--------------------
-
-This requires doing "make install" in the "src" directory. It will compile
-the portable files "src/po/*.po" into binary ".mo" files and place them in the
-right directory.
diff --git a/runtime/lang/menu_da.latin1.vim b/runtime/lang/menu_da.latin1.vim
new file mode 100644
index 0000000..b258495
--- /dev/null
+++ b/runtime/lang/menu_da.latin1.vim
@@ -0,0 +1,3 @@
+" Menu Translations: Danish for iso-8859-1 encoding
+
+source <sfile>:p:h/menu_da.utf-8.vim
diff --git a/runtime/lang/menu_da.utf-8.vim b/runtime/lang/menu_da.utf-8.vim
new file mode 100644
index 0000000..e5f14d2
--- /dev/null
+++ b/runtime/lang/menu_da.utf-8.vim
@@ -0,0 +1,372 @@
+" Menu Translations: Danish / Dansk
+" Maintainer: scootergrisen
+" Last Change: 2018 Jun 23
+
+" Quit when menu translations have already been done.
+if exists("did_menu_trans")
+ finish
+endif
+let did_menu_trans = 1
+let s:keepcpo= &cpo
+set cpo&vim
+
+scriptencoding utf-8
+
+" Help menu
+menut &Help Hjælp
+
+menut &Overview<Tab><F1> Overblik<Tab><F1>
+menut &User\ Manual Brugermanual
+menut &How-to\ links How-to-links
+menut &Find\.\.\. Find\.\.\.
+" -SEP1-
+menut &Credits Anerkendelser
+menut Co&pying Kopiering
+menut &Sponsor/Register Sponsorer/registrer
+menut O&rphans Forældreløse\ børn
+" -SEP2-
+menut &Version Version
+menut &About Om
+
+let g:menutrans_help_dialog = "Indtast en kommando eller ord for at finde hjælp om:\n\nStart med i_ for kommandoer til inputtilstand (f.eks.: i_CTRL-X)\nStart med c_ for kommandoer til redigering af kommandolinje (f.eks.: c_<Del>)\nStart med ' for et tilvalgsnavn (f.eks.: 'shiftwidth')"
+
+" File menu
+menut &File Fil
+
+menut &Open\.\.\.<Tab>:e Åbn\.\.\.<Tab>:e
+menut Sp&lit-Open\.\.\.<Tab>:sp Opdel-åbn\.\.\.<Tab>:sp
+menut Open\ Tab\.\.\.<Tab>:tabnew Åbn\ faneblad\.\.\.<Tab>:tabnew
+menut &New<Tab>:enew Ny<Tab>:enew
+menut &Close<Tab>:close Luk<Tab>:close
+" -SEP1-
+menut &Save<Tab>:w Gem<Tab>:w
+menut Save\ &As\.\.\.<Tab>:sav Gem\ som\.\.\.<Tab>:sav
+" -SEP2-
+menut Split\ &Diff\ with\.\.\. Opdel\ diff\ med\.\.\.
+menut Split\ Patched\ &By\.\.\. Opdel\ "patchet\ af"\.\.\.
+" -SEP3-
+menut &Print Udskriv
+" -SEP4-
+menut Sa&ve-Exit<Tab>:wqa Gem-afslut
+menut E&xit<Tab>:qa Afslut
+
+" Edit menu
+menut &Edit Rediger
+
+menut &Undo<Tab>u Fortryd<Tab>u
+menut &Redo<Tab>^R Omgør<Tab>^R
+menut Rep&eat<Tab>\. Gentag<Tab>\.
+" -SEP1-
+menut Cu&t<Tab>"+x Klip<Tab>"+x
+menut &Copy<Tab>"+y Kopiér<Tab>"+y
+menut &Paste<Tab>"+gP Indsæt<Tab>"+gP
+menut Put\ &Before<Tab>[p Indsæt\ inden\ (put)<Tab>[p
+menut Put\ &After<Tab>]p Indsæt\ efter\ (put)<Tab>]p
+menut &Delete<Tab>x Slet<Tab>x
+menut &Select\ all<Tab>ggVG Markér\ alt<Tab>ggVG
+" -SEP2-
+menut &Find\.\.\. Find\.\.\.
+menut &Find\.\.\.<Tab>/ Find\.\.\.<Tab>/
+menut Find\ and\ Rep&lace\.\.\. Find\ og\ erstat\.\.\.
+menut Find\ and\ Rep&lace\.\.\.<Tab>:%s Find\ og\ erstat\.\.\.<Tab>:%s
+menut Find\ and\ Rep&lace\.\.\.<Tab>:s Find\ og\ erstat\.\.\.<Tab>:s
+" -SEP3-
+menut Settings\ &Window Indstillinger-vindue
+menut Startup\ &Settings Opstartsindstillinger
+menut &Global\ Settings Globale\ indstillinger
+menut Question Spørgsmål
+
+" Edit
+
+menut Toggle\ Pattern\ &Highlight<Tab>:set\ hls! Fremhævning\ af\ mønster\ til/fra<Tab>:set\ hls!
+menut Toggle\ &Ignoring\ Case<Tab>:set\ ic! Ignorerer\ "forskel\ på\ store\ og\ små\ bogstaver"\ til/fra<Tab>:set\ ic!
+menut Toggle\ &Showing\ Matched\ Pairs<Tab>:set\ sm! Viser\ matchende\ par\ til/fra<Tab>:set\ sm!
+
+menut &Context\ lines Kontekstlinjer
+
+menut &Virtual\ Edit Virtuel\ redigering
+menut Never Aldrig
+menut Block\ Selection Blokmarkering
+menut Insert\ mode Indsæt-tilstand
+menut Block\ and\ Insert Blok\ og\ indsæt
+menut Always Altid
+
+menut Toggle\ Insert\ &Mode<Tab>:set\ im! Indsæt-tilstand\ til/fra<Tab>:set\ im!
+menut Toggle\ Vi\ C&ompatibility<Tab>:set\ cp! Vi-kompatibel\ til/fra<Tab>:set\ cp!
+menut Search\ &Path\.\.\. Søgesti\.\.\.
+menut Ta&g\ Files\.\.\. Tag-filer\.\.\.
+" -SEP1-
+menut Toggle\ &Toolbar Værktøjslinje\ til/fra
+menut Toggle\ &Bottom\ Scrollbar Nederste\ rullebjælke\ til/fra
+menut Toggle\ &Left\ Scrollbar Venstre\ rullebjælke\ til/fra
+menut Toggle\ &Right\ Scrollbar Højre\ rullebjælke\ til/fra
+
+let g:menutrans_path_dialog = "Indtast søgesti til filer.\nSeparer mappenavne med et komma."
+let g:menutrans_tags_dialog = "Indtast navne på tag-filer.\nSeparer navnene med et komma."
+
+" Edit/File Settings
+menut F&ile\ Settings Filindstillinger
+
+" Boolean options
+menut Toggle\ Line\ &Numbering<Tab>:set\ nu! Linjenummerering\ til/fra<Tab>:set\ nu!
+menut Toggle\ Relati&ve\ Line\ Numbering<Tab>:set\ rnu! Relativ\ linjenummerering\ til/fra<Tab>:set\ rnu!
+menut Toggle\ &List\ Mode<Tab>:set\ list! Listetilstand\ til/fra<Tab>:set\ list!
+menut Toggle\ Line\ &Wrapping<Tab>:set\ wrap! Linjeombrydning\ til/fra<Tab>:set\ wrap!
+menut Toggle\ W&rapping\ at\ word<Tab>:set\ lbr! Ombrydning\ ved\ ord\ til/fra<Tab>:set\ lbr!
+menut Toggle\ Tab\ &expanding<Tab>:set\ et! Udvidelse\ af\ tabulator\ til/fra<Tab>:set\ et!
+menut Toggle\ &Auto\ Indenting<Tab>:set\ ai! Automatisk\ indrykning\ til/fra<Tab>:set\ ai!
+menut Toggle\ &C-Style\ Indenting<Tab>:set\ cin! Indrykning\ i\ &C-stil\ til/fra<Tab>:set\ cin!
+" -SEP2-
+menut &Shiftwidth "Shiftwidth"
+" menut &Shiftwidth.2<Tab>:set\ sw=2\ sw?<CR> "Shiftwidth".2<Tab>:set\ sw=2\ sw?<CR>
+" menut &Shiftwidth.3<Tab>:set\ sw=3\ sw?<CR> "Shiftwidth".3<Tab>:set\ sw=3\ sw?<CR>
+" menut &Shiftwidth.4<Tab>:set\ sw=4\ sw?<CR> "Shiftwidth".4<Tab>:set\ sw=4\ sw?<CR>
+" menut &Shiftwidth.5<Tab>:set\ sw=5\ sw?<CR> "Shiftwidth".5<Tab>:set\ sw=5\ sw?<CR>
+" menut &Shiftwidth.6<Tab>:set\ sw=6\ sw?<CR> "Shiftwidth".6<Tab>:set\ sw=6\ sw?<CR>
+" menut &Shiftwidth.8<Tab>:set\ sw=8\ sw?<CR> "Shiftwidth".8<Tab>:set\ sw=8\ sw?<CR>
+menut Soft\ &Tabstop Blødt\ tabulatorstop
+" menut Soft\ &Tabstop.2<Tab>:set\ sts=2\ sts? Blødt\ "Tabstop".2<Tab>:set\ sts=2\ sts?
+" menut Soft\ &Tabstop.3<Tab>:set\ sts=3\ sts? Blødt\ "Tabstop".3<Tab>:set\ sts=3\ sts?
+" menut Soft\ &Tabstop.4<Tab>:set\ sts=4\ sts? Blødt\ "Tabstop".4<Tab>:set\ sts=4\ sts?
+" menut Soft\ &Tabstop.5<Tab>:set\ sts=5\ sts? Blødt\ "Tabstop".5<Tab>:set\ sts=5\ sts?
+" menut Soft\ &Tabstop.6<Tab>:set\ sts=6\ sts? Blødt\ "Tabstop".6<Tab>:set\ sts=6\ sts?
+" menut Soft\ &Tabstop.8<Tab>:set\ sts=8\ sts? Blødt\ "Tabstop".8<Tab>:set\ sts=8\ sts?
+menut Te&xt\ Width\.\.\. Tekstbredde\.\.\.
+menut &File\ Format\.\.\. Filformat\.\.\.
+
+let g:menutrans_textwidth_dialog = "Indtast ny tekstbredde (0 for at deaktivere formatering): "
+let g:menutrans_fileformat_dialog = "Vælg format til skrivning af filen"
+let g:menutrans_fileformat_choices = "&Unix\n&Dos\n&Mac\n&Annuller"
+
+menut Show\ C&olor\ Schemes\ in\ Menu Vis\ farveskemaer\ i\ menu
+menut C&olor\ Scheme Farveskema
+
+" menut blue blå
+" menut darkblue mørkeblå
+" menut desert ørken
+" menut elflord elverherre
+" menut evening aften
+" menut industry industri
+" menut morning morgen
+" menut peachpuff fersken
+" menut shine skær
+" menut slate skiffer
+" menut default standard
+" menut torte tærte
+" menut zellner ???
+" menut delek ???
+" menut koehler ???
+" menut murphy ???
+" menut pablo ???
+" menut ron ron
+
+menut Show\ &Keymaps\ in\ Menu Vis\ tastaturlayouts\ i\ menu
+menut &Keymap Tastaturlayout
+
+menut None Intet
+" menut accents Diakritiske\ tegn
+" menut arabic arabisk
+" menut armenian-eastern armensk\ (østlig)
+" menut armenian-western armensk\ (vestlig)
+" menut belarusian-jcuken hviderussisk"\ [belarusian-jcuken]"
+" menut czech tjekkisk
+" menut greek græsk
+" menut hebrew hebraisk
+" menut hebrewp hebraisk"\ [hebrewp]"
+" menut magyar ungarsk
+" menut persian persisk
+" menut serbian serbisk
+" menut serbian-latin serbisk\ (latinsk)
+" menut slovak slovakisk
+
+menut Select\ Fo&nt\.\.\. Vælg\ skrifttype\.\.\.
+
+" Programming menu
+menut &Tools Værktøjer
+
+menut &Jump\ to\ this\ tag<Tab>g^] Hop\ til\ tagget<Tab>g^]
+menut Jump\ &back<Tab>^T Hop\ tilbage<Tab>^T
+menut Build\ &Tags\ File Build\ tags-fil
+" -SEP1-
+" Tools.Spelling Menu
+menut &Spelling Stavning
+menut &Spell\ Check\ On Stavekontrol\ til
+menut Spell\ Check\ &Off Stavekontrol\ fra
+menut To\ &Next\ error<Tab>]s Til\ næste\ fejl<Tab>]s
+menut To\ &Previous\ error<Tab>[s Til\ forrige\ fejl<Tab>[s
+menut Suggest\ &Corrections<Tab>z= Foreslå\ rettelse<Tab>z=
+menut &Repeat\ correction<Tab>:spellrepall Gentag\ rettelse<Tab>:spellrepall
+menut Set\ language\ to\ "en" Sæt\ sprog\ til\ "en"
+menut Set\ language\ to\ "en_au" Sæt\ sprog\ til\ "en_au"
+menut Set\ language\ to\ "en_ca" Sæt\ sprog\ til\ "en_ca"
+menut Set\ language\ to\ "en_gb" Sæt\ sprog\ til\ "en_gb"
+menut Set\ language\ to\ "en_nz" Sæt\ sprog\ til\ "en_nz"
+menut Set\ language\ to\ "en_us" Sæt\ sprog\ til\ "en_us"
+menut &Find\ More\ Languages Find\ flere\ sprog
+
+" Tools.Fold Menu
+menut &Folding Foldning
+" open close folds
+menut &Enable/Disable\ folds<Tab>zi Aktivér/deaktivér\ sammenfoldninger<Tab>zi
+menut &View\ Cursor\ Line<Tab>zv Vis\ markørlinje<Tab>zv
+menut Vie&w\ Cursor\ Line\ only<Tab>zMzx Vis\ kun\ markørlinje<Tab>zMzx
+menut C&lose\ more\ folds<Tab>zm Luk\ flere\ sammenfoldninger<Tab>zm
+menut &Close\ all\ folds<Tab>zM Luk\ alle\ sammenfoldninger<Tab>zM
+menut O&pen\ more\ folds<Tab>zr Åbn\ flere\ sammenfoldninger<Tab>zr
+menut &Open\ all\ folds<Tab>zR Åbn\ alle\ sammenfoldninger<Tab>zR
+" fold method
+" -SEP1-
+menut Fold\ Met&hod Sammenfoldningsmetode
+menut M&anual Manuelt
+menut I&ndent Indryk
+menut E&xpression Udtryk
+menut S&yntax Syntaks
+menut &Diff Diff
+menut Ma&rker Markør
+" create and delete folds
+menut Create\ &Fold<Tab>zf Opret\ sammenfoldning<Tab>zf
+menut &Delete\ Fold<Tab>zd Slet\ sammenfoldning<Tab>zd
+menut Delete\ &All\ Folds<Tab>zD Slet\ alle\ sammenfoldninger<Tab>zD
+" moving around in folds
+" -SEP2-
+menut Fold\ col&umn\ width Kolonnebredde\ for\ sammenfoldning
+
+menut &Diff Diff
+"
+menut &Update Opdater
+menut &Get\ Block Hent\ blok\ (get)
+menut &Put\ Block Indsæt\ blok\ (put)
+
+" -SEP2-
+menut &Make<Tab>:make &Make<Tab>:make
+
+menut &List\ Errors<Tab>:cl Oplist\ fejl<Tab>:cl
+menut L&ist\ Messages<Tab>:cl! Oplist\ meddelelser<Tab>:cl!
+menut &Next\ Error<Tab>:cn Næste\ fejl<Tab>:cn
+menut &Previous\ Error<Tab>:cp Forrige\ fejl<Tab>:cp
+menut &Older\ List<Tab>:cold Ældre\ liste<Tab>:cold
+menut N&ewer\ List<Tab>:cnew Nyere\ liste<Tab>:cnew
+
+menut Error\ &Window Fejl-vindue
+
+menut &Update<Tab>:cwin Opdater<Tab>:cwin
+menut &Open<Tab>:copen Åbn<Tab>:copen
+menut &Close<Tab>:cclose Luk<Tab>:cclose
+
+" -SEP3-
+menut &Convert\ to\ HEX<Tab>:%!xxd Konvertér\ til\ HEX<Tab>:%!xxd
+menut Conve&rt\ back<Tab>:%!xxd\ -r Konvertér\ tilbage<Tab>:%!xxd\ -r
+
+menut Se&T\ Compiler Sæt\ kompiler
+
+" Buffers menu
+menut &Buffers Buffere
+
+menut &Refresh\ menu Genopfrisk\ menu
+menut &Delete Slet
+menut &Alternate Skift
+menut &Next Næste
+menut &Previous Forrige
+menut [No\ File] [Ingen\ fil]
+
+" Syntax menu
+menut &Syntax Syntaks
+
+menut &Show\ File\ Types\ in\ menu Vis\ filtyper\ i\ menu
+menut Set\ '&syntax'\ only Sæt\ kun\ 'syntax'
+menut Set\ '&filetype'\ too Sæt\ også\ 'filetype'
+menut &Off Fra
+menut &Manual Manuelt
+menut A&utomatic Automatisk
+menut On/Off\ for\ &This\ File Til/fra\ for\ denne\ fil
+menut Co&lor\ test Farvetest
+menut &Highlight\ test Fremhævningstest
+menut &Convert\ to\ HTML Konvertér\ til\ HTML
+
+let g:menutrans_no_file = "[Ingen fil]"
+
+" Window menu
+menut &Window Vindue
+
+menut &New<Tab>^Wn Nyt<Tab>^Wn
+menut S&plit<Tab>^Ws Opdel<Tab>^Ws
+menut Sp&lit\ To\ #<Tab>^W^^ Opdel\ til\ #<Tab>^W^^
+menut Split\ &Vertically<Tab>^Wv Opdel\ lodret<Tab>^Wv
+menut Split\ File\ E&xplorer Opdel\ filbrowser
+" -SEP1-
+menut &Close<Tab>^Wc Luk<Tab>^Wc
+menut Close\ &Other(s)<Tab>^Wo Luk\ andre<Tab>^Wo
+" -SEP2-
+menut Move\ &To Flyt\ til
+
+menut &Top<Tab>^WK Øverst<Tab>^WK
+menut &Bottom<Tab>^WJ Nederst<Tab>^WJ
+menut &Left\ side<Tab>^WH Venstre\ side<Tab>^WH
+menut &Right\ side<Tab>^WL Højre\ side<Tab>^WL
+menut Rotate\ &Up<Tab>^WR Roter\ op<Tab>^WR
+menut Rotate\ &Down<Tab>^Wr Roter\ ned<Tab>^Wr
+" -SEP3-
+menut &Equal\ Size<Tab>^W= Samme\ størrelse<Tab>^W=
+menut &Max\ Height<Tab>^W_ Maks\.\ højde<Tab>^W_
+menut M&in\ Height<Tab>^W1_ Min\.\ højde<Tab>^W1_
+menut Max\ &Width<Tab>^W\| Maks\.\ bredde<Tab>^W\|
+menut Min\ Widt&h<Tab>^W1\| Min\.\ bredde<Tab>^W1\|
+
+" The popup menu
+menut &Undo Fortryd
+" -SEP1-
+menut Cu&t Klip
+menut &Copy Kopiér
+menut &Paste Indsæt
+menut &Delete Slet
+" -SEP2-
+menut Select\ Blockwise Markér\ blokvis
+menut Select\ &Word Markér\ ord
+
+menut Select\ &Sentence Markér\ sætning
+menut Select\ Pa&ragraph Markér\ afsnit
+
+menut Select\ &Line Markér\ linje
+menut Select\ &Block Markér\ blok
+menut Select\ &All Markér\ alt
+
+" The GUI toolbar
+if has("toolbar")
+ if exists("*Do_toolbar_tmenu")
+ delfun Do_toolbar_tmenu
+ endif
+ fun Do_toolbar_tmenu()
+ tmenu ToolBar.Open Åbn fil
+ tmenu ToolBar.Save Gem nuværende fil
+ tmenu ToolBar.SaveAll Gem alle filer
+ tmenu ToolBar.Print Udskriv
+ tmenu ToolBar.Undo Fortryd
+ tmenu ToolBar.Redo Omgør
+ tmenu ToolBar.Cut Klip til udklipsholder
+ tmenu ToolBar.Copy Kopiér til udklipsholder
+ tmenu ToolBar.Paste Indsæt fra udklipsholder
+ if !has("gui_athena")
+ tmenu ToolBar.Replace Find/erstat...
+ tmenu ToolBar.FindNext Find næste
+ tmenu ToolBar.FindPrev Find forrige
+ endif
+ tmenu ToolBar.LoadSesn Vælg en session som skal indlæses
+ tmenu ToolBar.SaveSesn Gem nuværende session
+ tmenu ToolBar.RunScript Vælg et Vim-script som skal køres
+ tmenu ToolBar.Make Make nuværende projekt (:make)
+ tmenu ToolBar.RunCtags Build tags i nuværende mappetræ (!ctags -R .)
+ tmenu ToolBar.TagJump Hop til tag under markør
+ tmenu ToolBar.Help Vim hjælp
+ tmenu ToolBar.FindHelp Søg i Vim hjælp
+ endfun
+endif
+
+let g:menutrans_set_lang_to = "Sæt sprog til"
+let g:menutrans_spell_change_ARG_to = 'Ændr "%s" til'
+let g:menutrans_spell_add_ARG_to_word_list = 'Tilføj "%s" til ordliste'
+let g:menutrans_spell_ignore_ARG = 'Ignorer "%s"'
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
+
+" vim: set sw=2 :
diff --git a/runtime/lang/menu_ja_jp.euc-jp.vim b/runtime/lang/menu_ja_jp.euc-jp.vim
index 6e81f8f..bf42c8f 100644
--- a/runtime/lang/menu_ja_jp.euc-jp.vim
+++ b/runtime/lang/menu_ja_jp.euc-jp.vim
@@ -5,7 +5,7 @@
" Last Change: 28-Jan-2016.
"
" Copyright (C) 2001-2016 MURAOKA Taro <koron.kaoriya@gmail.com>,
-" vim-jp (http://vim-jp.org/)
+" vim-jp <http://vim-jp.org/>
"
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
@@ -174,6 +174,10 @@ menutrans Set\ language\ to\ "en_nz" \ "en_nz"\ ꤹ
menutrans Set\ language\ to\ "en_us" \ "en_us"\ ꤹ
menutrans &Find\ More\ Languages ¾θ򸡺(&F)
+let g:menutrans_spell_change_ARG_to = '"%s"\ ѹ'
+let g:menutrans_spell_add_ARG_to_word_list = '"%s"\ ñꥹȤɲ'
+let g:menutrans_spell_ignore_ARG = '"%s"\ ̵'
+
" Tools.Fold Menu
menutrans &Folding ޾(&F)
" open close folds
@@ -210,8 +214,7 @@ menutrans &Delete (&D)
menutrans &Alternate ΢(&A)
menutrans &Next ΥХåե(&N)
menutrans &Previous ΥХåե(&P)
-menutrans [No\ File] [̵]
-let g:menutrans_no_file = "[̵]"
+let g:menutrans_no_file = "[̵̾]"
" Window menu
menutrans &Window ɥ(&W)
diff --git a/runtime/lang/menu_ja_jp.utf-8.vim b/runtime/lang/menu_ja_jp.utf-8.vim
index 9dbc47c..e05750f 100644
--- a/runtime/lang/menu_ja_jp.utf-8.vim
+++ b/runtime/lang/menu_ja_jp.utf-8.vim
@@ -5,7 +5,7 @@
" Last Change: 28-Jan-2016.
"
" Copyright (C) 2001-2016 MURAOKA Taro <koron.kaoriya@gmail.com>,
-" vim-jp (http://vim-jp.org/)
+" vim-jp <http://vim-jp.org/>
"
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
@@ -174,6 +174,10 @@ menutrans Set\ language\ to\ "en_nz" 言語を\ "en_nz"\ に設定する
menutrans Set\ language\ to\ "en_us" 言語を\ "en_us"\ に設定する
menutrans &Find\ More\ Languages 他の言語を検索する(&F)
+let g:menutrans_spell_change_ARG_to = '"%s"\ を変更'
+let g:menutrans_spell_add_ARG_to_word_list = '"%s"\ を単語リストに追加'
+let g:menutrans_spell_ignore_ARG = '"%s"\ を無視'
+
" Tools.Fold Menu
menutrans &Folding 折畳み(&F)
" open close folds
@@ -210,8 +214,7 @@ menutrans &Delete 削除(&D)
menutrans &Alternate 裏へ切替(&A)
menutrans &Next 次のバッファ(&N)
menutrans &Previous 前のバッファ(&P)
-menutrans [No\ File] [無題]
-let g:menutrans_no_file = "[無題]"
+let g:menutrans_no_file = "[無名]"
" Window menu
menutrans &Window ウィンドウ(&W)
diff --git a/runtime/lang/menu_japanese_japan.932.vim b/runtime/lang/menu_japanese_japan.932.vim
index a39d7da..003568b 100644
--- a/runtime/lang/menu_japanese_japan.932.vim
+++ b/runtime/lang/menu_japanese_japan.932.vim
@@ -5,7 +5,7 @@
" Last Change: 28-Jan-2016.
"
" Copyright (C) 2001-2016 MURAOKA Taro <koron.kaoriya@gmail.com>,
-" vim-jp (http://vim-jp.org/)
+" vim-jp <http://vim-jp.org/>
"
" THIS FILE IS DISTRIBUTED UNDER THE VIM LICENSE.
@@ -174,6 +174,10 @@ menutrans Set\ language\ to\ "en_nz" \ "en_nz"\ ɐݒ肷
menutrans Set\ language\ to\ "en_us" \ "en_us"\ ɐݒ肷
menutrans &Find\ More\ Languages ̌(&F)
+let g:menutrans_spell_change_ARG_to = '"%s"\ ύX'
+let g:menutrans_spell_add_ARG_to_word_list = '"%s"\ PꃊXgɒlj'
+let g:menutrans_spell_ignore_ARG = '"%s"\ 𖳎'
+
" Tools.Fold Menu
menutrans &Folding ܏(&F)
" open close folds
@@ -210,8 +214,7 @@ menutrans &Delete 폜(&D)
menutrans &Alternate ֐ؑ(&A)
menutrans &Next ̃obt@(&N)
menutrans &Previous Õobt@(&P)
-menutrans [No\ File] []
-let g:menutrans_no_file = "[]"
+let g:menutrans_no_file = "[]"
" Window menu
menutrans &Window EBhE(&W)
diff --git a/runtime/menu.vim b/runtime/menu.vim
index fd5d914..b4c59dd 100644
--- a/runtime/menu.vim
+++ b/runtime/menu.vim
@@ -56,6 +56,13 @@ if exists("v:lang") || &langmenu != ""
let s:lang = substitute(s:lang, '\.[^.]*', "", "")
exe "runtime! lang/menu_" . s:lang . "[^a-z]*vim"
+ if !exists("did_menu_trans") && s:lang =~ '_'
+ " If the language includes a region try matching without that region.
+ " (e.g. find menu_de.vim if s:lang == de_DE).
+ let langonly = substitute(s:lang, '_.*', "", "")
+ exe "runtime! lang/menu_" . langonly . "[^a-z]*vim"
+ endif
+
if !exists("did_menu_trans") && strlen($LANG) > 1 && s:lang !~ '^en_us'
" On windows locale names are complicated, try using $LANG, it might
" have been set by set_init_1(). But don't do this for "en" or "en_us".
@@ -809,7 +816,7 @@ func! s:BMMunge(fname, bnum)
let name = a:fname
if name == ''
if !exists("g:menutrans_no_file")
- let g:menutrans_no_file = "[No file]"
+ let g:menutrans_no_file = "[No Name]"
endif
let name = g:menutrans_no_file
else
diff --git a/runtime/mswin.vim b/runtime/mswin.vim
index da869a9..5ec2149 100644
--- a/runtime/mswin.vim
+++ b/runtime/mswin.vim
@@ -57,10 +57,11 @@ vmap <S-Insert> <C-V>
" Use CTRL-Q to do what CTRL-V used to do
noremap <C-Q> <C-V>
-" Use CTRL-S for saving, also in Insert mode
+" Use CTRL-S for saving, also in Insert mode (<C-O> doesn't work well when
+" using completions).
noremap <C-S> :update<CR>
vnoremap <C-S> <C-C>:update<CR>
-inoremap <C-S> <C-O>:update<CR>
+inoremap <C-S> <Esc>:update<CR>gi
" For CTRL-V to work autoselect must be off.
" On Unix we have two selections, autoselect can be used.
diff --git a/runtime/optwin.vim b/runtime/optwin.vim
index cd1bea0..5ab5792 100644
--- a/runtime/optwin.vim
+++ b/runtime/optwin.vim
@@ -856,6 +856,14 @@ call <SID>OptionL("ts")
call append("$", "shiftwidth\tnumber of spaces used for each step of (auto)indent")
call append("$", "\t(local to buffer)")
call <SID>OptionL("sw")
+if has("vartabs")
+ call append("$", "vartabstop\tlist of number of spaces a tab counts for")
+ call append("$", "\t(local to buffer)")
+ call <SID>OptionL("vts")
+ call append("$", "varsofttabstop\tlist of number of spaces a soft tabsstop counts for")
+ call append("$", "\t(local to buffer)")
+ call <SID>OptionL("vsts")
+endif
call append("$", "smarttab\ta <Tab> in an indent inserts 'shiftwidth' spaces")
call <SID>BinOptionG("sta", &sta)
call append("$", "softtabstop\tif non-zero, number of spaces to insert for a <Tab>")
diff --git a/runtime/pack/dist/opt/matchit/plugin/matchit.vim b/runtime/pack/dist/opt/matchit/plugin/matchit.vim
index 5e9df89..6f3c0f8 100644
--- a/runtime/pack/dist/opt/matchit/plugin/matchit.vim
+++ b/runtime/pack/dist/opt/matchit/plugin/matchit.vim
@@ -1,5 +1,5 @@
" matchit.vim: (global plugin) Extended "%" matching
-" Last Change: 2017 Sep 15
+" Last Change: 2018 Jul 3 by Christian Brabandt
" Maintainer: Benji Fisher PhD <benji@member.AMS.org>
" Version: 1.13.3, for Vim 6.3+
" Fix from Fernando Torres included.
@@ -272,7 +272,7 @@ function! s:Match_wrapper(word, forward, mode) range
" execute "normal!" . curcol . "l"
" endif
if skip =~ 'synID' && !(has("syntax") && exists("g:syntax_on"))
- let skip = "0"
+ let skip = '0'
else
execute "if " . skip . "| let skip = '0' | endif"
endif
@@ -719,10 +719,16 @@ fun! s:MultiMatch(spflag, mode)
let openpat = substitute(openpat, ',', '\\|', 'g')
let closepat = substitute(close, '\(\\\@<!\(\\\\\)*\)\@<=\\(', '\\%(', 'g')
let closepat = substitute(closepat, ',', '\\|', 'g')
+
if skip =~ 'synID' && !(has("syntax") && exists("g:syntax_on"))
let skip = '0'
else
- execute "if " . skip . "| let skip = '0' | endif"
+ try
+ execute "if " . skip . "| let skip = '0' | endif"
+ catch /^Vim\%((\a\+)\)\=:E363/
+ " We won't find anything, so skip searching, should keep Vim responsive.
+ return
+ endtry
endif
mark '
while level
diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
index 2a2e339..9f4c26a 100644
--- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
+++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim
@@ -56,6 +56,9 @@ else
finish
endif
+let s:keepcpo = &cpo
+set cpo&vim
+
" The command that starts debugging, e.g. ":Termdebug vim".
" To end type "quit" in the gdb window.
command -nargs=* -complete=file -bang Termdebug call s:StartDebug(<bang>0, <f-args>)
@@ -98,6 +101,7 @@ func s:StartDebug_internal(dict)
return
endif
let s:ptywin = 0
+ let s:pid = 0
" Uncomment this line to write logging in "debuglog".
" call ch_logfile('debuglog', 'w')
@@ -196,7 +200,8 @@ func s:StartDebug_term(dict)
let response = ''
for lnum in range(1,200)
if term_getline(s:gdbbuf, lnum) =~ 'new-ui mi '
- let response = term_getline(s:gdbbuf, lnum + 1)
+ " response can be in the same line or the next line
+ let response = term_getline(s:gdbbuf, lnum) . term_getline(s:gdbbuf, lnum + 1)
if response =~ 'Undefined command'
echoerr 'Sorry, your gdb is too old, gdb 7.12 is required'
exe 'bwipe! ' . s:ptybuf
@@ -271,6 +276,8 @@ func s:StartDebug_prompt(dict)
exe 'bwipe! ' . s:promptbuf
return
endif
+ " Mark the buffer modified so that it's not easy to close.
+ set modified
let s:gdb_channel = job_getchannel(s:gdbjob)
" Interpret commands while the target is running. This should usualy only
@@ -396,10 +403,21 @@ func s:PromptCallback(text)
call s:SendCommand(a:text)
endfunc
-" Function called when pressing CTRL-C in the prompt buffer.
+" Function called when pressing CTRL-C in the prompt buffer and when placing a
+" breakpoint.
func s:PromptInterrupt()
call ch_log('Interrupting gdb')
- call job_stop(s:gdbjob, 'int')
+ if has('win32')
+ " Using job_stop() does not work on MS-Windows, need to send SIGTRAP to
+ " the debugger program so that gdb responds again.
+ if s:pid == 0
+ echoerr 'Cannot interrupt gdb, did not find a process ID'
+ else
+ call debugbreak(s:pid)
+ endif
+ else
+ call job_stop(s:gdbjob, 'int')
+ endif
endfunc
" Function called when gdb outputs text.
@@ -430,7 +448,7 @@ func s:GdbOutCallback(channel, text)
" Add the output above the current prompt.
call append(line('$') - 1, text)
- set nomodified
+ set modified
call win_gotoid(curwinid)
endfunc
@@ -509,6 +527,7 @@ endfunc
func s:EndPromptDebug(job, status)
let curwinid = win_getid(winnr())
call win_gotoid(s:gdbwin)
+ set nomodified
close
if curwinid != s:gdbwin
call win_gotoid(curwinid)
@@ -535,6 +554,8 @@ func s:CommOutput(chan, msg)
call s:HandleNewBreakpoint(msg)
elseif msg =~ '^=breakpoint-deleted,'
call s:HandleBreakpointDelete(msg)
+ elseif msg =~ '^=thread-group-started'
+ call s:HandleProgramRun(msg)
elseif msg =~ '^\^done,value='
call s:HandleEvaluate(msg)
elseif msg =~ '^\^error,msg='
@@ -546,6 +567,9 @@ endfunc
" Install commands in the current window to control the debugger.
func s:InstallCommands()
+ let save_cpo = &cpo
+ set cpo&vim
+
command Break call s:SetBreakpoint()
command Clear call s:ClearBreakpoint()
command Step call s:SendCommand('-exec-step')
@@ -583,6 +607,8 @@ func s:InstallCommands()
an 1.230 PopUp.Evaluate :Evaluate<CR>
endif
endif
+
+ let &cpo = save_cpo
endfunc
let s:winbar_winids = []
@@ -655,7 +681,7 @@ func s:DeleteCommands()
for val in s:BreakpointSigns
exe "sign undefine debugBreakpoint" . val
endfor
- unlet s:BreakpointSigns
+ let s:BreakpointSigns = []
endfunc
" :Break - Set a breakpoint at the cursor position.
@@ -666,9 +692,7 @@ func s:SetBreakpoint()
if !s:stopped
let do_continue = 1
if s:way == 'prompt'
- " Need to send a signal to get the UI to listen. Strangely this is only
- " needed once.
- call job_stop(s:gdbjob, 'int')
+ call s:PromptInterrupt()
else
call s:SendCommand('-exec-interrupt')
endif
@@ -798,13 +822,13 @@ func s:HandleCursor(msg)
let wid = win_getid(winnr())
if a:msg =~ '^\*stopped'
+ call ch_log('program stopped')
let s:stopped = 1
elseif a:msg =~ '^\*running'
+ call ch_log('program running')
let s:stopped = 0
endif
- call s:GotoSourcewinOrCreateIt()
-
if a:msg =~ 'fullname='
let fname = s:GetFullname(a:msg)
else
@@ -813,6 +837,7 @@ func s:HandleCursor(msg)
if a:msg =~ '^\(\*stopped\|=thread-selected\)' && filereadable(fname)
let lnum = substitute(a:msg, '.*line="\([^"]*\)".*', '\1', '')
if lnum =~ '^[0-9]*$'
+ call s:GotoSourcewinOrCreateIt()
if expand('%:p') != fnamemodify(fname, ':p')
if &modified
" TODO: find existing window
@@ -828,7 +853,7 @@ func s:HandleCursor(msg)
exe 'sign place ' . s:pc_id . ' line=' . lnum . ' name=debugPC file=' . fname
setlocal signcolumn=yes
endif
- else
+ elseif !s:stopped || fname != ''
exe 'sign unplace ' . s:pc_id
endif
@@ -847,7 +872,12 @@ endfunc
" Handle setting a breakpoint
" Will update the sign that shows the breakpoint
func s:HandleNewBreakpoint(msg)
- let nr = substitute(a:msg, '.*number="\([0-9]\)*\".*', '\1', '') + 0
+ if a:msg !~ 'fullname='
+ " a watch does not have a file name
+ return
+ endif
+
+ let nr = substitute(a:msg, '.*number="\([0-9]*\)".*', '\1', '') + 0
if nr == 0
return
endif
@@ -892,6 +922,17 @@ func s:HandleBreakpointDelete(msg)
endif
endfunc
+" Handle the debugged program starting to run.
+" Will store the process ID in s:pid
+func s:HandleProgramRun(msg)
+ let nr = substitute(a:msg, '.*pid="\([0-9]*\)\".*', '\1', '') + 0
+ if nr == 0
+ return
+ endif
+ let s:pid = nr
+ call ch_log('Detected process ID: ' . s:pid)
+endfunc
+
" Handle a BufRead autocommand event: place any signs.
func s:BufRead()
let fname = expand('<afile>:p')
@@ -911,3 +952,6 @@ func s:BufUnloaded()
endif
endfor
endfunc
+
+let &cpo = s:keepcpo
+unlet s:keepcpo
diff --git a/runtime/plugin/README.txt b/runtime/plugin/README.txt
index 68f285e..11bf1e9 100644
--- a/runtime/plugin/README.txt
+++ b/runtime/plugin/README.txt
@@ -6,6 +6,7 @@ Look in the file for hints on how it can be disabled without deleting it.
getscriptPlugin.vim get latest version of Vim scripts
gzip.vim edit compressed files
logiPat.vim logical operators on patterns
+manpager.vim using Vim as manpager
matchparen.vim highlight paren matching the one under the cursor
netrwPlugin.vim edit files over a network and browse (remote) directories
rrhelper.vim used for --remote-wait editing
diff --git a/runtime/plugin/matchparen.vim b/runtime/plugin/matchparen.vim
index 4f68fd8..65b9fe5 100644
--- a/runtime/plugin/matchparen.vim
+++ b/runtime/plugin/matchparen.vim
@@ -1,6 +1,6 @@
" Vim plugin for showing matching parens
" Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2017 Sep 30
+" Last Change: 2018 Jul 3
" Exit quickly when:
" - this plugin was already loaded (or disabled)
@@ -103,18 +103,28 @@ function! s:Highlight_Matching_Pair()
call cursor(c_lnum, c_col - before)
endif
- " Build an expression that detects whether the current cursor position is in
- " certain syntax types (string, comment, etc.), for use as searchpairpos()'s
- " skip argument.
- " We match "escape" for special items, such as lispEscapeSpecial.
- let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' .
+ if !has("syntax") || !exists("g:syntax_on")
+ let s_skip = "0"
+ else
+ " Build an expression that detects whether the current cursor position is
+ " in certain syntax types (string, comment, etc.), for use as
+ " searchpairpos()'s skip argument.
+ " We match "escape" for special items, such as lispEscapeSpecial.
+ let s_skip = '!empty(filter(map(synstack(line("."), col(".")), ''synIDattr(v:val, "name")''), ' .
\ '''v:val =~? "string\\|character\\|singlequote\\|escape\\|comment"''))'
- " If executing the expression determines that the cursor is currently in
- " one of the syntax types, then we want searchpairpos() to find the pair
- " within those syntax types (i.e., not skip). Otherwise, the cursor is
- " outside of the syntax types and s_skip should keep its value so we skip any
- " matching pair inside the syntax types.
- execute 'if' s_skip '| let s_skip = 0 | endif'
+ " If executing the expression determines that the cursor is currently in
+ " one of the syntax types, then we want searchpairpos() to find the pair
+ " within those syntax types (i.e., not skip). Otherwise, the cursor is
+ " outside of the syntax types and s_skip should keep its value so we skip
+ " any matching pair inside the syntax types.
+ " Catch if this throws E363: pattern uses more memory than 'maxmempattern'.
+ try
+ execute 'if ' . s_skip . ' | let s_skip = "0" | endif'
+ catch /^Vim\%((\a\+)\)\=:E363/
+ " We won't find anything, so skip searching, should keep Vim responsive.
+ return
+ endtry
+ endif
" Limit the search to lines visible in the window.
let stoplinebottom = line('w$')
diff --git a/runtime/syntax/cs.vim b/runtime/syntax/cs.vim
index 111bc85..116afe0 100644
--- a/runtime/syntax/cs.vim
+++ b/runtime/syntax/cs.vim
@@ -1,12 +1,12 @@
" Vim syntax file
-" Language: C#
-" Maintainer: Nick Jensen <nickspoon@gmail.com>
-" Former Maintainer: Anduin Withers <awithers@anduin.com>
-" Former Maintainer: Johannes Zellner <johannes@zellner.org>
-" Last Change: 2018-05-02
-" Filenames: *.cs
-" License: Vim (see :h license)
-" Repository: https://github.com/nickspoons/vim-cs
+" Language: C#
+" Maintainer: Nick Jensen <nickspoon@gmail.com>
+" Former Maintainers: Anduin Withers <awithers@anduin.com>
+" Johannes Zellner <johannes@zellner.org>
+" Last Change: 2018-06-29
+" Filenames: *.cs
+" License: Vim (see :h license)
+" Repository: https://github.com/nickspoons/vim-cs
"
" REFERENCES:
" [1] ECMA TC39: C# Language Specification (WD13Oct01.doc)
@@ -19,146 +19,190 @@ let s:cs_cpo_save = &cpo
set cpo&vim
-syn keyword csType bool byte char decimal double float int long object sbyte short string T uint ulong ushort var void dynamic
-syn keyword csStorage delegate enum interface namespace struct
-syn keyword csRepeat break continue do for foreach goto return while
-syn keyword csConditional else if switch
-syn keyword csLabel case default
-" there's no :: operator in C#
-syn match csOperatorError display +::+
+syn keyword csType bool byte char decimal double float int long object sbyte short string T uint ulong ushort var void dynamic
+syn keyword csStorage delegate enum interface namespace struct
+syn keyword csRepeat break continue do for foreach goto return while
+syn keyword csConditional else if switch
+syn keyword csLabel case default
+syn match csOperatorError display +::+
+syn match csGlobal display +global::+
" user labels (see [1] 8.6 Statements)
-syn match csLabel display +^\s*\I\i*\s*:\([^:]\)\@=+
-syn keyword csModifier abstract const extern internal override private protected public readonly sealed static virtual volatile
-syn keyword csConstant false null true
-syn keyword csException try catch finally throw when
-syn keyword csLinq ascending by descending equals from group in into join let on orderby select where
-syn keyword csAsync async await
+syn match csLabel display +^\s*\I\i*\s*:\([^:]\)\@=+
+syn keyword csModifier abstract const extern internal override private protected public readonly sealed static virtual volatile
+syn keyword csConstant false null true
+syn keyword csException try catch finally throw when
+syn keyword csLinq ascending by descending equals from group in into join let on orderby select where
+syn keyword csAsync async await
-syn keyword csUnspecifiedStatement as base checked event fixed get in is lock nameof operator out params ref set sizeof stackalloc this typeof unchecked unsafe using
-syn keyword csUnsupportedStatement add remove value
-syn keyword csUnspecifiedKeyword explicit implicit
+syn keyword csUnspecifiedStatement as base checked event fixed in is lock nameof operator out params ref sizeof stackalloc this typeof unchecked unsafe using
+syn keyword csUnsupportedStatement add remove value
+syn keyword csUnspecifiedKeyword explicit implicit
" Contextual Keywords
-syn match csContextualStatement /\<yield[[:space:]\n]\+\(return\|break\)/me=s+5
-syn match csContextualStatement /\<partial[[:space:]\n]\+\(class\|struct\|interface\)/me=s+7
-syn match csContextualStatement /\<\(get\|set\)[[:space:]\n]*{/me=s+3
-syn match csContextualStatement /\<where\>[^:]\+:/me=s+5
+syn match csContextualStatement /\<yield[[:space:]\n]\+\(return\|break\)/me=s+5
+syn match csContextualStatement /\<partial[[:space:]\n]\+\(class\|struct\|interface\)/me=s+7
+syn match csContextualStatement /\<\(get\|set\)\(;\|[[:space:]\n]*{\)/me=s+3
+syn match csContextualStatement /\<where\>[^:]\+:/me=s+5
+
+" Punctuation
+syn match csBraces "[{}\[\]]" display
+syn match csParens "[()]" display
+syn match csOpSymbols "[+\-><=]\{1,2}" display
+syn match csOpSymbols "[!><+\-*/]=" display
+syn match csOpSymbols "[!*/^]" display
+syn match csOpSymbols "=>" display
+syn match csEndColon ";" display
+syn match csLogicSymbols "&&" display
+syn match csLogicSymbols "||" display
+syn match csLogicSymbols "?" display
+syn match csLogicSymbols ":" display
" Comments
"
" PROVIDES: @csCommentHook
-"
-" TODO: include strings ?
-"
-syn keyword csTodo contained TODO FIXME XXX NOTE HACK
-syn region csComment start="/\*" end="\*/" contains=@csCommentHook,csTodo,@Spell
-syn match csComment "//.*$" contains=@csCommentHook,csTodo,@Spell
+syn keyword csTodo contained TODO FIXME XXX NOTE HACK TBD
+syn region csComment start="/\*" end="\*/" contains=@csCommentHook,csTodo,@Spell
+syn match csComment "//.*$" contains=@csCommentHook,csTodo,@Spell
" xml markup inside '///' comments
-syn cluster xmlRegionHook add=csXmlCommentLeader
-syn cluster xmlCdataHook add=csXmlCommentLeader
-syn cluster xmlStartTagHook add=csXmlCommentLeader
-syn keyword csXmlTag contained Libraries Packages Types Excluded ExcludedTypeName ExcludedLibraryName
-syn keyword csXmlTag contained ExcludedBucketName TypeExcluded Type TypeKind TypeSignature AssemblyInfo
-syn keyword csXmlTag contained AssemblyName AssemblyPublicKey AssemblyVersion AssemblyCulture Base
-syn keyword csXmlTag contained BaseTypeName Interfaces Interface InterfaceName Attributes Attribute
-syn keyword csXmlTag contained AttributeName Members Member MemberSignature MemberType MemberValue
-syn keyword csXmlTag contained ReturnValue ReturnType Parameters Parameter MemberOfPackage
-syn keyword csXmlTag contained ThreadingSafetyStatement Docs devdoc example overload remarks returns summary
-syn keyword csXmlTag contained threadsafe value internalonly nodoc exception param permission platnote
-syn keyword csXmlTag contained seealso b c i pre sub sup block code note paramref see subscript superscript
-syn keyword csXmlTag contained list listheader item term description altcompliant altmember
+syn cluster xmlRegionHook add=csXmlCommentLeader
+syn cluster xmlCdataHook add=csXmlCommentLeader
+syn cluster xmlStartTagHook add=csXmlCommentLeader
+syn keyword csXmlTag contained Libraries Packages Types Excluded ExcludedTypeName ExcludedLibraryName
+syn keyword csXmlTag contained ExcludedBucketName TypeExcluded Type TypeKind TypeSignature AssemblyInfo
+syn keyword csXmlTag contained AssemblyName AssemblyPublicKey AssemblyVersion AssemblyCulture Base
+syn keyword csXmlTag contained BaseTypeName Interfaces Interface InterfaceName Attributes Attribute
+syn keyword csXmlTag contained AttributeName Members Member MemberSignature MemberType MemberValue
+syn keyword csXmlTag contained ReturnValue ReturnType Parameters Parameter MemberOfPackage
+syn keyword csXmlTag contained ThreadingSafetyStatement Docs devdoc example overload remarks returns summary
+syn keyword csXmlTag contained threadsafe value internalonly nodoc exception param permission platnote
+syn keyword csXmlTag contained seealso b c i pre sub sup block code note paramref see subscript superscript
+syn keyword csXmlTag contained list listheader item term description altcompliant altmember
syn cluster xmlTagHook add=csXmlTag
-syn match csXmlCommentLeader +\/\/\/+ contained
-syn match csXmlComment +\/\/\/.*$+ contains=csXmlCommentLeader,@csXml,@Spell
-syntax include @csXml syntax/xml.vim
-hi def link xmlRegion Comment
+syn match csXmlCommentLeader +\/\/\/+ contained
+syn match csXmlComment +\/\/\/.*$+ contains=csXmlCommentLeader,@csXml,@Spell
+syn include @csXml syntax/xml.vim
+hi def link xmlRegion Comment
" [1] 9.5 Pre-processing directives
-syn region csPreCondit
- \ start="^\s*#\s*\(define\|undef\|if\|elif\|else\|endif\|line\|error\|warning\)"
- \ skip="\\$" end="$" contains=csComment keepend
-syn region csRegion matchgroup=csPreCondit start="^\s*#\s*region.*$"
- \ end="^\s*#\s*endregion" transparent fold contains=TOP
-syn region csSummary start="^\s*/// <summary" end="^\(\s*///\)\@!" transparent fold keepend
+syn region csPreCondit start="^\s*#\s*\(define\|undef\|if\|elif\|else\|endif\|line\|error\|warning\)" skip="\\$" end="$" contains=csComment keepend
+syn region csRegion matchgroup=csPreCondit start="^\s*#\s*region.*$" end="^\s*#\s*endregion" transparent fold contains=TOP
+syn region csSummary start="^\s*/// <summary" end="^\%\(\s*///\)\@!" transparent fold keepend
-syn region csClassType start="\(@\)\@<!class\>"hs=s+6 end="[:\n{]"he=e-1 contains=csClass
-syn region csNewType start="\(@\)\@<!new\>"hs=s+4 end="[\(\<{\[]"he=e-1 contains=csNew contains=csNewType
-syn region csIsType start="\v (is|as) "hs=s+4 end="\v[A-Za-z0-9]+" oneline contains=csIsAs
-syn keyword csNew new contained
-syn keyword csClass class contained
-syn keyword csIsAs is as
+syn region csClassType start="@\@1<!\<class\>"hs=s+6 end="[:\n{]"me=e-1 contains=csClass
+syn region csNewType start="@\@1<!\<new\>"hs=s+4 end="[;\n{(<\[]"me=e-1 contains=csNew contains=csNewType
+syn region csIsType start=" is "hs=s+4 end="[A-Za-z0-9]\+" oneline contains=csIsAs
+syn region csIsType start=" as "hs=s+4 end="[A-Za-z0-9]\+" oneline contains=csIsAs
+syn keyword csNew new contained
+syn keyword csClass class contained
+syn keyword csIsAs is as
" Strings and constants
-syn match csSpecialError contained "\\."
-syn match csSpecialCharError contained "[^']"
+syn match csSpecialError "\\." contained
+syn match csSpecialCharError "[^']" contained
" [1] 9.4.4.4 Character literals
-syn match csSpecialChar contained +\\["\\'0abfnrtvx]+
-" unicode characters
-syn match csUnicodeNumber +\\\(u\x\{4}\|U\x\{8}\)+ contained contains=csUnicodeSpecifier
-syn match csUnicodeSpecifier +\\[uU]+ contained
-syn region csVerbatimString start=+@"+ end=+"+ skip=+""+ contains=csVerbatimSpec,@Spell
-syn match csVerbatimSpec +@"+he=s+1 contained
-syn region csString start=+"+ end=+"+ end=+$+ contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell
-syn match csCharacter "'[^']*'" contains=csSpecialChar,csSpecialCharError
-syn match csCharacter "'\\''" contains=csSpecialChar
-syn match csCharacter "'[^\\]'"
-syn match csNumber "\<\(0[0-7]*\|0[xX]\x\+\|\d\+\)[lL]\=\>"
-syn match csNumber "\(\<\d\+\.\d*\|\.\d\+\)\([eE][-+]\=\d\+\)\=[fFdD]\="
-syn match csNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>"
-syn match csNumber "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
+syn match csSpecialChar +\\["\\'0abfnrtvx]+ contained display
+syn match csUnicodeNumber +\\u\x\{4}+ contained contains=csUnicodeSpecifier display
+syn match csUnicodeNumber +\\U\x\{8}+ contained contains=csUnicodeSpecifier display
+syn match csUnicodeSpecifier +\\[uU]+ contained display
+
+syn region csString matchgroup=csQuote start=+"+ end=+"+ end=+$+ extend contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell
+syn match csCharacter "'[^']*'" contains=csSpecialChar,csSpecialCharError display
+syn match csCharacter "'\\''" contains=csSpecialChar display
+syn match csCharacter "'[^\\]'" display
+syn match csNumber "\<0[0-7]*[lL]\=\>" display
+syn match csNumber "\<0[xX]\x\+[lL]\=\>" display
+syn match csNumber "\<\d\+[lL]\=\>" display
+syn match csNumber "\<\d\+\.\d*\%\([eE][-+]\=\d\+\)\=[fFdD]\=" display
+syn match csNumber "\.\d\+\%\([eE][-+]\=\d\+\)\=[fFdD]\=" display
+syn match csNumber "\<\d\+[eE][-+]\=\d\+[fFdD]\=\>" display
+syn match csNumber "\<\d\+\%\([eE][-+]\=\d\+\)\=[fFdD]\>" display
+
+syn region csInterpolatedString matchgroup=csQuote start=+\$"+ end=+"+ end=+$+ extend contains=csInterpolation,csEscapedInterpolation,csSpecialChar,csSpecialError,csUnicodeNumber,@Spell
+
+syn region csInterpolation matchgroup=csInterpolationDelimiter start=+{+ end=+}+ keepend contained contains=@csAll,csBracketed,csInterpolationAlign,csInterpolationFormat
+syn match csEscapedInterpolation "{{" transparent contains=NONE display
+syn match csEscapedInterpolation "}}" transparent contains=NONE display
+syn region csInterpolationAlign matchgroup=csInterpolationAlignDel start=+,+ end=+}+ end=+:+me=e-1 contained contains=csNumber,csConstant,csCharacter,csParens,csOpSymbols,csString,csBracketed display
+syn match csInterpolationFormat +:[^}]\+}+ contained contains=csInterpolationFormatDel display
+syn match csInterpolationAlignDel +,+ contained display
+syn match csInterpolationFormatDel +:+ contained display
+
+syn region csVerbatimString matchgroup=csQuote start=+@"+ end=+"+ skip=+""+ extend contains=csVerbatimQuote,@Spell
+syn match csVerbatimQuote +""+ contained
+syn match csQuoteError +@$"+he=s+2,me=s+2
+
+syn region csInterVerbString matchgroup=csQuote start=+\$@"+ end=+"+ skip=+""+ extend contains=csInterpolation,csEscapedInterpolation,csSpecialChar,csSpecialError,csUnicodeNumber,csVerbatimQuote,@Spell
+
+syn region csBracketed matchgroup=csParens start=+(+ end=+)+ contained transparent contains=@csAll,csBracketed
+
+syn cluster csAll contains=csCharacter,csClassType,csComment,csContextualStatement,csEndColon,csInterpolatedString,csIsType,csLabel,csLogicSymbols,csNewType,csConstant,csNumber,csOpSymbols,csOperatorError,csParens,csPreCondit,csRegion,csString,csSummary,csUnicodeNumber,csUnicodeSpecifier,csVerbatimString
" The default highlighting.
-hi def link csType Type
-hi def link csNewType Type
-hi def link csClassType Type
-hi def link csIsType Type
-hi def link csStorage StorageClass
-hi def link csClass StorageClass
-hi def link csRepeat Repeat
-hi def link csConditional Conditional
-hi def link csLabel Label
-hi def link csModifier StorageClass
-hi def link csConstant Constant
-hi def link csException Exception
-hi def link csUnspecifiedStatement Statement
-hi def link csUnsupportedStatement Statement
-hi def link csUnspecifiedKeyword Keyword
-hi def link csNew Statement
-hi def link csLinq Statement
-hi def link csIsAs Keyword
-hi def link csAsync Keyword
-hi def link csContextualStatement Statement
-hi def link csOperatorError Error
-hi def link csInterfaceDeclaration Include
-
-hi def link csTodo Todo
-hi def link csComment Comment
-
-hi def link csSpecialError Error
-hi def link csSpecialCharError Error
-hi def link csString String
-hi def link csVerbatimString String
-hi def link csVerbatimSpec SpecialChar
-hi def link csPreCondit PreCondit
-hi def link csCharacter Character
-hi def link csSpecialChar SpecialChar
-hi def link csNumber Number
-hi def link csUnicodeNumber SpecialChar
-hi def link csUnicodeSpecifier SpecialChar
+hi def link csType Type
+hi def link csNewType Type
+hi def link csClassType Type
+hi def link csIsType Type
+hi def link csStorage StorageClass
+hi def link csClass StorageClass
+hi def link csRepeat Repeat
+hi def link csConditional Conditional
+hi def link csLabel Label
+hi def link csModifier StorageClass
+hi def link csConstant Constant
+hi def link csException Exception
+hi def link csUnspecifiedStatement Statement
+hi def link csUnsupportedStatement Statement
+hi def link csUnspecifiedKeyword Keyword
+hi def link csNew Statement
+hi def link csLinq Statement
+hi def link csIsAs Keyword
+hi def link csAsync Keyword
+hi def link csContextualStatement Statement
+hi def link csOperatorError Error
+hi def link csInterfaceDeclaration Include
+
+hi def link csTodo Todo
+hi def link csComment Comment
+
+hi def link csEndColon Statement
+hi def link csOpSymbols Operator
+hi def link csLogicSymbols Boolean
+hi def link csBraces Function
+hi def link csParens Operator
+
+hi def link csSpecialError Error
+hi def link csSpecialCharError Error
+hi def link csString String
+hi def link csQuote String
+hi def link csQuoteError Error
+hi def link csInterpolatedString String
+hi def link csVerbatimString String
+hi def link csInterVerbString String
+hi def link csVerbatimQuote SpecialChar
+hi def link csPreCondit PreCondit
+hi def link csCharacter Character
+hi def link csSpecialChar SpecialChar
+hi def link csNumber Number
+hi def link csUnicodeNumber SpecialChar
+hi def link csUnicodeSpecifier SpecialChar
+hi def link csInterpolationDelimiter Delimiter
+hi def link csInterpolationAlignDel csInterpolationDelimiter
+hi def link csInterpolationFormat csInterpolationDelimiter
+hi def link csInterpolationFormatDel csInterpolationDelimiter
" xml markup
-hi def link csXmlCommentLeader Comment
-hi def link csXmlComment Comment
-hi def link csXmlTag Statement
+hi def link csXmlCommentLeader Comment
+hi def link csXmlComment Comment
+hi def link csXmlTag Statement
let b:current_syntax = "cs"
let &cpo = s:cs_cpo_save
unlet s:cs_cpo_save
-" vim: ts=8
+" vim: vts=16,28
diff --git a/runtime/syntax/java.vim b/runtime/syntax/java.vim
index 8932059..c9bb5dc 100644
--- a/runtime/syntax/java.vim
+++ b/runtime/syntax/java.vim
@@ -1,8 +1,8 @@
" Vim syntax file
" Language: Java
" Maintainer: Claudio Fleiner <claudio@fleiner.com>
-" URL: http://www.fleiner.com/vim/syntax/java.vim
-" Last Change: 2015 March 01
+" URL: https://github.com/fleiner/vim/blob/master/runtime/syntax/java.vim
+" Last Change: 2018 July 26
" Please check :help java.vim for comments on some of the options available.
@@ -29,8 +29,6 @@ syn match javaOK "\.\.\."
syn match javaError2 "#\|=<"
hi def link javaError2 javaError
-
-
" keyword definitions
syn keyword javaExternal native package
syn match javaExternal "\<import\>\(\s\+static\>\)\?"
@@ -40,7 +38,7 @@ syn keyword javaRepeat while for do
syn keyword javaBoolean true false
syn keyword javaConstant null
syn keyword javaTypedef this super
-syn keyword javaOperator new instanceof
+syn keyword javaOperator var new instanceof
syn keyword javaType boolean char byte short int long float double
syn keyword javaType void
syn keyword javaStatement return
@@ -54,17 +52,25 @@ syn match javaTypedef "\.\s*\<class\>"ms=s+1
syn keyword javaClassDecl enum
syn match javaClassDecl "^class\>"
syn match javaClassDecl "[^.]\s*\<class\>"ms=s+1
-syn match javaAnnotation "@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>\(([^)]*)\)\=" contains=javaString
+syn match javaAnnotation "@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>" contains=javaString
syn match javaClassDecl "@interface\>"
syn keyword javaBranch break continue nextgroup=javaUserLabelRef skipwhite
syn match javaUserLabelRef "\k\+" contained
syn match javaVarArg "\.\.\."
syn keyword javaScopeDecl public protected private abstract
+" Java Modules(Since Java 9, for "module-info.java" file)
+if fnamemodify(bufname("%"), ":t") == "module-info.java"
+ syn keyword javaModuleStorageClass module transitive
+ syn keyword javaModuleStmt open requires exports opens uses provides
+ syn keyword javaModuleExternal to with
+ syn cluster javaTop add=javaModuleStorageClass,javaModuleStmt,javaModuleExternal
+endif
+
if exists("java_highlight_java_lang_ids")
let java_highlight_all=1
endif
-if exists("java_highlight_all") || exists("java_highlight_java") || exists("java_highlight_java_lang")
+if exists("java_highlight_all") || exists("java_highlight_java") || exists("java_highlight_java_lang")
" java.lang.*
syn match javaLangClass "\<System\>"
syn keyword javaR_JavaLang NegativeArraySizeException ArrayStoreException IllegalStateException RuntimeException IndexOutOfBoundsException UnsupportedOperationException ArrayIndexOutOfBoundsException ArithmeticException ClassCastException EnumConstantNotPresentException StringIndexOutOfBoundsException IllegalArgumentException IllegalMonitorStateException IllegalThreadStateException NumberFormatException NullPointerException TypeNotPresentException SecurityException
@@ -296,6 +302,7 @@ hi def link javaStorageClass StorageClass
hi def link javaMethodDecl javaStorageClass
hi def link javaClassDecl javaStorageClass
hi def link javaScopeDecl javaStorageClass
+
hi def link javaBoolean Boolean
hi def link javaSpecial Special
hi def link javaSpecialError Error
@@ -329,6 +336,12 @@ hi def link htmlComment Special
hi def link htmlCommentPart Special
hi def link javaSpaceError Error
+if fnamemodify(bufname("%"), ":t") == "module-info.java"
+ hi def link javaModuleStorageClass StorageClass
+ hi def link javaModuleStmt Statement
+ hi def link javaModuleExternal Include
+endif
+
let b:current_syntax = "java"
if main_syntax == 'java'
diff --git a/runtime/syntax/javascript.vim b/runtime/syntax/javascript.vim
index a95ecac..78714d0 100644
--- a/runtime/syntax/javascript.vim
+++ b/runtime/syntax/javascript.vim
@@ -7,7 +7,7 @@
" (ss) repaired several quoting and grouping glitches
" (ss) fixed regex parsing issue with multiple qualifiers [gi]
" (ss) additional factoring of keywords, globals, and members
-" Last Change: 2012 Oct 05
+" Last Change: 2018 Jul 28
" 2013 Jun 12: adjusted javaScriptRegexpString (Kevin Locke)
" 2018 Apr 14: adjusted javaScriptRegexpString (LongJohnCoder)
@@ -35,10 +35,13 @@ syn region javaScriptComment start="/\*" end="\*/" contains=@Spell,java
syn match javaScriptSpecial "\\\d\d\d\|\\."
syn region javaScriptStringD start=+"+ skip=+\\\\\|\\"+ end=+"\|$+ contains=javaScriptSpecial,@htmlPreproc
syn region javaScriptStringS start=+'+ skip=+\\\\\|\\'+ end=+'\|$+ contains=javaScriptSpecial,@htmlPreproc
+syn region javaScriptStringT start=+`+ skip=+\\\\\|\\`+ end=+`+ contains=javaScriptSpecial,javaScriptEmbed,@htmlPreproc
+
+syn region javaScriptEmbed start=+${+ end=+}+ contains=@javaScriptEmbededExpr
syn match javaScriptSpecialCharacter "'\\.'"
syn match javaScriptNumber "-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
-syn region javaScriptRegexpString start=+/[^/*]+me=e-1 skip=+\\\\\|\\/+ end=+/[gimuys]\{0,2\}\s*$+ end=+/[gimuys]\{0,2\}\s*[;.,)\]}]+me=e-1 contains=@htmlPreproc oneline
+syn region javaScriptRegexpString start=+[,(=+]\s*/[^/*]+ms=e-1,me=e-1 skip=+\\\\\|\\/+ end=+/[gimuys]\{0,2\}\s*$+ end=+/[gimuys]\{0,2\}\s*[+;.,)\]}]+me=e-1 end=+/[gimuys]\{0,2\}\s\+\/+me=e-1 contains=@htmlPreproc,javaScriptComment oneline
syn keyword javaScriptConditional if else switch
syn keyword javaScriptRepeat while for do in
@@ -57,6 +60,8 @@ syn keyword javaScriptMember document event location
syn keyword javaScriptDeprecated escape unescape
syn keyword javaScriptReserved abstract boolean byte char class const debugger double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile
+syn cluster javaScriptEmbededExpr contains=javaScriptBoolean,javaScriptNull,javaScriptIdentifier,javaScriptStringD,javaScriptStringS,javaScriptStringT
+
if exists("javaScript_fold")
syn match javaScriptFunction "\<function\>"
syn region javaScriptFunctionFold start="\<function\>.*[^};]$" end="^\z1}.*$" transparent fold keepend
@@ -87,6 +92,7 @@ hi def link javaScriptCommentTodo Todo
hi def link javaScriptSpecial Special
hi def link javaScriptStringS String
hi def link javaScriptStringD String
+hi def link javaScriptStringT String
hi def link javaScriptCharacter Character
hi def link javaScriptSpecialCharacter javaScriptSpecial
hi def link javaScriptNumber javaScriptValue
@@ -114,6 +120,8 @@ hi def link javaScriptDeprecated Exception
hi def link javaScriptReserved Keyword
hi def link javaScriptDebug Debug
hi def link javaScriptConstant Label
+hi def link javaScriptEmbed Special
+
let b:current_syntax = "javascript"
diff --git a/runtime/syntax/pf.vim b/runtime/syntax/pf.vim
index 81add10..b928dc4 100644
--- a/runtime/syntax/pf.vim
+++ b/runtime/syntax/pf.vim
@@ -2,12 +2,13 @@
" Language: OpenBSD packet filter configuration (pf.conf)
" Original Author: Camiel Dobbelaar <cd@sentia.nl>
" Maintainer: Lauri Tirkkonen <lotheac@iki.fi>
-" Last Change: 2016 Jul 06
+" Last Change: 2018 Jul 16
if exists("b:current_syntax")
finish
endif
+let b:current_syntax = "pf"
setlocal foldmethod=syntax
syn iskeyword @,48-57,_,-,+
syn sync fromstart
@@ -17,7 +18,7 @@ syn keyword pfCmd anchor antispoof block include match pass queue
syn keyword pfCmd queue set table
syn match pfCmd /^\s*load\sanchor\>/
syn keyword pfTodo TODO XXX contained
-syn keyword pfWildAddr all any
+syn keyword pfWildAddr any no-route urpf-failed self
syn match pfComment /#.*$/ contains=pfTodo
syn match pfCont /\\$/
syn match pfErrClose /}/
@@ -36,57 +37,6 @@ syn region pfList start=/{/ end=/}/ transparent contains=ALLBUT,pfErrClose,@pfN
syn region pfString start=/"/ skip=/\\"/ end=/"/ contains=pfIPv4,pfIPv6,pfNetmask,pfTable,pfVar
syn region pfString start=/'/ skip=/\\'/ end=/'/ contains=pfIPv4,pfIPv6,pfNetmask,pfTable,pfVar
-syn keyword pfService 802-11-iapp Microsoft-SQL-Monitor
-syn keyword pfService Microsoft-SQL-Server NeXTStep NextStep
-syn keyword pfService afpovertcp afs3-bos afs3-callback afs3-errors
-syn keyword pfService afs3-fileserver afs3-kaserver afs3-prserver
-syn keyword pfService afs3-rmtsys afs3-update afs3-vlserver
-syn keyword pfService afs3-volser amt-redir-tcp amt-redir-tls
-syn keyword pfService amt-soap-http amt-soap-https asf-rmcp at-echo
-syn keyword pfService at-nbp at-rtmp at-zis auth authentication
-syn keyword pfService bfd-control bfd-echo bftp bgp bgpd biff bootpc
-syn keyword pfService bootps canna cddb cddbp chargen chat cmd
-syn keyword pfService cmip-agent cmip-man comsat conference
-syn keyword pfService conserver courier csnet-ns cso-ns cvspserver
-syn keyword pfService daap datametrics daytime dhcpd-sync
-syn keyword pfService dhcpv6-client dhcpv6-server discard domain
-syn keyword pfService echo efs eklogin ekshell ekshell2 epmap eppc
-syn keyword pfService exec finger ftp ftp-data git gopher hostname
-syn keyword pfService hostnames hprop http https hunt hylafax iapp
-syn keyword pfService icb ident imap imap2 imap3 imaps ingreslock
-syn keyword pfService ipp iprop ipsec-msft ipsec-nat-t ipx irc
-syn keyword pfService isakmp iscsi isisd iso-tsap kauth kdc kerberos
-syn keyword pfService kerberos-adm kerberos-iv kerberos-sec
-syn keyword pfService kerberos_master kf kip klogin kpasswd kpop
-syn keyword pfService krb524 krb_prop krbupdate krcmd kreg kshell kx
-syn keyword pfService l2tp ldap ldaps ldp link login mail mdns
-syn keyword pfService mdnsresponder microsoft-ds ms-sql-m ms-sql-s
-syn keyword pfService msa msp mtp mysql name nameserver netbios-dgm
-syn keyword pfService netbios-ns netbios-ssn netnews netplan netrjs
-syn keyword pfService netstat netwall newdate nextstep nfs nfsd
-syn keyword pfService nicname nnsp nntp ntalk ntp null openwebnet
-syn keyword pfService ospf6d ospfapi ospfd photuris pop2 pop3 pop3pw
-syn keyword pfService pop3s poppassd portmap postgresql postoffice
-syn keyword pfService pptp presence printer prospero prospero-np
-syn keyword pfService puppet pwdgen qotd quote radacct radius
-syn keyword pfService radius-acct rdp readnews remotefs resource rfb
-syn keyword pfService rfe rfs rfs_server ripd ripng rje rkinit rlp
-syn keyword pfService routed router rpc rpcbind rsync rtelnet rtsp
-syn keyword pfService sa-msg-port sane-port sftp shell sieve silc
-syn keyword pfService sink sip smtp smtps smux snmp snmp-trap
-syn keyword pfService snmptrap snpp socks source spamd spamd-cfg
-syn keyword pfService spamd-sync spooler spop3 ssdp ssh submission
-syn keyword pfService sunrpc supdup supfiledbg supfilesrv support
-syn keyword pfService svn svrloc swat syslog syslog-tls systat
-syn keyword pfService tacacs tacas+ talk tap tcpmux telnet tempo
-syn keyword pfService tftp time timed timeserver timserver tsap
-syn keyword pfService ttylink ttytst ub-dns-control ulistserv untp
-syn keyword pfService usenet users uucp uucp-path uucpd vnc vxlan
-syn keyword pfService wais webster who whod whois www x400 x400-snd
-syn keyword pfService xcept xdmcp xmpp-bosh xmpp-client xmpp-server
-syn keyword pfService z3950 zabbix-agent zabbix-trapper zebra
-syn keyword pfService zebrasrv
-
hi def link pfCmd Statement
hi def link pfComment Comment
hi def link pfCont Statement
@@ -103,4 +53,281 @@ hi def link pfVar Identifier
hi def link pfVarAssign Identifier
hi def link pfWildAddr Type
-let b:current_syntax = "pf"
+" from OpenBSD src/etc/services r1.95
+syn keyword pfService 802-11-iapp
+syn keyword pfService Microsoft-SQL-Monitor
+syn keyword pfService Microsoft-SQL-Server
+syn keyword pfService NeXTStep
+syn keyword pfService NextStep
+syn keyword pfService afpovertcp
+syn keyword pfService afs3-bos
+syn keyword pfService afs3-callback
+syn keyword pfService afs3-errors
+syn keyword pfService afs3-fileserver
+syn keyword pfService afs3-kaserver
+syn keyword pfService afs3-prserver
+syn keyword pfService afs3-rmtsys
+syn keyword pfService afs3-update
+syn keyword pfService afs3-vlserver
+syn keyword pfService afs3-volser
+syn keyword pfService amt-redir-tcp
+syn keyword pfService amt-redir-tls
+syn keyword pfService amt-soap-http
+syn keyword pfService amt-soap-https
+syn keyword pfService asf-rmcp
+syn keyword pfService at-echo
+syn keyword pfService at-nbp
+syn keyword pfService at-rtmp
+syn keyword pfService at-zis
+syn keyword pfService auth
+syn keyword pfService authentication
+syn keyword pfService bfd-control
+syn keyword pfService bfd-echo
+syn keyword pfService bftp
+syn keyword pfService bgp
+syn keyword pfService bgpd
+syn keyword pfService biff
+syn keyword pfService bootpc
+syn keyword pfService bootps
+syn keyword pfService canna
+syn keyword pfService cddb
+syn keyword pfService cddbp
+syn keyword pfService chargen
+syn keyword pfService chat
+syn keyword pfService cmd
+syn keyword pfService cmip-agent
+syn keyword pfService cmip-man
+syn keyword pfService comsat
+syn keyword pfService conference
+syn keyword pfService conserver
+syn keyword pfService courier
+syn keyword pfService csnet-ns
+syn keyword pfService cso-ns
+syn keyword pfService cvspserver
+syn keyword pfService daap
+syn keyword pfService datametrics
+syn keyword pfService daytime
+syn keyword pfService dhcpd-sync
+syn keyword pfService dhcpv6-client
+syn keyword pfService dhcpv6-server
+syn keyword pfService discard
+syn keyword pfService domain
+syn keyword pfService echo
+syn keyword pfService efs
+syn keyword pfService eklogin
+syn keyword pfService ekshell
+syn keyword pfService ekshell2
+syn keyword pfService epmap
+syn keyword pfService eppc
+syn keyword pfService exec
+syn keyword pfService finger
+syn keyword pfService ftp
+syn keyword pfService ftp-data
+syn keyword pfService git
+syn keyword pfService gopher
+syn keyword pfService gre-in-udp
+syn keyword pfService gre-udp-dtls
+syn keyword pfService hostname
+syn keyword pfService hostnames
+syn keyword pfService hprop
+syn keyword pfService http
+syn keyword pfService https
+syn keyword pfService hunt
+syn keyword pfService hylafax
+syn keyword pfService iapp
+syn keyword pfService icb
+syn keyword pfService ident
+syn keyword pfService imap
+syn keyword pfService imap2
+syn keyword pfService imap3
+syn keyword pfService imaps
+syn keyword pfService ingreslock
+syn keyword pfService ipp
+syn keyword pfService iprop
+syn keyword pfService ipsec-msft
+syn keyword pfService ipsec-nat-t
+syn keyword pfService ipx
+syn keyword pfService irc
+syn keyword pfService isakmp
+syn keyword pfService iscsi
+syn keyword pfService isisd
+syn keyword pfService iso-tsap
+syn keyword pfService kauth
+syn keyword pfService kdc
+syn keyword pfService kerberos
+syn keyword pfService kerberos-adm
+syn keyword pfService kerberos-iv
+syn keyword pfService kerberos-sec
+syn keyword pfService kerberos_master
+syn keyword pfService kf
+syn keyword pfService kip
+syn keyword pfService klogin
+syn keyword pfService kpasswd
+syn keyword pfService kpop
+syn keyword pfService krb524
+syn keyword pfService krb_prop
+syn keyword pfService krbupdate
+syn keyword pfService krcmd
+syn keyword pfService kreg
+syn keyword pfService kshell
+syn keyword pfService kx
+syn keyword pfService l2tp
+syn keyword pfService ldap
+syn keyword pfService ldaps
+syn keyword pfService ldp
+syn keyword pfService link
+syn keyword pfService login
+syn keyword pfService mail
+syn keyword pfService mdns
+syn keyword pfService mdnsresponder
+syn keyword pfService microsoft-ds
+syn keyword pfService ms-sql-m
+syn keyword pfService ms-sql-s
+syn keyword pfService msa
+syn keyword pfService msp
+syn keyword pfService mtp
+syn keyword pfService mysql
+syn keyword pfService name
+syn keyword pfService nameserver
+syn keyword pfService netbios-dgm
+syn keyword pfService netbios-ns
+syn keyword pfService netbios-ssn
+syn keyword pfService netnews
+syn keyword pfService netplan
+syn keyword pfService netrjs
+syn keyword pfService netstat
+syn keyword pfService netwall
+syn keyword pfService newdate
+syn keyword pfService nextstep
+syn keyword pfService nfs
+syn keyword pfService nfsd
+syn keyword pfService nicname
+syn keyword pfService nnsp
+syn keyword pfService nntp
+syn keyword pfService ntalk
+syn keyword pfService ntp
+syn keyword pfService null
+syn keyword pfService openwebnet
+syn keyword pfService ospf6d
+syn keyword pfService ospfapi
+syn keyword pfService ospfd
+syn keyword pfService photuris
+syn keyword pfService pop2
+syn keyword pfService pop3
+syn keyword pfService pop3pw
+syn keyword pfService pop3s
+syn keyword pfService poppassd
+syn keyword pfService portmap
+syn keyword pfService postgresql
+syn keyword pfService postoffice
+syn keyword pfService pptp
+syn keyword pfService presence
+syn keyword pfService printer
+syn keyword pfService prospero
+syn keyword pfService prospero-np
+syn keyword pfService puppet
+syn keyword pfService pwdgen
+syn keyword pfService qotd
+syn keyword pfService quote
+syn keyword pfService radacct
+syn keyword pfService radius
+syn keyword pfService radius-acct
+syn keyword pfService rdp
+syn keyword pfService readnews
+syn keyword pfService remotefs
+syn keyword pfService resource
+syn keyword pfService rfb
+syn keyword pfService rfe
+syn keyword pfService rfs
+syn keyword pfService rfs_server
+syn keyword pfService ripd
+syn keyword pfService ripng
+syn keyword pfService rje
+syn keyword pfService rkinit
+syn keyword pfService rlp
+syn keyword pfService routed
+syn keyword pfService router
+syn keyword pfService rpc
+syn keyword pfService rpcbind
+syn keyword pfService rsync
+syn keyword pfService rtelnet
+syn keyword pfService rtsp
+syn keyword pfService sa-msg-port
+syn keyword pfService sane-port
+syn keyword pfService sftp
+syn keyword pfService shell
+syn keyword pfService sieve
+syn keyword pfService silc
+syn keyword pfService sink
+syn keyword pfService sip
+syn keyword pfService smtp
+syn keyword pfService smtps
+syn keyword pfService smux
+syn keyword pfService snmp
+syn keyword pfService snmp-trap
+syn keyword pfService snmptrap
+syn keyword pfService snpp
+syn keyword pfService socks
+syn keyword pfService source
+syn keyword pfService spamd
+syn keyword pfService spamd-cfg
+syn keyword pfService spamd-sync
+syn keyword pfService spooler
+syn keyword pfService spop3
+syn keyword pfService ssdp
+syn keyword pfService ssh
+syn keyword pfService submission
+syn keyword pfService sunrpc
+syn keyword pfService supdup
+syn keyword pfService supfiledbg
+syn keyword pfService supfilesrv
+syn keyword pfService support
+syn keyword pfService svn
+syn keyword pfService svrloc
+syn keyword pfService swat
+syn keyword pfService syslog
+syn keyword pfService syslog-tls
+syn keyword pfService systat
+syn keyword pfService tacacs
+syn keyword pfService tacas+
+syn keyword pfService talk
+syn keyword pfService tap
+syn keyword pfService tcpmux
+syn keyword pfService telnet
+syn keyword pfService tempo
+syn keyword pfService tftp
+syn keyword pfService time
+syn keyword pfService timed
+syn keyword pfService timeserver
+syn keyword pfService timserver
+syn keyword pfService tsap
+syn keyword pfService ttylink
+syn keyword pfService ttytst
+syn keyword pfService ub-dns-control
+syn keyword pfService ulistserv
+syn keyword pfService untp
+syn keyword pfService usenet
+syn keyword pfService users
+syn keyword pfService uucp
+syn keyword pfService uucp-path
+syn keyword pfService uucpd
+syn keyword pfService vnc
+syn keyword pfService vxlan
+syn keyword pfService wais
+syn keyword pfService webster
+syn keyword pfService who
+syn keyword pfService whod
+syn keyword pfService whois
+syn keyword pfService www
+syn keyword pfService x400
+syn keyword pfService x400-snd
+syn keyword pfService xcept
+syn keyword pfService xdmcp
+syn keyword pfService xmpp-bosh
+syn keyword pfService xmpp-client
+syn keyword pfService xmpp-server
+syn keyword pfService z3950
+syn keyword pfService zabbix-agent
+syn keyword pfService zabbix-trapper
+syn keyword pfService zebra
+syn keyword pfService zebrasrv
diff --git a/runtime/syntax/php.vim b/runtime/syntax/php.vim
index ef89a9e..b10b0c6 100644
--- a/runtime/syntax/php.vim
+++ b/runtime/syntax/php.vim
@@ -1,7 +1,7 @@
" Vim syntax file
" Language: php PHP 3/4/5/7
" Maintainer: Jason Woofenden <jason@jasonwoof.com>
-" Last Change: May 12, 2018
+" Last Change: Jun 20, 2018
" URL: https://jasonwoof.com/gitweb/?p=vim-syntax.git;a=blob;f=php.vim;hb=HEAD
" Former Maintainers: Peter Hodge <toomuchphp-vim@yahoo.com>
" Debian VIM Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
@@ -446,7 +446,7 @@ if exists("php_folding") && php_folding==1
syn match phpException "\(\s\|^\)catch\(\s\+.*}\)\@=" contained
syn match phpException "\(\s\|^\)finally\(\s\+.*}\)\@=" contained
- set foldmethod=syntax
+ setlocal foldmethod=syntax
syn region phpFoldHtmlInside matchgroup=Delimiter start="?>" end="<?\(php\)\=" contained transparent contains=@htmlTop
syn region phpFoldFunction matchgroup=Storageclass start="^\z(\s*\)\(abstract\s\+\|final\s\+\|private\s\+\|protected\s\+\|public\s\+\|static\s\+\)*function\s\([^};]*$\)\@="rs=e-9 matchgroup=Delimiter end="^\z1}" contains=@phpClFunction,phpFoldHtmlInside,phpFCKeyword contained transparent fold extend
syn region phpFoldFunction matchgroup=Define start="^function\s\([^};]*$\)\@=" matchgroup=Delimiter end="^}" contains=@phpClFunction,phpFoldHtmlInside contained transparent fold extend
@@ -460,7 +460,7 @@ else
syn keyword phpException catch throw try finally contained
syn keyword phpStorageClass final global private protected public static contained
if exists("php_folding") && php_folding==2
- set foldmethod=syntax
+ setlocal foldmethod=syntax
syn region phpFoldHtmlInside matchgroup=Delimiter start="?>" end="<?\(php\)\=" contained transparent contains=@htmlTop
syn region phpParent matchgroup=Delimiter start="{" end="}" contained contains=@phpClFunction,phpFoldHtmlInside transparent fold
endif
diff --git a/runtime/syntax/readline.vim b/runtime/syntax/readline.vim
index 78472cd..3831ae1 100644
--- a/runtime/syntax/readline.vim
+++ b/runtime/syntax/readline.vim
@@ -2,9 +2,9 @@
" Language: readline(3) configuration file
" Maintainer: Daniel Moch <daniel@danielmoch.com>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2017-12-25
-" readline_has_bash - if defined add support for bash specific
-" settings/functions
+" Latest Revision: 2018-07-26
+" Add new functions for Readline 7 / Bash 4.4
+" (credit: Github user bewuethr)
if exists('b:current_syntax')
finish
@@ -111,7 +111,7 @@ syn keyword readlineKeyword contained
\ nextgroup=readlineVariable
\ skipwhite
-syn keyword readlineVariable contained
+syn keyword readlineVariable contained
\ nextgroup=readlineBellStyle
\ skipwhite
\ bell-style
@@ -120,12 +120,15 @@ syn keyword readlineVariable contained
\ nextgroup=readlineBoolean
\ skipwhite
\ bind-tty-special-chars
+ \ blink-matching-paren
+ \ colored-completion-prefix
\ colored-stats
\ completion-ignore-case
\ completion-map-case
\ convert-meta
\ disable-completion
\ echo-control-characters
+ \ enable-bracketed-paste
\ enable-keypad
\ enable-meta-key
\ expand-tilde
@@ -269,6 +272,7 @@ syn keyword readlineFunction contained
\ start-kbd-macro
\ end-kbd-macro
\ call-last-kbd-macro
+ \ print-last-kbd-macro
\
\ re-read-init-file
\ abort
@@ -339,6 +343,8 @@ syn keyword readlineFunction contained
if exists("readline_has_bash")
syn keyword readlineFunction contained
+ \ shell-forward-word
+ \ shell-backward-word
\ shell-expand-line
\ history-expand-line
\ magic-space
@@ -347,6 +353,8 @@ if exists("readline_has_bash")
\ insert-last-argument
\ operate-and-get-next
\ forward-backward-delete-char
+ \ shell-kill-word
+ \ shell-backward-kill-word
\ delete-char-or-list
\ complete-filename
\ possible-filename-completions
@@ -359,6 +367,7 @@ if exists("readline_has_bash")
\ complete-command
\ possible-command-completions
\ dynamic-complete-history
+ \ dabbrev-expand
\ complete-into-braces
\ glob-expand-word
\ glob-list-expansions
diff --git a/runtime/syntax/rst.vim b/runtime/syntax/rst.vim
index 232d2a7..d620d91 100644
--- a/runtime/syntax/rst.vim
+++ b/runtime/syntax/rst.vim
@@ -3,7 +3,7 @@
" Maintainer: Marshall Ward <marshall.ward@gmail.com>
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
" Website: https://github.com/marshallward/vim-restructuredtext
-" Latest Revision: 2016-08-18
+" Latest Revision: 2018-07-23
if exists("b:current_syntax")
finish
@@ -50,7 +50,10 @@ syn cluster rstDirectives contains=rstFootnote,rstCitation,
syn match rstExplicitMarkup '^\s*\.\.\_s'
\ nextgroup=@rstDirectives,rstComment,rstSubstitutionDefinition
-let s:ReferenceName = '[[:alnum:]]\+\%([_.-][[:alnum:]]\+\)*'
+" "Simple reference names are single words consisting of alphanumerics plus
+" isolated (no two adjacent) internal hyphens, underscores, periods, colons
+" and plus signs."
+let s:ReferenceName = '[[:alnum:]]\%([-_.:+]\?[[:alnum:]]\+\)*'
syn keyword rstTodo contained FIXME TODO XXX NOTE
@@ -83,7 +86,7 @@ execute 'syn region rstExDirective contained matchgroup=rstDirective' .
\ ' end=+^\s\@!+ contains=@rstCruft,rstLiteralBlock'
execute 'syn match rstSubstitutionDefinition contained' .
- \ ' /|' . s:ReferenceName . '|\_s\+/ nextgroup=@rstDirectives'
+ \ ' /|.*|\_s\+/ nextgroup=@rstDirectives'
function! s:DefineOneInlineMarkup(name, start, middle, end, char_left, char_right)
execute 'syn region rst' . a:name .
@@ -107,10 +110,10 @@ function! s:DefineInlineMarkup(name, start, middle, end)
call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '’', '’')
" TODO: Additional Unicode Pd, Po, Pi, Pf, Ps characters
- call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\%(^\|\s\|[/:]\)', '')
+ call s:DefineOneInlineMarkup(a:name, a:start, middle, a:end, '\%(^\|\s\|\%ua0\|[/:]\)', '')
execute 'syn match rst' . a:name .
- \ ' +\%(^\|\s\|[''"([{</:]\)\zs' . a:start .
+ \ ' +\%(^\|\s\|\%ua0\|[''"([{</:]\)\zs' . a:start .
\ '[^[:space:]' . a:start[strlen(a:start) - 1] . ']'
\ a:end . '\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)+'
@@ -124,14 +127,31 @@ call s:DefineInlineMarkup('InlineLiteral', '``', "", '``')
call s:DefineInlineMarkup('SubstitutionReference', '|', '|', '|_\{0,2}')
call s:DefineInlineMarkup('InlineInternalTargets', '_`', '`', '`')
-syn match rstSections "^\%(\([=`:.'"~^_*+#-]\)\1\+\n\)\=.\+\n\([=`:.'"~^_*+#-]\)\2\+$"
+" Sections are identified through their titles, which are marked up with
+" adornment: "underlines" below the title text, or underlines and matching
+" "overlines" above the title. An underline/overline is a single repeated
+" punctuation character that begins in column 1 and forms a line extending at
+" least as far as the right edge of the title text.
+"
+" It is difficult to count characters in a regex, but we at least special-case
+" the case where the title has at least three characters to require the
+" adornment to have at least three characters as well, in order to handle
+" properly the case of a literal block:
+"
+" this is the end of a paragraph
+" ::
+" this is a literal block
+syn match rstSections "\v^%(([=`:.'"~^_*+#-])\1+\n)?.{1,2}\n([=`:.'"~^_*+#-])\2+$"
+ \ contains=@Spell
+syn match rstSections "\v^%(([=`:.'"~^_*+#-])\1{2,}\n)?.{3,}\n([=`:.'"~^_*+#-])\2{2,}$"
+ \ contains=@Spell
" TODO: Can’t remember why these two can’t be defined like the ones above.
execute 'syn match rstFootnoteReference contains=@NoSpell' .
- \ ' +\[\%(\d\+\|#\%(' . s:ReferenceName . '\)\=\|\*\)\]_+'
+ \ ' +\%(\s\|^\)\[\%(\d\+\|#\%(' . s:ReferenceName . '\)\=\|\*\)\]_+'
execute 'syn match rstCitationReference contains=@NoSpell' .
- \ ' +\[' . s:ReferenceName . '\]_\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)+'
+ \ ' +\%(\s\|^\)\[' . s:ReferenceName . '\]_\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)+'
execute 'syn match rstHyperlinkReference' .
\ ' /\<' . s:ReferenceName . '__\=\ze\%($\|\s\|[''")\]}>/:.,;!?\\-]\)/'
@@ -140,28 +160,69 @@ syn match rstStandaloneHyperlink contains=@NoSpell
\ "\<\%(\%(\%(https\=\|file\|ftp\|gopher\)://\|\%(mailto\|news\):\)[^[:space:]'\"<>]\+\|www[[:alnum:]_-]*\.[[:alnum:]_-]\+\.[^[:space:]'\"<>]\+\)[[:alnum:]/]"
syn region rstCodeBlock contained matchgroup=rstDirective
- \ start=+\%(sourcecode\|code\%(-block\)\=\)::\s\+\w*\_s*\n\ze\z(\s\+\)+
+ \ start=+\%(sourcecode\|code\%(-block\)\=\)::\s\+.*\_s*\n\ze\z(\s\+\)+
\ skip=+^$+
\ end=+^\z1\@!+
\ contains=@NoSpell
syn cluster rstDirectives add=rstCodeBlock
if !exists('g:rst_syntax_code_list')
- let g:rst_syntax_code_list = ['vim', 'java', 'cpp', 'lisp', 'php',
- \ 'python', 'perl', 'sh']
+ " A mapping from a Vim filetype to a list of alias patterns (pattern
+ " branches to be specific, see ':help /pattern'). E.g. given:
+ "
+ " let g:rst_syntax_code_list = {
+ " \ 'cpp': ['cpp', 'c++'],
+ " \ }
+ "
+ " then the respective contents of the following two rST directives:
+ "
+ " .. code:: cpp
+ "
+ " auto i = 42;
+ "
+ " .. code:: C++
+ "
+ " auto i = 42;
+ "
+ " will both be highlighted as C++ code. As shown by the latter block
+ " pattern matching will be case-insensitive.
+ let g:rst_syntax_code_list = {
+ \ 'vim': ['vim'],
+ \ 'java': ['java'],
+ \ 'cpp': ['cpp', 'c++'],
+ \ 'lisp': ['lisp'],
+ \ 'php': ['php'],
+ \ 'python': ['python'],
+ \ 'perl': ['perl'],
+ \ 'sh': ['sh'],
+ \ }
+elseif type(g:rst_syntax_code_list) == type([])
+ " backward compatibility with former list format
+ let s:old_spec = g:rst_syntax_code_list
+ let g:rst_syntax_code_list = {}
+ for s:elem in s:old_spec
+ let g:rst_syntax_code_list[s:elem] = [s:elem]
+ endfor
endif
-for code in g:rst_syntax_code_list
+for s:filetype in keys(g:rst_syntax_code_list)
unlet! b:current_syntax
" guard against setting 'isk' option which might cause problems (issue #108)
let prior_isk = &l:iskeyword
- exe 'syn include @rst'.code.' syntax/'.code.'.vim'
- exe 'syn region rstDirective'.code.' matchgroup=rstDirective fold'
- \.' start=#\%(sourcecode\|code\%(-block\)\=\)::\s\+'.code.'\_s*\n\ze\z(\s\+\)#'
+ let s:alias_pattern = ''
+ \.'\%('
+ \.join(g:rst_syntax_code_list[s:filetype], '\|')
+ \.'\)'
+
+ exe 'syn include @rst'.s:filetype.' syntax/'.s:filetype.'.vim'
+ exe 'syn region rstDirective'.s:filetype
+ \.' matchgroup=rstDirective fold'
+ \.' start="\c\%(sourcecode\|code\%(-block\)\=\)::\s\+'.s:alias_pattern.'\_s*\n\ze\z(\s\+\)"'
\.' skip=#^$#'
\.' end=#^\z1\@!#'
- \.' contains=@NoSpell,@rst'.code
- exe 'syn cluster rstDirectives add=rstDirective'.code
+ \.' contains=@NoSpell,@rst'.s:filetype
+ exe 'syn cluster rstDirectives add=rstDirective'.s:filetype
+
" reset 'isk' setting, if it has been changed
if &l:iskeyword !=# prior_isk
let &l:iskeyword = prior_isk
@@ -169,6 +230,9 @@ for code in g:rst_syntax_code_list
unlet! prior_isk
endfor
+" Enable top level spell checking
+syntax spell toplevel
+
" TODO: Use better syncing.
syn sync minlines=50 linebreaks=2
@@ -189,8 +253,6 @@ hi def link rstHyperlinkTarget String
hi def link rstExDirective String
hi def link rstSubstitutionDefinition rstDirective
hi def link rstDelimiter Delimiter
-hi def rstEmphasis ctermfg=13 term=italic cterm=italic gui=italic
-hi def rstStrongEmphasis ctermfg=1 term=bold cterm=bold gui=bold
hi def link rstInterpretedTextOrHyperlinkReference Identifier
hi def link rstInlineLiteral String
hi def link rstSubstitutionReference PreProc
@@ -200,6 +262,14 @@ hi def link rstCitationReference Identifier
hi def link rstHyperLinkReference Identifier
hi def link rstStandaloneHyperlink Identifier
hi def link rstCodeBlock String
+if exists('g:rst_use_emphasis_colors')
+ " TODO: Less arbitrary color selection
+ hi def rstEmphasis ctermfg=13 term=italic cterm=italic gui=italic
+ hi def rstStrongEmphasis ctermfg=1 term=bold cterm=bold gui=bold
+else
+ hi def rstEmphasis term=italic cterm=italic gui=italic
+ hi def rstStrongEmphasis term=bold cterm=bold gui=bold
+endif
let b:current_syntax = "rst"
diff --git a/runtime/syntax/sqloracle.vim b/runtime/syntax/sqloracle.vim
index 3989b1f..0907b48 100644
--- a/runtime/syntax/sqloracle.vim
+++ b/runtime/syntax/sqloracle.vim
@@ -4,13 +4,15 @@
" Repository: https://github.com/chrisbra/vim-sqloracle-syntax
" License: Vim
" Previous Maintainer: Paul Moore
-" Last Change: 2018 May 13
+" Last Change: 2018 June 24
" Changes:
" 02.04.2016: Support for when keyword
" 03.04.2016: Support for join related keywords
" 22.07.2016: Support Oracle Q-Quote-Syntax
" 25.07.2016: Support for Oracle N'-Quote syntax
+" 22.06.2018: Remove skip part for sqlString (do not escape strings)
+" (https://web.archive.org/web/20150922065035/https://mariadb.com/kb/en/sql-99/character-string-literals/)
if exists("b:current_syntax")
finish
@@ -50,12 +52,14 @@ syn keyword sqlStatement truncate
" next ones are contained, so folding works.
syn keyword sqlStatement create update alter select insert contained
-syn keyword sqlType boolean char character date float integer long
-syn keyword sqlType mlslabel number raw rowid varchar varchar2 varray
+syn keyword sqlType bfile blob boolean char character clob date datetime
+syn keyword sqlType dec decimal float int integer long mlslabel nchar
+syn keyword sqlType nclob number numeric nvarchar2 precision raw rowid
+syn keyword sqlType smallint real timestamp urowid varchar varchar2 varray
" Strings:
-syn region sqlString matchgroup=Quote start=+n\?"+ skip=+\\\\\|\\"+ end=+"+
-syn region sqlString matchgroup=Quote start=+n\?'+ skip=+\\\\\|\\'+ end=+'+
+syn region sqlString matchgroup=Quote start=+n\?"+ end=+"+
+syn region sqlString matchgroup=Quote start=+n\?'+ end=+'+
syn region sqlString matchgroup=Quote start=+n\?q'\z([^[(<{]\)+ end=+\z1'+
syn region sqlString matchgroup=Quote start=+n\?q'<+ end=+>'+
syn region sqlString matchgroup=Quote start=+n\?q'{+ end=+}'+
@@ -68,6 +72,7 @@ syn match sqlNumber "-\=\<\d*\.\=[0-9_]\>"
" Comments:
syn region sqlComment start="/\*" end="\*/" contains=sqlTodo,@Spell fold
syn match sqlComment "--.*$" contains=sqlTodo,@Spell
+syn match sqlComment "^rem.*$" contains=sqlTodo,@Spell
" Setup Folding:
" this is a hack, to get certain statements folded.
@@ -129,15 +134,15 @@ syn keyword sqlFunction xmlparse xmlpatch xmlpi xmlquery xmlroot xmlsequence xml
syn keyword sqlTodo TODO FIXME XXX DEBUG NOTE contained
" Define the default highlighting.
-hi def link Quote Special
-hi def link sqlComment Comment
-hi def link sqlFunction Function
-hi def link sqlKeyword sqlSpecial
-hi def link sqlNumber Number
-hi def link sqlOperator sqlStatement
-hi def link sqlSpecial Special
+hi def link Quote Special
+hi def link sqlComment Comment
+hi def link sqlFunction Function
+hi def link sqlKeyword sqlSpecial
+hi def link sqlNumber Number
+hi def link sqlOperator sqlStatement
+hi def link sqlSpecial Special
hi def link sqlStatement Statement
-hi def link sqlString String
+hi def link sqlString String
hi def link sqlType Type
hi def link sqlTodo Todo
diff --git a/runtime/syntax/sudoers.vim b/runtime/syntax/sudoers.vim
index df1eb99..31f5f2b 100644
--- a/runtime/syntax/sudoers.vim
+++ b/runtime/syntax/sudoers.vim
@@ -1,7 +1,8 @@
" Vim syntax file
" Language: sudoers(5) configuration files
" Previous Maintainer: Nikolai Weibull <now@bitwi.se>
-" Latest Revision: 2011-02-24
+" Latest Revision: 2018-07-19
+" Recent Changes: Support for #include and #includedir.
if exists("b:current_syntax")
finish
@@ -24,6 +25,7 @@ syn cluster sudoersCmndSpecList contains=sudoersUserRunasBegin,sudoersPASS
syn keyword sudoersTodo contained TODO FIXME XXX NOTE
syn region sudoersComment display oneline start='#' end='$' contains=sudoersTodo
+syn region sudoersInclude display oneline start='#\(include\|includedir\)' end='$'
syn keyword sudoersAlias User_Alias Runas_Alias nextgroup=sudoersUserAlias skipwhite skipnl
syn keyword sudoersAlias Host_Alias nextgroup=sudoersHostAlias skipwhite skipnl
@@ -335,6 +337,7 @@ hi def link sudoersIntegerValue Number
hi def link sudoersStringValue String
hi def link sudoersListValue String
hi def link sudoersPASSWD Special
+hi def link sudoersInclude Statement
let b:current_syntax = "sudoers"
diff --git a/runtime/tools/unicode.vim b/runtime/tools/unicode.vim
index ad66472..b518d05 100644
--- a/runtime/tools/unicode.vim
+++ b/runtime/tools/unicode.vim
@@ -383,7 +383,7 @@ let s:ambitable = []
call BuildWidthTable('A', 'ambiguous')
" Edit the emoji text file. Requires the netrw plugin.
-edit http://unicode.org/Public/emoji/5.0/emoji-data.txt
+edit https://www.unicode.org/Public/emoji/11.0/emoji-data.txt
"edit http://www.unicode.org/Public/emoji/latest/emoji-data.txt
" Build the emoji table. Ver. 1.0 - 6.0
diff --git a/runtime/tutor/Makefile b/runtime/tutor/Makefile
index 35fe821..a8834a1 100644
--- a/runtime/tutor/Makefile
+++ b/runtime/tutor/Makefile
@@ -66,10 +66,10 @@ tutor.hr.cp1250: tutor.hr.utf-8
iconv -f UTF-8 -t cp1250 tutor.hr.utf-8 > tutor.hr.cp1250
tutor.ja.sjis: tutor.ja.utf-8
- nkf -WXs tutor.ja.utf-8 > tutor.ja.sjis
+ iconv -f UTF-8 -t cp932 tutor.ja.utf-8 > tutor.ja.sjis
tutor.ja.euc: tutor.ja.utf-8
- nkf -WXe tutor.ja.utf-8 > tutor.ja.euc
+ iconv -f UTF-8 -t EUC-JP tutor.ja.utf-8 > tutor.ja.euc
tutor.ko.euc: tutor.ko.utf-8
iconv -f UTF-8 -t EUC-KR tutor.ko.utf-8 > tutor.ko.euc
diff --git a/runtime/tutor/README.txt b/runtime/tutor/README.txt
index 77097c1..4338ee9 100644
--- a/runtime/tutor/README.txt
+++ b/runtime/tutor/README.txt
@@ -19,4 +19,19 @@ Bob Ware, Colorado School of Mines, Golden, Co 80401, USA
(303) 273-3987
bware@mines.colorado.edu bware@slate.mines.colorado.edu bware@mines.bitnet
-[This file was modified for Vim by Bram Moolenaar]
+
+Translation
+-----------
+
+The tutor.xx and tutor.xx.utf-8 files are translated files (where xx is the
+langage code). The encoding of tutor.xx might be latin1 or other traditional
+encoding. If you don't need a translation with such traditional encoding,
+you just need to prepare the tutor.xx.utf-8 file.
+If you need another encoding, you can also prepare a file named tutor.xx.enc
+(replace enc with the actual encoding name). You might also need to adjust the
+tutor.vim file.
+The "make" command can be used for creating tutor.xx from tutor.xx.utf-8.
+See the Makefile for detail. (For some languages, tutor.xx.utf-8 is created
+from tutor.xx for historical reasons.)
+
+[This file was modified for Vim by Bram Moolenaar et al.]
diff --git a/runtime/tutor/tutor b/runtime/tutor/tutor
index 2afefbb..c076e3b 100644
--- a/runtime/tutor/tutor
+++ b/runtime/tutor/tutor
@@ -19,7 +19,7 @@
properly. If you only read the text, you will forget the commands!
Now, make sure that your Caps-Lock key is NOT depressed and press
- the j key enough times to move the cursor so that Lesson 1.1
+ the j key enough times to move the cursor so that lesson 1.1
completely fills the screen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.1: MOVING THE CURSOR
@@ -36,7 +36,7 @@
2. Hold down the down key (j) until it repeats.
Now you know how to move to the next lesson.
- 3. Using the down key, move to Lesson 1.2.
+ 3. Using the down key, move to lesson 1.2.
NOTE: If you are ever unsure about something you typed, press <ESC> to place
you in Normal mode. Then retype the command you wanted.
@@ -64,7 +64,7 @@ NOTE: The cursor keys should also work. But using hjkl you will be able to
NOTE: :q! <ENTER> discards any changes you made. In a few lessons you
will learn how to save the changes to a file.
- 5. Move the cursor down to Lesson 1.3.
+ 5. Move the cursor down to lesson 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -84,7 +84,7 @@ NOTE: :q! <ENTER> discards any changes you made. In a few lessons you
---> The ccow jumpedd ovverr thhe mooon.
- 5. Now that the line is correct, go on to Lesson 1.4.
+ 5. Now that the line is correct, go on to lesson 1.4.
NOTE: As you go through this tutor, do not try to memorize, learn by usage.
@@ -126,7 +126,7 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
3. As the text has been appended press <ESC> to return to Normal mode.
- 4. Move the cursor to the second line marked ---> and repeat
+ 4. Move the cursor to the second line marked ---> and repeat
steps 2 and 3 to correct this sentence.
---> There is some text missing from th
@@ -152,13 +152,13 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
3. Insert and delete text as you learned in the previous lessons.
- 4. Save the file with changes and exit Vim with: :wq <ENTER>
+ 4. Save the file with changes and exit Vim with: :wq <ENTER>
5. If you have quit vimtutor in step 1 restart the vimtutor and move down to
the following summary.
6. After reading the above steps and understanding them: do it.
-
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1 SUMMARY
@@ -180,7 +180,7 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
NOTE: Pressing <ESC> will place you in Normal mode or will cancel
an unwanted and partially completed command.
-Now continue with Lesson 2.
+Now continue with lesson 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.1: DELETION COMMANDS
@@ -202,7 +202,7 @@ Now continue with Lesson 2.
---> There are a some words fun that don't belong paper in this sentence.
- 5. Repeat steps 3 and 4 until the sentence is correct and go to Lesson 2.2.
+ 5. Repeat steps 3 and 4 until the sentence is correct and go to lesson 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -222,7 +222,7 @@ Now continue with Lesson 2.
---> Somebody typed the end of this line twice. end of this line twice.
- 5. Move on to Lesson 2.3 to understand what is happening.
+ 5. Move on to lesson 2.3 to understand what is happening.
@@ -257,7 +257,7 @@ NOTE: Pressing just the motion while in Normal mode without an operator will
** Typing a number before a motion repeats it that many times. **
- 1. Move the cursor to the start of the line marked ---> below.
+ 1. Move the cursor to the start of the line below marked --->.
2. Type 2w to move the cursor two words forward.
@@ -269,7 +269,7 @@ NOTE: Pressing just the motion while in Normal mode without an operator will
---> This is just a line with words you can move around in.
- 6. Move on to Lesson 2.5.
+ 6. Move on to lesson 2.5.
@@ -286,10 +286,10 @@ NOTE: Pressing just the motion while in Normal mode without an operator will
1. Move the cursor to the first UPPER CASE word in the line marked --->.
- 2. Type d2w to delete the two UPPER CASE words
+ 2. Type d2w to delete the two UPPER CASE words.
3. Repeat steps 1 and 2 with a different count to delete the consecutive
- UPPER CASE words with one command
+ UPPER CASE words with one command.
---> this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
@@ -338,7 +338,7 @@ NOTE: Pressing just the motion while in Normal mode without an operator will
---> Fiix the errors oon thhis line and reeplace them witth undo.
- 8. These are very useful commands. Now move on to the Lesson 2 Summary.
+ 8. These are very useful commands. Now move on to the lesson 2 Summary.
@@ -372,7 +372,7 @@ NOTE: Pressing just the motion while in Normal mode without an operator will
** Type p to put previously deleted text after the cursor. **
- 1. Move the cursor to the first ---> line below.
+ 1. Move the cursor to the first line below marked --->.
2. Type dd to delete the line and store it in a Vim register.
@@ -406,7 +406,7 @@ NOTE: Pressing just the motion while in Normal mode without an operator will
---> Whan this lime was tuoed in, someone presswd some wrojg keys!
---> When this line was typed in, someone pressed some wrong keys!
- 5. Now move on to Lesson 3.3.
+ 5. Now move on to lesson 3.3.
NOTE: Remember that you should be learning by doing, not memorization.
@@ -447,7 +447,7 @@ Notice that ce deletes the word and places you in Insert mode.
2. The motions are the same, such as w (word) and $ (end of line).
- 3. Move to the first line below marked --->.
+ 3. Move the cursor to the first line below marked --->.
4. Move the cursor to the first error.
@@ -558,7 +558,7 @@ NOTE: This is very useful in debugging a program with unmatched parentheses!
1. Move the cursor to the line below marked --->.
- 2. Type :s/thee/the <ENTER> . Note that this command only changes the
+ 2. Type :s/thee/the <ENTER> . Note that this command only changes the
first occurrence of "thee" in the line.
3. Now type :s/thee/the/g . Adding the g flag means to substitute
@@ -623,7 +623,7 @@ NOTE: All : commands must be finished by hitting <ENTER>
Lesson 5.2: MORE ON WRITING FILES
- ** To save the changes made to the text, type :w FILENAME. **
+ ** To save the changes made to the text, type :w FILENAME **
1. Type :!dir or :!ls to get a listing of your directory.
You already know you must hit <ENTER> after this.
@@ -638,7 +638,7 @@ NOTE: All : commands must be finished by hitting <ENTER>
NOTE: If you were to exit Vim and start it again with vim TEST , the file
would be an exact copy of the tutor when you saved it.
- 5. Now remove the file by typing (MS-DOS): :!del TEST
+ 5. Now remove the file by typing (Windows): :!del TEST
or (Unix): :!rm TEST
@@ -673,7 +673,7 @@ NOTE: Pressing v starts Visual selection. You can move the cursor around
1. Place the cursor just above this line.
-NOTE: After executing Step 2 you will see text from Lesson 5.3. Then move
+NOTE: After executing Step 2 you will see text from lesson 5.3. Then move
DOWN to see this lesson again.
2. Now retrieve your TEST file using the command :r TEST where TEST is
@@ -681,7 +681,7 @@ NOTE: After executing Step 2 you will see text from Lesson 5.3. Then move
The file you retrieve is placed below the cursor line.
3. To verify that a file was retrieved, cursor back and notice that there
- are now two copies of Lesson 5.3, the original and the file version.
+ are now two copies of lesson 5.3, the original and the file version.
NOTE: You can also read the output of an external command. For example,
:r !ls reads the output of the ls command and puts it below the
@@ -695,7 +695,7 @@ NOTE: You can also read the output of an external command. For example,
1. :!command executes an external command.
Some useful examples are:
- (MS-DOS) (Unix)
+ (Windows) (Unix)
:!dir :!ls - shows a directory listing.
:!del FILENAME :!rm FILENAME - removes file FILENAME.
@@ -717,7 +717,7 @@ NOTE: You can also read the output of an external command. For example,
** Type o to open a line below the cursor and place you in Insert mode. **
- 1. Move the cursor to the line below marked --->.
+ 1. Move the cursor to the first line below marked --->.
2. Type the lowercase letter o to open up a line BELOW the cursor and place
you in Insert mode.
@@ -740,8 +740,8 @@ NOTE: You can also read the output of an external command. For example,
** Type a to insert text AFTER the cursor. **
- 1. Move the cursor to the start of the line below marked --->.
-
+ 1. Move the cursor to the start of the first line below marked --->.
+
2. Press e until the cursor is on the end of li .
3. Type an a (lowercase) to append text AFTER the cursor.
@@ -750,7 +750,7 @@ NOTE: You can also read the output of an external command. For example,
mode.
5. Use e to move to the next incomplete word and repeat steps 3 and 4.
-
+
---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.
@@ -786,10 +786,10 @@ NOTE: Replace mode is like Insert mode, but every typed character deletes an
** Use the y operator to copy text and p to paste it **
- 1. Go to the line marked with ---> below and place the cursor after "a)".
-
+ 1. Move to the line below marked ---> and place the cursor after "a)".
+
2. Start Visual mode with v and move the cursor to just before "first".
-
+
3. Type y to yank (copy) the highlighted text.
4. Move the cursor to the end of the next line: j$
@@ -802,14 +802,14 @@ NOTE: Replace mode is like Insert mode, but every typed character deletes an
---> a) this is the first item.
b)
- NOTE: you can also use y as an operator; yw yanks one word.
+ NOTE: You can also use y as an operator; yw yanks one word.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.5: SET OPTION
** Set an option so a search or substitute ignores case **
- 1. Search for 'ignore' by entering: /ignore <ENTER>
+ 1. Search for 'ignore' by entering: /ignore <ENTER>
Repeat several times by pressing n .
2. Set the 'ic' (Ignore case) option by entering: :set ic
@@ -823,9 +823,9 @@ NOTE: Replace mode is like Insert mode, but every typed character deletes an
6. To disable ignoring case enter: :set noic
-NOTE: To remove the highlighting of matches enter: :nohlsearch
+NOTE: To remove the highlighting of matches enter: :nohlsearch
NOTE: If you want to ignore case for just one search command, use \c
- in the phrase: /ignore\c <ENTER>
+ in the phrase: /ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6 SUMMARY
@@ -883,7 +883,7 @@ NOTE: If you want to ignore case for just one search command, use \c
1. Start editing the "vimrc" file. This depends on your system:
:e ~/.vimrc for Unix
- :e $VIM/_vimrc for MS-Windows
+ :e $VIM/_vimrc for Windows
2. Now read the example "vimrc" file contents:
:r $VIMRUNTIME/vimrc_example.vim
@@ -909,7 +909,7 @@ NOTE: If you want to ignore case for just one search command, use \c
4. Press CTRL-D and Vim will show a list of commands that start with "e".
- 5. Press <TAB> and Vim will complete the command name to ":edit".
+ 5. Type d<TAB> and Vim will complete the command name to ":edit".
6. Now add a space and the start of an existing file name: :edit FIL
@@ -922,13 +922,13 @@ NOTE: Completion works for many commands. Just try pressing CTRL-D and
Lesson 7 SUMMARY
- 1. Type :help or press <F1> or <Help> to open a help window.
+ 1. Type :help or press <F1> or <HELP> to open a help window.
2. Type :help cmd to find help on cmd .
- 3. Type CTRL-W CTRL-W to jump to another window
+ 3. Type CTRL-W CTRL-W to jump to another window.
- 4. Type :q to close the help window
+ 4. Type :q to close the help window.
5. Create a vimrc startup script to keep your preferred settings.
diff --git a/runtime/tutor/tutor.ca.utf-8 b/runtime/tutor/tutor.ca.utf-8
index 7e8e570..627c0ce 100644
--- a/runtime/tutor/tutor.ca.utf-8
+++ b/runtime/tutor/tutor.ca.utf-8
@@ -2,86 +2,87 @@
= B e n v i n g u t s a l t u t o r d e l V I M - Versió 1.5 =
===============================================================================
- El Vim és un editor molt potent que té moltes ordres, masses com per
- explicar-les totes un tutor com aquest. Aquest tutor està dissenyat
- per descriure les ordres bàsiques que us permetin fer servir el Vim com
- a editor de propòsit general.
+ El Vim és un editor potent i té moltes ordres, massa com per a
+ explicar-les totes un tutor com aquest. Aquest tutor està pensat per a
+ ensenyar les ordres bàsiques que us permetin fer servir el Vim com a
+ editor de propòsit general.
- El temps aproximat de seguir el tutor complet és d'uns 25 o 30 minuts
+ El temps aproximat de completar el tutor és d'uns 25 o 30 minuts
depenent de quant temps dediqueu a experimentar.
- Feu una còpia d'aquest fitxer per practicar-hi (si heu començat amb el
- programa vimtutor això que esteu llegint ja és una còpia).
+ Feu una còpia d'aquest fitxer per a practicar-hi (si heu començat amb
+ el programa vimtutor això que esteu llegint ja és una còpia).
- És important recordar que aquest tutor està pensat per ensenyar
- practicant. És a dir, que haureu d'executar les ordres si les voleu
+ És important recordar que aquest tutor està pensat per a ensenyar
+ practicant, és a dir que haureu d'executar les ordres si les voleu
aprendre. Si només llegiu el text el més probable és que les oblideu.
Ara assegureu-vos que la tecla de bloqueig de majúscules no està
- activada i premeu la tecla j per moure el cursor avall, fins que
- la lliçó 1.1 ocupi completament la pantalla.
+ activada i premeu la tecla j per a moure el cursor avall, fins que la
+ lliçó 1.1 ocupi completament la pantalla.
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 1.1: MOURE EL CURSOR
+ Lliçó 1.1: MOURE EL CURSOR
- ** Per moure el cursor premeu les tecles h,j,k,l tal com està indicat. **
+ ** Per a moure el cursor premeu les tecles h, j, k, l tal com s'indica. **
^
- k Pista: La h és a l'esquerra i mou el cursor cap a l'esquerra.
- < h l > La l és a la dreta i mou el cursor cap a la dreta.
- j La j sembla una fletxa cap avall.
+ k Pista: La h és a l'esquerra i mou el cursor cap a l'esquerra.
+ < h l > La l és a la dreta i mou el cursor cap a la dreta.
+ j La j sembla una fletxa cap avall.
v
1. Moveu el cursor per la pantalla fins que us sentiu confortables.
2. Mantingueu premuda la tecla avall (j) una estona.
----> Ara sabeu com moure-us fins a la pròxima lliçó.
+---> Ara ja sabeu com moure-us fins a la següent lliçó.
3. Usant la tecla avall, aneu a la lliçó 1.2.
-Nota: Si no esteu segurs de la tecla que heu premut, premeu <ESC> per tornar
- al mode Normal. Llavors torneu a teclejar l'ordre que volíeu.
+Nota: Si no esteu segurs de la tecla que heu premut, premeu <ESC> per a
+ tornar al mode Normal. Llavors torneu a teclejar l'ordre que volíeu.
-Nota: Les tecles de moviment del cursor (fletxes) també funcionen. Però usant
- hjkl anireu més ràpid, quan us hi hàgiu acostumant.
+Nota: Les tecles de moviment del cursor (fletxes) també funcionen. Però
+ usant hjkl anireu més ràpid un cop us hi hagueu acostumant.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 1.2: ENTRAR I SORTIR DEL VIM
+ Lliçó 1.2: ENTRAR I SORTIR DEL VIM
!! NOTA: Abans de seguir els passos següents llegiu *tota* la lliçó!!
- 1. Premeu <ESC> (per estar segurs que esteu en el mode Normal).
+ 1. Premeu <ESC> (per a estar segurs que esteu en el mode Normal).
- 2. Teclegeu: :q! <ENTRAR>.
+ 2. Teclegeu: :q! <ENTRAR>.
----> Amb això sortireu de l'editor SENSE desar els canvis que hàgiu pogut
+---> Amb això sortireu de l'editor SENSE desar els canvis que hagueu pogut
fer. Si voleu desar els canvis teclegeu:
- :wq <ENTRAR>
+ :wq <ENTRAR>
- 3. Quan vegeu l'introductor de la shell escriviu l'ordre amb la qual heu
- arribat a aquest tutor. Podria ser: vimtutor <ENTRAR>
- O bé: vim tutor <ENTRAR>
+ 3. Quan vegeu l'introductor de l'intèrpret escriviu l'ordre amb la
+ qual heu arribat a aquest tutor. Podria ser: vimtutor <ENTRAR>
+ O bé: vim tutor <ENTRAR>
---> 'vim' és l'editor vim, i 'tutor' és el fitxer que voleu editar.
4. Si heu memoritzat les ordres, feu els passos anteriors, de l'1 al 3,
- per sortir i tornar a entrar a l'editor. Llavors moveu el cursor avall
- fins la lliçó 1.3.
+ per a sortir i tornar a entrar a l'editor. Llavors moveu el cursor
+ avall fins a la lliçó 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 1.3: EDITAR TEXT - ESBORRAR
+ Lliçó 1.3: EDITAR TEXT - ESBORRAR
- ** En mode Normal premeu x per esborrar el caràcter de sota el cursor. **
+ ** En mode Normal premeu x per a esborrar el caràcter sota el cursor. **
- 1. Moveu el cursor fins la línia que hi ha més avall marcada amb --->.
+ 1. Moveu el cursor fins a la línia que hi ha més avall senyalada amb --->.
- 2. Poseu el cursor a sobre el caràcter que cal esborrar, per corregir els
- errors.
+ 2. Poseu el cursor a sobre el caràcter que cal esborrar per a corregir
+ els errors.
- 3. Premeu la tecla x per esborrar el caràcter.
+ 3. Premeu la tecla x per a esborrar el caràcter.
4. Repetiu els passos 2 i 3 fins que la frase sigui correcta.
----> Unna vaaca vva salttar sobbree la llluna.
+---> Unna vaaca vva salttar perr sobbree la llluna.
5. Ara que la línia és correcta, aneu a la lliçó 1.4.
@@ -90,20 +91,20 @@ NOTA: Mentre aneu fent no tracteu de memoritzar, practiqueu i prou.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 1.4: EDITAR TEXT - INSERIR
+ Lliçó 1.4: EDITAR TEXT - INSERIR
- ** En mode Normal premeu i per inserir text. **
+ ** En mode Normal premeu i per a inserir text. **
- 1. Moveu el cursor avall fins la primera línia marcada amb --->.
+ 1. Moveu el cursor avall fins la primera línia senyalada amb --->.
- 2. Per fer la primera línia igual que la segona poseu el cursor sobre el
- primer caràcter POSTERIOR al text que s'ha d'inserir.
+ 2. Per a fer la primera línia igual que la segona poseu el cursor sobre
+ el primer caràcter POSTERIOR al text que s'ha d'inserir.
3. Premeu la tecla i i escriviu el text que falta.
- 4. Quan hàgiu acabat premeu <ESC> per tornar al mode Normal. Repetiu
- els passos 2, 3 i 4 per corregir la frase.
+ 4. Quan hageu acabat premeu <ESC> per tornar al mode Normal. Repetiu
+ els passos 2, 3 i 4 fins a corregir la frase.
---> Falten carctrs en aquesta .
---> Falten alguns caràcters en aquesta línia.
@@ -113,110 +114,111 @@ NOTA: Mentre aneu fent no tracteu de memoritzar, practiqueu i prou.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- LLIÇÓ 1 SUMARI
+ LLIÇÓ 1 SUMARI
1. El cursor es mou amb les fletxes o bé amb les tecles hjkl.
- h (esquerra) j (avall) k (amunt) l (dreta)
+ h (esquerra) j (avall) k (amunt) l (dreta)
- 2. Per entrar al Vim (des de la shell) escriviu: vim FITXER <ENTRAR>
+ 2. Per a entrar al Vim (des de l'intèrpret) escriviu: vim FITXER <ENTRAR>
- 3. Per sortir teclegeu: <ESC> :q! <ENTRAR> per descartar els canvis.
- O BÉ teclegeu: <ESC> :wq <ENTRAR> per desar els canvis.
+ 3. Per a sortir teclegeu: <ESC> :q! <ENTRAR> per a descartar els canvis.
+ O BÉ teclegeu: <ESC> :wq <ENTRAR> per a desar els canvis.
- 4. Per esborrar el caràcter de sota el cursor en el mode Normal premeu: x
+ 4. Per a esborrar el caràcter de sota el cursor en el mode Normal premeu: x
- 5. Per inserir text on hi ha el cursor, en mode Normal, premeu:
- i escriviu el text <ESC>
+ 5. Per a inserir text on hi ha el cursor, en mode Normal, premeu:
+ i escriviu el text <ESC>
-NOTA: La tecla <ESC> us portarà al mode Normal o cancel·larà una ordre
- que estigui a mitges.
+NOTA: La tecla <ESC> us porta al mode Normal o cancel·la una ordre que
+ estigui a mitges.
-Ara continueu amb la lliçó 2.
+Ara continueu a la lliçó 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 2.1: ORDRES PER ESBORRAR
+ Lliçó 2.1: ORDRES PER ESBORRAR
- ** Teclegeu dw per esborrar fins al final d'una paraula. **
+ ** Teclegeu dw per a esborrar fins al final d'una paraula. **
1. Premeu <ESC> per estar segurs que esteu en mode normal.
- 2. Moveu el cursor avall fins la línia marcada amb --->.
+ 2. Moveu el cursor avall fins a la línia senyalada amb --->.
- 3. Moveu el cursor fins el principi de la paraula que s'ha d'esborrar.
+ 3. Moveu el cursor fins al principi de la paraula que s'ha d'esborrar.
- 4. Teclegeu dw per fer desaparèixer la paraula.
+ 4. Teclegeu dw per a fer desaparèixer la paraula.
NOTA: Les lletres dw apareixeran a la línia de baix de la pantalla mentre
les aneu escrivint. Si us equivoqueu premeu <ESC> i torneu a començar.
----> Hi han algunes paraules divertit que no pertanyen paper a aquesta frase.
+---> Hi ha algunes paraules divertit que no pertanyen paper a aquesta frase.
- 5. Repetiu el passos 3 i 4 fins que la frase sigui correcta i continueu a
- la lliçó 2.2.
+ 5. Repetiu el passos 3 i 4 fins que la frase sigui correcta i continueu
+ a la lliçó 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 2.2: MÉS ORDRES PER ESBORRAR
+ Lliçó 2.2: MÉS ORDRES PER ESBORRAR
- ** Escriviu d$ per esborrar fins al final de la línia. **
+ ** Escriviu d$ per a esborrar fins al final de la línia. **
- 1. Premeu <ESC> per estar segurs que esteu en el mode Normal.
+ 1. Premeu <ESC> per a estar segurs que esteu en el mode Normal.
- 2. Moveu el cursor avall fins a la línia marcada amb --->.
+ 2. Moveu el cursor avall fins a la línia senyalada amb --->.
- 3. Moveu el cursor fins el final de la línia correcta
+ 3. Moveu el cursor fins al final de la línia correcta
(DESPRÉS del primer . ).
- 4. Teclegeu d$ per esborrar fins al final de la línia.
+ 4. Teclegeu d$ per a esborrar fins al final de la línia.
---> Algú ha escrit el final d'aquesta línia dos cops. línia dos cops.
- 5. Aneu a la lliçó 2.3 per entendre què està passant.
+ 5. Aneu a la lliçó 2.3 per a entendre què està passant.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 2.3: SOBRE ORDRES I OBJECTES
+ Lliçó 2.3: SOBRE ORDRES I OBJECTES
El format de l'ordre d'esborrar d és el següent:
- [nombre] d objecte O BÉ d [nombre] objecte
+ [nombre] d objecte O BÉ d [nombre] objecte
On:
nombre - és el nombre de cops que s'ha d'executar (opcional, omissió=1).
- d - és l'ordre per esborrar.
+ d - és l'ordre d'esborrar.
objecte - és la cosa amb la qual operar (llista a baix).
Una petita llista d'objectes:
- w - des del cursor fins al final de la paraula, incloent-hi l'espai.
+ w - des del cursor fins al final de la paraula, incloent l'espai.
e - des del cursor fins al final de la paraula, SENSE incloure l'espai.
$ - des del cursor fins al final de la línia.
-NOTA: Per als aventurers: si teclegeu només l'objecte, en el mode Normal,
- sense cap ordre, el cursor es mourà tal com està especificat a la
- llista d'objectes.
+NOTA: Per als aventurers: si teclegeu només l'objecte, en el mode Normal,
+ sense cap ordre, el cursor es mourà tal com està descrit a la llista
+ d'objectes.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 2.4: UNA EXCEPCIÓ A 'ORDRE-OBJECTE'
+ Lliçó 2.4: UNA EXCEPCIÓ A 'ORDRE-OBJECTE'
- ** Teclegeu dd esborrar tota la línia. **
+ ** Teclegeu dd per a esborrar tota la línia. **
- Com que molt sovint s'han d'eliminar línies senceres els dissenyadors del
- Vi van creure que seria més fàcil teclejar dd per esborrar tota la línia.
+ Com que molt sovint s'han d'eliminar línies senceres, els programadors
+ del Vi van creure que seria més convenient teclejar dd per a esborrar
+ tota la línia.
1. Moveu el cursor a la segona línia de la frase de baix.
- 2. Teclegeu dd per esborrar la línia.
+ 2. Teclegeu dd per a esborrar la línia.
3. Ara aneu a la quarta línia.
- 4. Teclegeu 2dd per esborrar dues línies (recordeu nombre-ordre-objecte).
+ 4. Teclegeu 2dd per a esborrar dues línies (recordeu nombre-ordre-objecte).
1) Les roses són vermelles,
2) El fang és divertit,
@@ -226,21 +228,20 @@ NOTA: Per als aventurers: si teclegeu només l'objecte, en el mode Normal,
6) El sucre és dolç,
7) Igual que tu.
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 2.5: L'ORDRE DESFER
+ Lliçó 2.5: L'ORDRE DESFER
- ** Premeu u per desfer els últims canvis, U per arreglar tota la línia. **
+ ** Premeu u per a desfer els canvis, U per a restaurar tota la línia. **
- 1. Moveu el cursor sobre el primer error de línia de baix marcada amb --->
- 2. Premeu x per esborrar el caràcter no desitjat.
- 3. Ara premeu u per desfer l'última ordre executada.
+ 1. Moveu el cursor sobre el primer error de línia de baix senyalada amb --->
+ 2. Premeu x per a esborrar el caràcter no desitjat.
+ 3. Ara premeu u per a desfer l'última ordre executada.
4. Aquest cop corregiu tots els errors de la línia amb l'ordre x.
- 5. Ara premeu U per restablir la línia al seu estat original.
- 6. Ara premeu u uns quants cops per desfer U i les ordres anteriors.
+ 5. Ara premeu U per a restablir la línia al seu estat original.
+ 6. Ara premeu u uns quants cops per a desfer U i les ordres anteriors.
7. Ara premeu CONTROL-R (les dues tecles al mateix temps) uns quants cops
- per refer les ordres.
+ per a refer les ordres.
---> Correegiu els errors d'aqquesta línia i dessfeu-los aamb desfer.
@@ -249,86 +250,87 @@ NOTA: Per als aventurers: si teclegeu només l'objecte, en el mode Normal,
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- LLIÇÓ 2 SUMARI
+ LLIÇÓ 2 SUMARI
- 1. Per esborrar del cursor al final de la paraula teclegeu: dw
+ 1. Per a esborrar del cursor al final de la paraula teclegeu: dw
- 2. Per esborrar del cursor al final de la línia teclegeu: d$
+ 2. Per a esborrar del cursor al final de la línia teclegeu: d$
- 3. Per esborrar una línia sencera teclegeu: dd
+ 3. Per a esborrar una línia sencera teclegeu: dd
4. El format de qualsevol ordre del mode Normal és:
- [nombre] ordre objecte O BÉ ordre [nombre] objecte
+ [nombre] ordre objecte O BÉ ordre [nombre] objecte
on:
nombre - és quants cops repetir l'ordre
ordre - és què fer, com ara d per esborrar
objecte - és amb què s'ha d'actuar, com ara w (paraula),
- $ (fins a final de línia), etc.
+ $ (fins a final de línia), etc.
- 5. Per desfer les accions anteriors premeu: u
- Per desfer tots el canvis en una línia premeu: U
- Per desfer l'ordre desfer premeu: CTRL-R
+ 5. Per a desfer les accions anteriors premeu: u
+ Per a desfer tots el canvis en una línia premeu: U
+ Per a desfer l'ordre desfer premeu: CTRL-R
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 3.1: L'ORDRE 'POSAR'
+ Lliçó 3.1: L'ORDRE 'POSAR'
- ** Premeu p per posar l'última cosa que heu esborrat després del cursor. **
+ ** Premeu p per a inserir l'última cosa que heu esborrat
+ després del cursor. **
1. Moveu el cursor a la primera línia de llista de baix.
- 2. Teclegeu dd per esborrar la línia i desar-la a la memòria.
+ 2. Teclegeu dd per a esborrar la línia i desar-la a la memòria.
- 3. Moveu el cursor a la línia ANTERIOR on hauria d'anar.
+ 3. Moveu el cursor a la línia ANTERIOR d'on hauria d'anar.
- 4. En mode Normal, premeu p per inserir la línia.
+ 4. En mode Normal, premeu p per a inserir la línia.
- 5. Repetiu els passos 2, 3 i 4 per ordenar les línies correctament.
+ 5. Repetiu els passos 2, 3 i 4 per a ordenar les línies correctament.
d) Pots aprendre tu?
b) Les violetes són blaves,
- c) L'intel·ligència s'aprèn,
+ c) La intel·ligència s'aprèn,
a) Les roses són vermelles,
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 3.2: L'ORDRE SUBSTITUIR
+ Lliçó 3.2: L'ORDRE SUBSTITUIR
- ** Premeu r i un caràcter per substituir el caràcter de sota el cursor. **
+ ** Premeu r i un caràcter per a substituir el caràcter
+ de sota el cursor. **
- 1. Moveu el cursor a la primera línia de sota marcada amb --->.
+ 1. Moveu el cursor a la primera línia de sota senyalada amb --->.
2. Moveu el cursor a sobre del primer caràcter equivocat.
- 3. Premeu r i tot seguit el caràcter correcte per corregir l'error.
+ 3. Premeu r i tot seguit el caràcter correcte per a corregir l'error.
4. Repetiu els passos 2 i 3 fins que la línia sigui correcta.
----> Quen van escroure aquerta línia, algh va apretar tikles equivocades!
----> Quan van escriure aquesta línia, algú va apretar tecles equivocades!
+---> Quen van escroure aquerta línia, algh va prémer tikles equivocades!
+---> Quan van escriure aquesta línia, algú va prémer tecles equivocades!
5. Ara continueu a la lliçó 3.2.
NOTA: Recordeu que heu de practicar, no memoritzar.
-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 3.3: L'ORDRE CANVIAR
+ Lliçó 3.3: L'ORDRE CANVIAR
- ** Per canviar una part o tota la paraula, escriviu cw . **
+ ** Per a canviar una part o tota la paraula, escriviu cw . **
- 1. Moveu el cursor a la primera línia de sota marcada amb --->.
+ 1. Moveu el cursor a la primera línia de sota senyalada amb --->.
2. Poseu el cursor sobre la u de 'lughc'.
- 3. Teclegeu cw i corregiu la paraula (en aquest cas escriviu 'ínia'.)
+ 3. Teclegeu cw i corregiu la paraula (en aquest cas, escrivint 'ínia'.)
4. Premeu <ESC> i aneu al següent error.
@@ -342,18 +344,18 @@ Noteu que cw no només canvia la paraula, també us posa en mode d'inserció.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 3.4: MÉS CANVIS AMB c
+ Lliçó 3.4: MÉS CANVIS AMB c
** L'ordre canviar s'usa amb els mateixos objectes que l'ordre esborrar. **
1. L'ordre canviar funciona igual que la d'esborrar. El format és:
- [nombre] c objecte O BÉ c [nombre] objecte
+ [nombre] c objecte O BÉ c [nombre] objecte
- 2. Els objectes són els mateixos, com w (paraula), $ (final de línia), etc.
+ 2. Els objectes són els mateixos, w (paraula), $ (final de línia), etc.
- 3. Moveu el cursor fins la primera línia marcada amb --->.
+ 3. Moveu el cursor fins la primera línia senyalada amb --->.
4. Avanceu fins al primer error.
@@ -365,44 +367,44 @@ Noteu que cw no només canvia la paraula, també us posa en mode d'inserció.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- LLIÇÓ 3 SUMARI
+ LLIÇÓ 3 SUMARI
- 1. Per tornar a posar el text que s'ha esborrat, premeu p . Això posa el
- text esborrat DESPRÉS del cursor (si heu esborrat una línia anirà a
- parar a la línia SEGÜENT d'on hi ha el cursor).
+ 1. Per a tornar a posar el text que heu esborrat, premeu p . Això posa
+ el text esborrat DESPRÉS del cursor (si heu esborrat una línia anirà
+ a parar a la línia SEGÜENT d'on hi ha el cursor).
- 2. Per substituir el caràcter de sota el cursor, premeu r i tot seguit
- el caràcter que ha de reemplaçar l'original.
+ 2. Per a substituir el caràcter de sota el cursor, premeu r i tot
+ seguit el caràcter que ha de reemplaçar l'original.
- 3. L'ordre canviar permet canviar l'objecte especificat des del cursor
+ 3. L'ordre canviar permet canviar l'objecte especificat, des del cursor
fins el final de l'objecte. Per exemple, cw canvia el que hi ha des
- del cursor fins al final de la paraula, i c$ fins al final de línia.
+ del cursor fins al final de la paraula, i c$ fins al final de
+ línia.
4. El format de l'ordre canviar és:
- [nombre] c objecte O BÉ c [nombre] objecte
-
-Ara aneu a la pròxima lliçó.
+ [nombre] c objecte O BÉ c [nombre] objecte
+Ara aneu a la següent lliçó.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 4.1: SITUACIÓ I ESTAT DEL FITXER
+ Lliçó 4.1: SITUACIÓ I ESTAT DEL FITXER
- ** Premeu CTRL-g per veure la situació dins del fitxer i el seu estat.
- Premeu SHIFT-G per anar a una línia determinada. **
+ ** Premeu CTRL-g per a veure la situació dins del fitxer i el seu estat.
+ Premeu SHIFT-g per a anar a una línia determinada. **
- Nota: No proveu res fins que hàgiu llegit TOTA la lliçó!!
+ Nota: No proveu res fins que hagueu llegit TOTA la lliçó!!
- 1. Mantingueu premuda la tecla Control i premeu g . A la part de baix de
- la pàgina apareixerà un línia amb el nom del fitxer i la línia en la
- qual us trobeu. Recordeu el número de la línia pel Pas 3.
+ 1. Mantingueu premuda la tecla Control i premeu g . A la part de baix
+ de la pàgina apareixerà un línia amb el nom del fitxer i la línia en
+ la qual us trobeu. Recordeu el número de la línia pel Pas 3.
- 2. Premeu Shift-G per anar al final de tot del fitxer.
+ 2. Premeu Shift-g per a anar al final de tot del fitxer.
- 3. Teclegeu el número de la línia on éreu i després premeu Shift-G. Això
+ 3. Teclegeu el número de la línia on éreu i després premeu Shift-g. Això
us tornarà a la línia on éreu quan heu premut per primer cop Ctrl-g.
(Quan teclegeu el número NO es veurà a la pantalla.)
@@ -411,45 +413,45 @@ Ara aneu a la pròxima lliçó.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 4.2: L'ORDRE CERCAR
+ Lliçó 4.2: L'ORDRE CERCAR
- ** Premeu / seguit de la frase que vulgueu cercar. **
+ ** Premeu / seguit de la frase que vulgueu cercar. **
1. En el mode Normal premeu el caràcter / . Noteu que el cursor apareix
- a la part de baix de la pantalla igual que amb l'ordre : .
+ a la part de baix de la pantalla igual que amb l'ordre : .
2. Ara escriviu 'errroor' <ENTRAR>. Aquesta és la paraula que voleu
cercar.
- 3. Per tornar a cercar la mateixa frase, premeu n .
- Per cercar la mateixa frase en direcció contraria, premeu Shift-N .
+ 3. Per a tornar a cercar la mateixa frase, premeu n . Per a cercar la
+ mateixa frase en direcció contraria, premeu Shift-n .
4. Si voleu cercar una frase en direcció ascendent, useu l'ordre ? en
lloc de /.
---> "errroor" no és com s'escriu error; errroor és un error.
-Note: Quan la cerca arribi al final del fitxer continuarà a l'inici.
+Nota: Quan la cerca arribi al final del fitxer continuarà a l'inici.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 4.3: CERCA DE PARÈNTESIS
+ Lliçó 4.3: CERCA DE PARÈNTESIS
- ** Premeu % per cercar el ),], o } corresponent. **
+ ** Premeu % per cercar el ), ], o } corresponent. **
- 1. Poseu el cursor en qualsevol (, [, o { de la línia marcada amb --->.
+ 1. Poseu el cursor a qualsevol (, [, o { de la línia senyalada amb --->.
2. Ara premeu el caràcter % .
3. El cursor hauria d'anar a la clau o parèntesis corresponent.
- 4. Premeu % per tornar el cursor al primer parèntesi.
+ 4. Premeu % per a tornar el cursor al primer parèntesi.
---> Això ( és una línia amb caràcters (, [ ] i { } de prova. ))
-Nota: Això és molt útil per trobar errors en programes informàtics!
+Nota: Això és molt útil per a trobar errors en programes informàtics!
@@ -457,68 +459,68 @@ Nota: Això és molt útil per trobar errors en programes informàtics!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 4.4: UNA MANERA DE CANVIAR ERRORS
+ Lliçó 4.4: UNA MANERA DE CORREGIR ERRORS
- ** Escriviu :s/vell/nou/g per substituir 'vell' per 'nou'. **
+ ** Escriviu :s/vell/nou/g per a substituir 'vell' per 'nou'. **
- 1. Moveu el cursor a la línia de sota marcada amb --->.
+ 1. Moveu el cursor a la línia de sota senyalada amb --->.
- 2. Escriviu :s/laa/la <ENTRAR> . Aquesta ordre només canvia la primera
+ 2. Escriviu :s/laa/la <ENTRAR>. Aquesta ordre només canvia la primera
coincidència que es trobi a la línia.
- 3. Ara escriviu :s/laa/la/g per fer una substitució global. Això
+ 3. Ara escriviu :s/laa/la/g per a fer una substitució global. Això
canviarà totes les coincidències que es trobin a la línia.
----> laa millor època per veure laa flor és laa primavera.
+---> laa millor època per a veure laa flor és laa primavera.
- 4. Per canviar totes les coincidències d'una cadena entre dues línies,
+ 4. Per a canviar totes les coincidències d'una cadena entre dues línies,
escriviu :#,#s/vell/nou/g on #,# són els nombres de les línies.
- Escriviu :%s/vell/nou/g per substituir la cadena a tot el fitxer.
+ Escriviu :%s/vell/nou/g per a substituir la cadena a tot el fitxer.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- LLIÇÓ 4 SUMARI
+ LLIÇÓ 4 SUMARI
1. Ctrl-g mostra la posició dins del fitxer i l'estat del mateix.
- Shift-G us porta al final del fitxer. Un número seguit de Shift-G
- us porta a la línia corresponent.
+ Shift-g us porta al final del fitxer. Un número seguit de Shift-g us
+ porta a la línia corresponent.
- 2. L'ordre / seguida d'una frase cerca la frase ENDAVANT.
- L'ordre ? seguida d'una frase cerca la frase ENDARRERE.
- Després d'una cerca premeu n per trobar la pròxima coincidència en
- la mateixa direcció, o Shift-N per cercar en la direcció contrària.
+ 2. L'ordre / seguida d'una frase cerca la frase cap ENDAVANT.
+ L'ordre ? seguida d'una frase cerca la frase cap ENDARRERE.
+ Després d'una cerca premeu n per a trobar la pròxima coincidència en
+ la mateixa direcció, o Shift-n per a cercar en la direcció contrària.
- 3. L'ordre % quan el cursor és a sobre un (,),[,],{, o } troba la
+ 3. L'ordre % quan el cursor es troba en un (, ), [, ], {, o } troba la
parella corresponent.
- 4. Per substituir el primer 'vell' per 'nou' en una línia :s/vell/nou
- Per substituir tots els 'vell' per 'nou' en una línia :s/vell/nou/g
- Per substituir frases entre les línies # i # :#,#s/vell/nou/g
- Per substituir totes les coincidències en el fitxer :%s/vell/nou/g
- Per demanar confirmació cada cop afegiu 'c' :%s/vell/nou/gc
+ 4. Per a substituir el primer 'vell' per 'nou' en una línia :s/vell/nou
+ Per a substituir tots els 'vell' per 'nou' en una línia :s/vell/nou/g
+ Per a substituir frases entre les línies # i # :#,#s/vell/nou/g
+ Per a substituir totes les coincidències en el fitxer :%s/vell/nou/g
+ Per a demanar confirmació cada cop afegiu 'c' :%s/vell/nou/gc
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 5.1: COM EXECUTAR UNA ORDRE EXTERNA
+ Lliçó 5.1: COM EXECUTAR UNA ORDRE EXTERNA
- ** Teclegeu :! seguit d'una ordre externa per executar-la. **
+ ** Teclegeu :! seguit d'una ordre externa per a executar-la. **
- 1. Premeu el familiar : per col·locar el cursor a la part de baix de
+ 1. Premeu el familiar : per a col·locar el cursor a la part de baix de
la pantalla. Això us permet entrar una ordre.
2. Ara teclegeu el caràcter ! (signe d'exclamació). Això us permet
- executar qualsevol ordre de la shell.
+ executar qualsevol ordre de l'intèrpret del sistema.
- 3. Com a exemple escriviu ls i tot seguit premeu <ENTRAR>. Això us
+ 3. Per exemple, escriviu ls i tot seguit premeu <ENTRAR>. Això us
mostrarà el contingut del directori, tal com si estiguéssiu a la
- línia d'ordres. Feu servir :!dir si ls no funciona.
+ línia d'ordres. Proveu :!dir si ls no funciona.
-Nota: D'aquesta manera es pot executar qualsevol ordre externa.
+Nota: D'aquesta manera és possible executar qualsevol ordre externa.
Nota: Totes les ordres : s'han d'acabar amb la tecla <ENTRAR>
@@ -526,36 +528,36 @@ Nota: Totes les ordres : s'han d'acabar amb la tecla <ENTRAR>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 5.2: MÉS SOBRE L'ESCRIPTURA DE FITXERS
+ Lliçó 5.2: MÉS SOBRE L'ESCRIPTURA DE FITXERS
- ** Per desar els canvis fets, escriviu :w FITXER. ***
+ ** Per a desar els canvis fets, escriviu :w FITXER. **
- 1. Escriviu :!dir o bé :!ls per obtenir un llistat del directori.
+ 1. Escriviu :!dir o bé :!ls per a obtenir un llistat del directori.
Ja sabeu que heu de prémer <ENTRAR> després d'això.
2. Trieu un nom de fitxer que no existeixi, com ara PROVA.
3. Ara feu: :w PROVA (on PROVA és el nom que heu triat.)
- 4. Això desa tot el fitxer amb el nom de PROVA. Per comprovar-ho
- escriviu :!dir per veure el contingut del directori.
+ 4. Això desa el text en un fitxer amb el nom de PROVA. Per a comprovar-ho
+ escriviu :!dir i mireu el contingut del directori.
Note: Si sortiu del Vim i entreu una altra vegada amb el fitxer PROVA, el
fitxer serà una còpia exacta del tutor que heu desat.
5. Ara esborreu el fitxer teclejant (MS-DOS): :!del PROVA
- o bé (Unix): :!rm PROVA
+ o bé (Unix): :!rm PROVA
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 5.3: UNA ORDRE SELECTIVA PER DESAR
+ Lliçó 5.3: UNA ORDRE SELECTIVA PER A DESAR
- ** Per desar una part del fitxer, escriviu :#,# w FITXER **
+ ** Per a desar una part del fitxer, escriviu :#,# w FITXER **
- 1. Un altre cop, feu :!dir o :!ls per obtenir un llistat del directori
- i trieu un nom de fitxer adequat com ara PROVA.
+ 1. Un altre cop, feu :!dir o :!ls per a obtenir un llistat del
+ directori i trieu un nom de fitxer adequat com ara PROVA.
2. Moveu el cursor a dalt de tot de la pàgina i premeu Ctrl-g per
saber el número de la línia. RECORDEU AQUEST NÚMERO!
@@ -563,47 +565,47 @@ Note: Si sortiu del Vim i entreu una altra vegada amb el fitxer PROVA, el
3. Ara aneu a baix de tot de la pàgina i torneu a prémer Ctrl-g.
RECORDEU AQUEST NÚMERO TAMBÉ!
- 4. Per desar NOMÉS una secció en un fitxer, escriviu :#,# w PROVA on
- #,# són els dos números que heu recordat (dalt,baix) i PROVA el nom
+ 4. Per a desar NOMÉS una secció en un fitxer, escriviu :#,# w PROVA on
+ #,# són els dos números que heu recordat (dalt, baix) i PROVA el nom
del fitxer.
- 5. Mireu que el fitxer nou hi sigui amb :!dir però no l'esborreu.
+ 5. Comproveu que el fitxer nou hi sigui amb :!dir però no l'esborreu.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 5.4: OBTENIR I AJUNTAR FITXERS
+ Lliçó 5.4: OBTENIR I AJUNTAR FITXERS
- ** Per inserir el contingut d'un fitxer, feu :r FITXER **
+ ** Per a inserir el contingut d'un fitxer, feu :r FITXER **
1. Assegureu-vos, amb l'ordre :!dir , que el fitxer PROVA encara hi és.
- 2. Poseu el cursor a dalt de tot d'aquesta pàgina.
+ 2. Situeu el cursor a dalt de tot d'aquesta pàgina.
-NOTA: Després d'executar el Pas 3 veureu la lliçó 5.3. Aleshores moveu-vos
- cap avall fins a aquesta lliçó un altre cop.
+NOTA: Després d'executar el Pas 3 veureu la lliçó 5.3. Tireu cap avall
+ fins a aquesta lliçó un altre cop.
3. Ara obtingueu el fitxer PROVA amb l'ordre :r PROVA on PROVA és el
nom del fitxer.
-NOTA: El fitxer que obtingueu es posa en el lloc on hi hagi el cursor.
+NOTA: El fitxer que obtingueu s'insereix en el lloc on hi hagi el cursor.
- 4. Per comprovar que s'ha obtingut el fitxer tireu enrere i mireu com
- ara hi han dues còpies de la lliçó 5.3: l'original i la del fitxer.
+ 4. Per a comprovar que s'ha obtingut el fitxer tireu enrere i mireu com
+ ara hi ha dues còpies de la lliçó 5.3, l'original i la del fitxer.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- LLIÇÓ 5 SUMARI
+ LLIÇÓ 5 SUMARI
1. :!ordre executa una ordre externa.
- Alguns exemples útils són:
- (MS-DOS) (Unix)
- :!dir :!ls - mostra un llistat del directori
- :!del FITXER :!rm FITXER - esborra el fitxer FITXER
+ Alguns exemples útils:
+ (MS-DOS) (Unix)
+ :!dir :!ls - mostra un llistat del directori
+ :!del FITXER :!rm FITXER - esborra el fitxer FITXER
2. :w FITXER escriu el fitxer editat al disc dur, amb el nom FITXER.
@@ -618,39 +620,39 @@ NOTA: El fitxer que obtingueu es posa en el lloc on hi hagi el cursor.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 6.1: L'ORDRE OBRIR
+ Lliçó 6.1: L'ORDRE OBRIR
-** Premeu o per obrir una línia sota el cursor i entrar en mode inserció. **
+ ** Premeu o per a obrir una línia i entrar en mode inserció. **
- 1. Moveu el cursor a la línia de sota marcada amb --->.
+ 1. Moveu el cursor a la línia de sota senyalada amb --->.
- 2. Premeu o (minúscula) per obrir una línia SOTA el cursor i situar-vos
- en mode d'inserció.
+ 2. Premeu o (minúscula) per a obrir una línia a BAIX del cursor i
+ situar-vos en mode d'inserció.
- 3. Ara copieu la línia marcada amb ---> i premeu <ESC> per tornar al mode
+ 3. Copieu la línia senyalada amb ---> i premeu <ESC> per a tornar al mode
normal.
----> Després de prémer o el cursor es situa a la línia nova en mode inserció.
+---> Després de prémer o el cursor se situa a la línia nova en mode inserció.
- 4. Per obrir una línia SOBRE el cursor, premeu la O majúscula, en lloc
+ 4. Per a obrir una línia a SOBRE del cursor, premeu la O majúscula, en lloc
de la minúscula. Proveu-ho amb la línia de sota.
-Obriu una línia sobre aquesta amb Shift-O amb el cursor en aquesta línia.
+Obriu una línia sobre aquesta prement Shift-o amb el cursor en aquesta línia.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 6.2: L'ORDRE AFEGIR
+ Lliçó 6.2: L'ORDRE AFEGIR
- ** Premeu a per afegir text DESPRÉS del cursor. **
+ ** Premeu a per a afegir text DESPRÉS del cursor. **
- 1. Moveu el cursor al final de la primera línia de sota marcada
+ 1. Moveu el cursor al final de la primera línia de sota senyalada
amb ---> prement $ en el mode Normal.
- 2. Premeu la lletra a (minúscula) per afegir text DESPRÉS del caràcter
- sota el cursor. (La A majúscula afegeix text al final de línia.)
+ 2. Premeu la lletra a (minúscula) per a afegir text DESPRÉS del caràcter
+ sota el cursor. (La A majúscula afegeix text al final de la línia.)
Nota: Així s'evita haver de prémer i , l'últim caràcter, el text a inserir,
la tecla <ESC>, cursor a la dreta, i finalment x , només per afegir
@@ -664,38 +666,38 @@ Nota: Així s'evita haver de prémer i , l'últim caràcter, el text a inserir,
---> Aquesta línia us permetrà practicar afegir text a final de línia.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 6.3: UNA ALTRA MANERA DE SUBSTITUIR
+ Lliçó 6.3: UNA ALTRA MANERA DE SUBSTITUIR
- ** Teclegeu una R majúscula per substituir més d'un caràcter. **
+ ** Teclegeu una R majúscula per a substituir més d'un caràcter. **
- 1. Moveu el cursor a la línia de sota marcada amb --->.
+ 1. Moveu el cursor a la línia de sota senyalada amb --->.
- 2. Poseu el cursor al principi de la primera paraula que es diferent
- respecte a la segona línia marcada amb ---> (la paraula "l'última").
+ 2. Poseu el cursor al principi de la primera paraula que és diferent
+ respecte a la segona línia senyalada amb ---> (la paraula "l'última").
3. Ara premeu R i substituïu el que queda de text a la primera línia
- escrivint sobre el text vell, per fer-la igual que la segona.
+ escrivint sobre el text vell, per a fer-la igual que la segona.
----> Per fer aquesta línia igual que l'última useu les tecles.
----> Per fer aquesta línia igual que la segona, premeu R i el text nou.
+---> Per a fer aquesta línia igual que l'última useu les tecles.
+---> Per a fer aquesta línia igual que la segona, premeu R i el text nou.
- 4. Tingueu en compte que en prémer <ESC> per sortir, el text que no
+ 4. Tingueu en compte que en prémer <ESC> per a sortir, el text que no
s'hagi alterat es manté.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Lliçó 6.4: ESTABLIR OPCIONS
+ Lliçó 6.4: ESTABLIR OPCIONS
** Feu que les ordres cercar o substituir ignorin les diferències
- entre majúscules i minúscules **
+ entre majúscules i minúscules **
1. Cerqueu la paraula 'ignorar' amb: /ignorar
Repetiu-ho uns quants cops amb la tecla n.
- 2. Establiu l'opció 'ic' (Ignorar Capitals) escrivint:
+ 2. Establiu l'opció 'ic' (ignore case) escrivint:
:set ic
3. Ara cerqueu 'ignorar' un altre cop amb la tecla n.
@@ -707,22 +709,22 @@ Nota: Així s'evita haver de prémer i , l'últim caràcter, el text a inserir,
5. Ara torneu a executar una ordre de cerca, i mireu què passa:
/ignorar
- 6. Per treure el ressalt dels resultats, feu:
+ 6. Per a treure el ressaltat dels resultats, feu:
:nohlsearch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- LLIÇÓ 6 SUMARI
+ LLIÇÓ 6 SUMARI
- 1. L'ordre o obre una línia SOTA la del cursor i mou el cursor a la nova
+ 1. L'ordre o obre una línia a SOTA la del cursor i mou el cursor a la nova
línia, en mode Inserció.
La O majúscula obre la línia a SOBRE la que hi ha el cursor.
- 2. Premeu una a per afegir text DESPRÉS del caràcter sota el cursor.
+ 2. Premeu una a per a afegir text DESPRÉS del caràcter a sota del cursor.
La A majúscula afegeix automàticament el text a final de línia.
3. L'ordre R majúscula us posa en mode substitució fins que premeu <ESC>.
- 4. Escriviu ":set xxx" per establir l'opció "xxx"
+ 4. Escriviu ":set xxx" per a establir l'opció "xxx"
@@ -733,74 +735,74 @@ Nota: Així s'evita haver de prémer i , l'últim caràcter, el text a inserir,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- LLIÇÓ 7: ORDRES D'AJUDA
+ LLIÇÓ 7: ORDRES D'AJUDA
- ** Utilitzeu el sistema intern d'ajuda **
+ ** Utilitzeu el sistema intern d'ajuda **
- El Vim té un extens sistema d'ajuda. Per llegir una introducció proveu una
+ El Vim té un extens sistema d'ajuda. Per a llegir una introducció proveu una
d'aquestes tres coses:
- - premeu la tecla <AJUDA> (si en teniu alguna)
- - premeu la tecla <F1> (si en teniu alguna)
- - escriviu :help <ENTRAR>
+ - premeu la tecla <AJUDA> (si la teniu)
+ - premeu la tecla <F1> (si la teniu)
+ - escriviu :help <ENTRAR>
- Teclegeu :q <ENTRAR> per tancar la finestra d'ajuda.
+ Teclegeu :q <ENTRAR> per a tancar la finestra d'ajuda.
- Podeu trobar ajuda sobre pràcticament qualsevol tema donant un argument
- a l'ordre ":help". Proveu això (no oblideu prémer <ENTRAR>):
+ Podeu trobar ajuda sobre pràcticament qualsevol tema passant un argument
+ a l'ordre ":help". Proveu el següent (no oblideu prémer <ENTRAR>):
- :help w
- :help c_<T
- :help insert-index
- :help user-manual
+ :help w
+ :help c_<T
+ :help insert-index
+ :help user-manual
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- LLIÇÓ 8: CREAR UN SCRIPT D'INICI
+ LLIÇÓ 8: CREAR UN SCRIPT D'INICI
- ** Activar funcions automàticament **
+ ** Activeu funcions automàticament **
- El Vim té moltes més funcions que el Vi, però moltes estan desactivades per
- omissió. Per començar a utilitzar més funcions heu de crear un fitxer "vimrc".
+ El Vim té moltes més funcions que el Vi, però moltes estan desactivades
+ per defecte. Per a començar a utilitzar més funcions heu de crear un
+ fitxer "vimrc".
1. Comenceu a editar el fitxer "vimrc", depenent del sistema
- :edit ~/.vimrc per Unix
- :edit $VIM/_vimrc per MS-Windows
+ :edit ~/.vimrc per Unix
+ :edit $VIM/_vimrc per MS-Windows
- 2. Ara llegiu el fitxer "vimrc" d'exemple:
+ 2. Llegiu el fitxer "vimrc" d'exemple:
- :read $VIMRUNTIME/vimrc_example.vim
+ :read $VIMRUNTIME/vimrc_example.vim
3. Deseu el fitxer amb:
- :write
-
- El pròxim cop que executeu el Vim usarà ressalt de sintaxi.
- Podeu afegir els ajustos que vulgueu en aquest fitxer "vimrc".
+ :write
+ El pròxim cop que executeu el Vim usarà ressaltat de sintaxi. Podeu
+ afegir els ajustos que vulgueu en aquest fitxer "vimrc".
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Aquí conclou el Tutor del Vim. Ha sigut un intent de fer-vos una breu
- introducció a l'editor Vim, suficient com per què el pugueu començar a fer
- servir. Està lluny de ser complet perquè el Vim té moltes més ordres.
- Llegiu el manual de l'usuari: ":help user-manual".
+ Aquí conclou el Tutor del Vim. És una breu introducció a l'editor Vim,
+ suficient perquè el pugueu començar a fer servir. No és complet perquè
+ el Vim té moltes ordres. Per a llegir el manual de l'usuari, feu:
+ ":help user-manual".
- Per un estudi més profund us recomanem el següent llibre:
- Vim - Vi Improved - de Steve Oualline
- Editorial: New Riders
+ Per a un estudi més a fons us recomanem el següent llibre:
+ Vim - Vi Improved - de Steve Oualline
+ Editorial: New Riders
És el primer llibre dedicat completament al Vim, especialment útil per a
- usuaris novells. Té molts exemples i dibuixos.
+ usuaris novells. Conté molts exemples i diagrames.
Vegeu http://iccf-holland.org/click5.html
Aquest altre és més vell i tracta més sobre el Vi que sobre el Vim:
- Learning the Vi Editor - de Linda Lamb
- Editorial: O'Reilly & Associates Inc.
- És un bon llibre per saber qualsevol cosa que desitgeu sobre el Vi.
+ Learning the Vi Editor - de Linda Lamb
+ Editorial: O'Reilly & Associates Inc.
+ És un bon llibre per a aprendre qualsevol cosa que desitgeu sobre el Vi.
La sisena edició també inclou informació sobre el Vim.
Aquest tutorial ha estat escrit per Michael C. Pierce i Robert K. Ware,
- Colorado School of Mines amb la col·laboració de Charles Smith,
- Colorado State University. E-mail: bware@mines.colorado.edu.
+ Colorado School of Mines amb la col·laboració de Charles Smith, Colorado
+ State University. E-mail: bware@mines.colorado.edu.
Modificat pel Vim per Bram Moolenaar.
diff --git a/runtime/tutor/tutor.da b/runtime/tutor/tutor.da
new file mode 100644
index 0000000..8a874d3
--- /dev/null
+++ b/runtime/tutor/tutor.da
@@ -0,0 +1,972 @@
+===============================================================================
+= V e l k o m m e n t i l V I M - v e j l e d n i n g e n - Version 1.7 =
+===============================================================================
+
+ Vim er en meget kraftfuld editor med mange kommandoer, for mange til
+ at forklare i en vejledning som denne. Vejledningen er designet til at
+ beskrive nok af kommandoerne til at du vil vre i stand til let at bruge
+ Vim som en alsidig editor.
+
+ Det tager cirka 25-30 minutter at fuldfre vejledningen,
+ afhngig af hvor meget tid der bruges p at eksperimentere.
+
+ VR OPMRKSOM P AT:
+ Kommandoerne i lektionerne ndre teksten. Opret en kopi af filen
+ til at ve p (hvis du startede "vimtutor", s er det allerede en kopi).
+
+ Det er vigtigt at huske p at vejledningen er sat op til at lre ved at
+ bruge. Det betyder at du skal udfre kommandoerne for at lre at bruge
+ dem ordentligt. Lser du kun teksten, s glemmer du kommandoerne!
+
+ Srg for at din Caps-Lock-tast IKKE er aktiveret og tryk
+ p j-tasten nok gange til at flytte markren s lektion 1.1
+ fylder hele skrmen.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1.1: FLYT MARKREN
+
+
+ ** Tryk p h-,j-,k-,l-tasterne som vist, for at flytte markren. **
+ ^
+ k Fif: H-tasten er til venstre og flytter til venstre.
+ < h l > L-tasten er til hjre og flytter til hjre.
+ j J-tasten ligner en ned-pil.
+ v
+ 1. Flyt markren rundt p skrmen indtil du er fortrolig med det.
+
+ 2. Hold ned-tasten (j) nede, indtil den gentager.
+ Nu ved du hvordan du flytter til den nste lektion.
+
+ 3. Brug ned-tasten til at flytte til lektion 1.2.
+
+BEMRK: Hvis du nogensinde bliver i tvivl om noget du skrev, s tryk p <ESC>
+ for at stille dig i normal tilstand. Skriv s kommandoen igen.
+
+BEMRK: Piletasterne br ogs virke. Men med hjkl kan du flytte rundt
+ meget hurtigere, nr du har vnnet dig til det. Serist!
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1.2: AFSLUT VIM
+
+
+ !! BEMRK: Ls hele lektionen, inden trinnene nedenfor udfres!!
+
+ 1. Tryk p <ESC>-tasten (for at vre sikker p, at du er i normal tilstand).
+
+ 2. Skriv: :q! <ENTER>.
+ Det afslutter editoren, hvorved ndringer som du har foretaget forkastes.
+
+ 3. Vend tilbage hertil ved at udfre kommandoen som fik dig ind i
+ vejledningen. Det var muligvis: vimtutor <ENTER>
+
+ 4. Hvis du har lrt trinnene udenad og er klar, s udfr trin
+ 1 til 3 for at afslutte og komme ind i editoren igen.
+
+BEMRK: :q! <ENTER> forkaster ndringer som du har foretaget. Om f lektioner
+ vil du lre at gemme ndringerne til en fil.
+
+ 5. Flyt markren ned til lektion 1.3.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1.3: TEKSTREDIGERING - SLET
+
+
+ ** Tryk p x for at slette tegnet som markren er ovenp. **
+
+ 1. Flyt markren ned til linjen med --->.
+
+ 2. Ret fejlene ved at flytte markren indtil den er ovenp
+ tegnet som skal slettes.
+
+ 3. Tryk p x-tasten for at slette det unskede tegn.
+
+ 4. Gentag trin 2 til 4 indtil stningen er korrekt.
+
+---> Kkoen sprangg ovverr mnen.
+
+ 5. G videre til lektion 1.4, nu hvor linjen er korrekt.
+
+BEMRK: Efterhnden som du gennemgr vejledningen, s lr det ikke udenad,
+ lr det ved at gre det.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1.4: TEKSTREDIGERING - INDST
+
+
+ ** Tryk p i for at indstte tekst. **
+
+ 1. Flyt markren ned til den frste linje med --->.
+
+ 2. For at gre den frste linje magen til den anden, skal markren flyttes
+ ovenp det frst tegn EFTER der hvor teksten skal indsttes.
+
+ 3. Tryk p i og skriv de ndvendige tilfjelser.
+
+ 4. Efterhnden som hver fejl rettes, s tryk p <ESC> for at vende tilbage
+ til normal tilstand. Gentag trin 2 til 4 for at rette stningen.
+
+---> Der mangler tekst dene .
+---> Der mangler noget tekst p denne linje.
+
+ 5. Nr du fortrolig med at indstte tekst, s flyt til lektion 1.5.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1.5: TEKSTREDIGERING - VEDHFT
+
+
+ ** Tryk p A for at vedhfte tekst. **
+
+ 1. Flyt markren ned til den frste linje med --->.
+ Det er lige meget hvilket tegn markren er p, p linjen.
+
+ 2. Tryk p A og skriv de ndvendige tilfjelser.
+
+ 3. Tryk p <ESC> nr teksten er blevet vedhftet for at vende tilbage til normal tilstand.
+
+ 4. Flyt markren til den anden linje med ---> og gentag
+ trin 2 og 3 for at rette stningen.
+
+---> Der mangler noget tekst p den
+ Der mangler noget tekst p denne linje.
+---> Der mangler ogs noget tek
+ Der mangler ogs noget tekst her.
+
+ 5. Nr du er fortrolig med at vedhfte tekst, s flyt til lektion 1.6.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1.6: REDIGER EN FIL
+
+ ** Brug :wq til at gemme en fil og afslutte. **
+
+ !! BEMRK: Ls hele lektionen, inden trinnene nedenfor udfres!!
+
+ 1. Afslut vejledningen som du gjorde i lektion 1.2: :q!
+ Eller gr flgende i en anden terminal, hvis du har adgang til en.
+
+ 2. Skriv denne kommando i skalprompten: vim tutor <ENTER>
+ 'vim' er kommandoen til at starte Vim-editoren, 'tutor' er navnet p
+ filen som du vil redigere. Brug en fil som kan ndres.
+
+ 3. Indst og slet tekst, som du lrte vi de forrige lektioner.
+
+ 4. Gem filen med ndringer og afslut Vim med: :wq <ENTER>
+
+ 5. Hvis du afsluttede vimtutor i trin 1, s genstart vimtutor og flyt ned
+ til flgende opsummering.
+
+ 6. Udfr trinnene ovenfor, nr du har lst og forstet dem.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1 OPSUMMERING
+
+
+ 1. Markren flyttes enten med piletasterne eller hjkl-tasterne.
+ h (venstre) j (ned) k (op) l (hjre)
+
+ 2. Vim startes fra skalprompten, ved at skrive: vim FILNAVN <ENTER>
+
+ 3. Vim afsluttes, ved at skrive: <ESC> :q! <ENTER> for at forkaste alle ndringer.
+ ELLER, ved at skrive: <ESC> :wq <ENTER> for at gemme ndringerne.
+
+ 4. Slet tegn ved markren, ved at skrive: x
+
+ 5. Indst eller vedhft tekst, ved at skrive:
+ i skriv indsat tekst <ESC> indst inden markren
+ A skriv vedhftet tekst <ESC> vedhft efter linjen
+
+BEMRK: Nr der trykkes p <ESC>, s stilles du i normal tilstand eller ogs
+ annulleres en unsket og delvist fuldfrt kommando.
+
+Fortst nu med lektion 2.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.1: SLETTEKOMMANDOER
+
+
+ ** Skriv dw for at slette et ord. **
+
+ 1. Tryk p <ESC> for at vre sikker p, at du er i normal tilstand.
+
+ 2. Flyt markren ned til linjen med --->.
+
+ 3. Flyt markren til begyndelsen af et ord som skal slettes.
+
+ 4. Skriv dw for at f ordet til at forsvinde.
+
+ BEMRK: Bogstavet d vises p den sidste linje p den skrm du skrev
+ det p. Vim venter p at du skriver w . Hvis du ser et andet tegn
+ end d , s skrev du forkert; tryk p <ESC> og start forfra.
+
+---> Der er regnorm nogle ord som sjovt ikke hrer til papir i stningen.
+
+ 5. Gentag trin 3 og 4 indtil stningen er korrekt og g til lektion 2.2.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.2: FLERE SLETTEKOMMANDOER
+
+
+ ** Skriv d$ for at slette til slutningen af linjen. **
+
+ 1. Tryk p <ESC> for at vre sikker p, at du er i normal tilstand.
+
+ 2. Flyt markren ned til linjen med --->.
+
+ 3. Flyt markren til slutningen af den rette linje (EFTER det frste . ).
+
+ 4. Skriv d$ for at slette til slutningen af linjen.
+
+---> Nogen skrev slutningen af linjen to gange. slutningen af linjen to gange.
+
+
+ 5. Flyt videre til lektion 2.3 for at forst hvad der sker.
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.3: OM OPERATORER OG BEVGELSER
+
+
+ Mange kommandoer som ndre tekst skabes fra en operator og en bevgelse.
+ Formatet til en slettekommando med sletteoperatoren d er som flger:
+
+ d bevgelse
+
+ Hvor:
+ d - er sletteoperatoren.
+ bevgelse - er hvad operatoren skal arbejde p (oplistet nedenfor).
+
+ En kort liste over bevgelser:
+ w - indtil begyndelsen af det nste ord, EKSKLUSIV dets frste tegn.
+ e - til slutningen af det nuvrende ord, INKLUSIV det sidste tegn.
+ $ - til slutningen af linjen, INKLUSIV det sidste tegn.
+
+ S nr der skrives de s slettes der fra markren til slutningen af ordet.
+
+BEMRK: Nr kun bevgelsen trykkes i normal tilstand, uden en operator,
+ s flyttes markren som angivet.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.4: BRUG TLLER TIL EN BEVGELSE
+
+
+ ** Nr der skrives et nummer inden en bevgelse, s gentages den det antal gange. **
+
+ 1. Flyt markren ned til begyndelsen af linjen med --->.
+
+ 2. Skriv 2w for at flytte markren fremad to ord.
+
+ 3. Skriv 3e for at flytte markren fremad til slutningen af det tredje ord.
+
+ 4. Skriv 0 (nul) for at flytte til begyndelsen af linjen.
+
+ 5. Gentag trin 2 og 3 med forskellige numre.
+
+---> Dette er blot en linje med ord som du kan flytte rundt i.
+
+ 6. Flyt videre til lektion 2.5.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.5: BRUG TLLER TIL AT SLETTE FLERE
+
+
+ ** Nr der skrives et nummer med en operator, s gentages den det antal gange. **
+
+ I kombinationen med sletteoperatoren og en bevgelse nvnt ovenfor kan du
+ indstte en tller inden bevgelsen for at slette flere:
+ d nummer bevgelse
+
+ 1. Flyt markren til det frste ord MED STORT p linjen med --->.
+
+ 2. Skriv d2w for at slette de to ord MED STORT
+
+ 3. Gentag trin 1 og 2 med en anden tller for at slette de efterflgende
+ ord MED STORT med n kommando
+
+---> denne ABC DE linje FGHI JK LMN OP med ord er Q RS TUV renset.
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.6: ARBEJD P LINJER
+
+
+ ** Skriv dd for at slette en hel linje. **
+
+ Pga. at sletning af linjer bruges s ofte, s besluttede designerne af Vi
+ at det ville vre lettere bare at skrive to d'er for at slette en linje.
+
+ 1. Flyt markren til den anden linje i frasen nedenfor.
+ 2. Skriv dd for at slette linjen.
+ 3. Flyt nu til den fjerde linje.
+ 4. Skriv 2dd for at slette to linjer.
+
+---> 1) Roser er rde,
+---> 2) Mudder er sjovt,
+---> 3) Violer er bl,
+---> 4) Jeg har en scooter,
+---> 5) Ure viser tiden,
+---> 6) Sukker er sdt
+---> 7) Og du er lige s.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.7: FORTRYD-KOMMANDOEN
+
+
+ ** Tryk p u for at fortryde de sidste kommandoer, U for at rette en hel linje. **
+
+ 1. Flyt markren ned til linjen med ---> og placer den p
+ den frste fejl.
+ 2. Skriv x for at slette det frste unskede tegn.
+ 3. Skriv nu u for at fortryde den sidste kommando der blev udfrt.
+ 4. Ret denne gang alle fejlene p linjen med x-kommadoen.
+ 5. Skriv nu et stort U for at f linjen tilbage til dens oprindelige tilstand.
+ 6. Skriv nu u nogle f gange for at fortryde U'et og forudgende kommandoer.
+ 7. Skriv nu CTRL-R (hold CTRL-tasten nede mens der trykkes p R) nogle f gange
+ for at omgre kommandoerne (fortryd fortrydelserne).
+
+---> Rett fejlene pp liinjen og errstat dem meed fortryd.
+
+ 8. Det er meget nyttige kommandoer. Flyt nu til lektion 2 opsummering.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2 OPSUMMERING
+
+
+ 1. Slet fra markren op til det nste ord, ved at skrive: dw
+ 2. Slet fra markren til slutningen af en linje, ved at skrive: d$
+ 3. Slet en hel linje, ved at skrive: dd
+
+ 4. Gentag en bevgelse ved at vedhfte et nummer i begyndelsen: 2w
+ 5. Formatet til en ndr-kommando er:
+ operator [nummer] bevgelse
+ hvor:
+ operator - er hvad der skal gres, ssom d for at slette
+ [nummer] - er en valgfri tller til at gentage bevgelsen
+ bevgelse - flytter over teksten som der skal arbejde p, ssom w (ord),
+ $ (til slutningen af linjen), osv.
+
+ 6. Flyt til begyndelsen af linjen med et nul: 0
+
+ 7. Fortryd tidligere handlinger, ved at skrive: u (lille u)
+ Fortryd alle ndringerne p en linje, ved at skrive: U (stort U)
+ Fortryd fortrydelserne, ved at skrive: CTRL-R
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 3.1: PUT-INDSTTE-KOMMANDOEN
+
+
+ ** Skriv p for at put-indstte tidligere slettede tekst efter markren. **
+
+ 1. Flyt markren ned til den frste linje med --->.
+
+ 2. Skriv dd for at slette linjen og gemme den i et Vim-register.
+
+ 3. Flyt markren til c)-linjen, OVER hvor den slettede linje skal vre.
+
+ 4. Skriv p for at put-indstte linjen nedenunder markren.
+
+ 5. Gentag trin 2 til 4 for at put-indstte alle linjerne i den rigtige rkkeflge.
+
+---> d) Kan du lre lige s?
+---> b) Violer er bl,
+---> c) Intelligens skal lres,
+---> a) Roser er rde,
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 3.2: ERSTAT-KOMMANDOEN
+
+
+ ** Skriv rx for at erstatte tegnet ved markren med x . **
+
+ 1. Flyt markren ned til den frste linje med --->.
+
+ 2. Flyt markren s den er ovenp den frste fejl.
+
+ 3. Skriv r og s tegnet som skal vre der.
+
+ 4. Gentag trin 2 og 3 indtil den frste linje er magen til den anden.
+
+---> Def var nohen der trukkede p de forkerge taster, da linjem blev skrevet!
+---> Der var nogen der trykkede p de forkerte taster, da linjen blev skrevet!
+
+ 5. Flyt nu videre til lektion 3.3.
+
+BEMRK: Husk p at du skal lre ved at gre det, ikke ved at lre det udenad.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 3.3: NDRINGSOPERATOREN
+
+
+ ** ndr indtil slutningen af et ord, ved at skrive ce . **
+
+ 1. Flyt markren ned til den frste linje med --->.
+
+ 2. Placer markren p k'et i likibj.
+
+ 3. Skriv ce og det korrekte ord (i dette tilflde skrives njen ).
+
+ 4. Tryk p <ESC> og flyt til det nste tegn der skal ndres.
+
+ 5. Gentag trin 3 og 4 indtil den frste stning er magen til den anden.
+
+---> Likibj har nogle f ndo som vnes ndres vrf ndringsoperatoren.
+---> Linjen har nogle f ord som skal ndres med ndringsoperatoren.
+
+Bemrk at ce sletter ordet og stiller dig i indst-tilstand.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 3.4: FLERE NDRINGER MED c
+
+
+ ** NDRINGSOPERATOREN bruges med de samme bevgelser som slet. **
+
+ 1. ndringsoperatoren virker p samme mde som slet. Formatet er:
+
+ c [nummer] bevgelse
+
+ 2. Bevgelserne er de samme, ssom w (ord) og $ (slutningen af linjen).
+
+ 3. Flyt ned til den frste linje med --->.
+
+ 4. Flyt markren til den frste fejl.
+
+ 5. Skriv c$ og skriv resten af linjen som den anden linje og tryk p <ESC>.
+
+---> Slutningen af linjen har brug for lidt hjlp til at blive ligesom den anden.
+---> Slutningen af linjen skal rettes med c$-kommandoen.
+
+BEMRK: Du kan bruge backspace-tasten til at rette fejl nr du skriver.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 3 OPSUMMERING
+
+
+ 1. Put-indst tekst tilbage som lige er blevet slettet, ved at skrive p .
+ Det put-indstter den slettede tekst EFTER markren (hvis en linje blev
+ slettet, s vil den vre p linjen nedenunder markren).
+
+ 2. Erstat tegnet under markren, ved at skrive r og s
+ tegnet som du vil have der.
+
+ 3. ndringsoperatoren giver dig mulighed for at ndre fra markren til hvor
+ bevgelsen tager dig hen. Skriv f.eks. ce for at ndre fra markren til
+ slutningen af ordet, c$ for at ndre til slutningen af en linjen.
+
+ 4. Formatet til at ndre er:
+
+ c [nummer] bevgelse
+
+G nu videre til den nste lektion.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 4.1: MARKRPLACERING OG FILSTATUS
+
+ ** Skriv CTRL-G for at vise din placering i filen og filstatussen.
+ Skriv G for at flytte til en linje i filen. **
+
+ BEMRK: Ls hele lektionen, inden trinnene udfres!!
+
+ 1. Hold Ctrl-tasten nede og tryk p g . Vi kalder det CTRL-G.
+ Der vises en meddelelse nederst p siden med filnavnet og
+ placeringen i filen. Husk linjenummeret til trin 3.
+
+BEMRK: Du ser muligvis markrplaceringen nederst i hjre hjrne af skrmen.
+ Det sker nr 'ruler'-valgmuligheden er sat (se :help 'ruler' )
+
+ 2. Tryk p G for at flytte dig nederst i filen.
+ Skriv gg for at flytte dig verst i filen.
+
+ 3. Skriv nummeret p den linje du var p, og s G . Det
+ returnerer dig til den linje du var p da du frste trykkede p CTRL-G.
+
+ 4. Hvis du fler dig klar til at gre det, s udfre trin 1 til 3.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 4.2: SG-KOMMANDOEN
+
+
+ ** Skriv / efterfulgt af en frase for at sge efter frasen. **
+
+ 1. I normal tilstand, skriv /-tegnet . Bemrk at det og markren
+ vises i bunden af skrmen som med :-kommandoen .
+
+ 2. Skriv nu 'feeejjl' <ENTER>. Det er ordet du vil sge efter.
+
+ 3. Sg efter den samme frase igen, ved blot at skrive n .
+ Sg efter den samme frase i den anden retning, ved at skrive N .
+
+ 4. Sg efter en frase i den modsatte retning, ved at bruge ? i stedet for / .
+
+ 5. G tilbage hvor du kom fra, ved at trykke p CTRL-O (Hold Ctrl nede mens
+ der trykkes p bogstavet o). Gentag for at g lngere tilbage. CTRL-I gr fremad.
+
+---> "feeejjl" er den forkerte mde at stave til fejl; feeejjl er en fejl.
+BEMRK: Nr sgningen nr slutningen af filen, s fortstter den ved
+ begyndelsen, men mindre 'wrapscan'-valgmuligheden er blevet slet fra.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 4.3: SG EFTER MODSVARENDE PARENTESER
+
+
+ ** Skriv % for at finde en modsvarende ),], eller } . **
+
+ 1. Placer markren p (, [, eller { p linjen nedenfor med --->.
+
+ 2. Skriv nu %-tegnet .
+
+ 3. Markren flytter til den modsvarende parentes eller klamme.
+
+ 4. Skriv % for at flytte markren til den anden modsvarende klamme.
+
+ 5. Flyt markren til en anden (,),[,],{ eller } og se hvad % gr.
+
+---> Dette ( er en testlinje med ('er, ['er ] og {'er }. ))
+
+
+BEMRK: Det er meget nyttigt ved fejlretning af et program som mangler
+ modsvarende parenteser!
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 4.4: UDSKIFT-KOMMANDOEN
+
+
+ ** Skriv :s/gammel/ny/g for at udskifte 'gammel' med 'ny'. **
+
+ 1. Flyt markren ned til linjen med --->.
+
+ 2. Skriv :s/dett/det <ENTER> . Bemrk at kommandoen kun ndre den
+ frste forekomst af "dett" p linjen.
+
+ 3. Skriv nu :s/dett/det/g . Nr g-flaget tilfjes, s udskiftes der
+ globalt p linjen, alts ndre alle forekomster af "dett" p linjen.
+
+---> dett siges at dett er bedst at se p blomster nr dett er forr.
+
+ 4. ndr hver forekomst af en tegnstreng mellem to linjer,
+ ved at skrive :#,#s/gammel/ny/g hvor #,# er linjenumrene over omrdet
+ af linjer hvor udskiftningen skal ske.
+ Skriv :%s/gammel/ny/g for at ndre hver forekomst i hele filen.
+ Skriv :%s/gammel/ny/gc for at finde hver forekomst i hele filen,
+ med en prompt om hvorvidt der skal udskiftes eller ej.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 4 OPSUMMERING
+
+
+ 1. CTRL-G viser din placering i filen og filstatussen.
+ G flytter til slutningen af filen.
+ nummer G flytter til linjenummeret.
+ gg flytter til den frste linje.
+
+ 2. Nr der skrives / efterfulgt af en frase, s sges der FREMAD efter frasen.
+ Nr der skrives ? efterfulgt af en frase, s sges der BAGLNS efter frasen.
+ Skriv n efter en sgning, for at finde den nste forekomst i den samme retning,
+ eller N for at sge i den modsatte retning.
+ CTRL-O tager dig tilbage til ldre placeringer, CTRL-I til nyere placeringer.
+
+ 3. Nr der skrives % mens markren er p et (,),[,],{, eller }, s gr den til dens match.
+
+ 4. Udskift den frste frste gammel med ny p en linje, ved at skrive :s/gammel/ny
+ Udskift alle gammel med ny p en linje, ved at skrive :s/gammel/ny/g
+ Udskift fraser mellem to linenumre, ved at skrive :#,#s/gammel/ny/g
+ Udskift alle forekomster i filen, ved at skrive :%s/gammel/ny/g
+ Sprg om bekrftelse hver gang, ved at tilfje 'c' :%s/gammel/ny/gc
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 5.1: UDFR EN EKSTERN KOMMANDO
+
+
+ ** Skriv :! efterfulgt af en ekstern kommando, for at udfre kommandoen. **
+
+ 1. Skriv den velkendte kommando : for at stte markren nederst p
+ skrmen. Det giver dig mulighed for at indtaste en kommandolinjekommando.
+
+ 2. Skriv nu !-tegnet (udrbstegn). Det giver dig mulighed
+ for at udfre enhver ekstern skalkommando.
+
+ 3. Skriv f.eks. ls efter ! og tryk s p <ENTER>. Det
+ viser dig en liste over din mappe, ligesom hvis du var ved
+ skalprompten. Eller brug :!dir hvis ikke ls virker.
+
+BEMRK: Det er muligt at udfre enhver ekstern kommando p denne mde,
+ ogs med argumenter.
+
+BEMRK: Alle :-kommandoer skal afsluttes ved at trykke p <ENTER>.
+ Vi nvner det ikke altid herefter.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 5.2: MERE OM AT SKRIVE FILER
+
+
+ ** Gem ndringerne som er foretaget til teksten, ved at skrive :w FILNAVN. **
+
+ 1. Skriv :!dir eller :!ls for at f en liste over din mappe.
+ Du ved allerede at du skal trykke p <ENTER> bagefter.
+
+ 2. Vlg et filnavn som ikke findes endnu, ssom TEST.
+
+ 3. Skriv nu: :w TEST (hvor TEST er filnavnet som du vlger.)
+
+ 4. Det gemmer hele filen (Vim-vejledningen) under navnet TEST.
+ Bekrft det, ved igen at skrive :!dir eller :!ls for at se din mappe.
+
+BEMRK: Hvis du afslutter Vim og starter den igen med vim TEST , s vil
+ filen vre en njagtig kopi af vejledningen da du gemte den.
+
+ 5. Fjern nu filen, ved at skrive (MS-DOS): :!del TEST
+ eller (Unix): :!rm TEST
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 5.3: MARKR TEKST SOM SKAL SKRIVES
+
+
+ ** Gem en del af en fil, ved at skrive v bevgelse :w FILNAVN **
+
+ 1. Flyt markren til denne linje.
+
+ 2. Tryk p v og flyt markren til the femte punkt nedenfor. Bemrk at
+ teksten er fremhvet.
+
+ 3. Tryk p :-tegnet . Nederst p skrmen vises :'<,'>.
+
+ 4. Skriv w TEST , hvor TEST er filnavnet som endnu ikke findes. Bekrft
+ at du ser :'<,'>w TEST inden du trykker p <ENTER>.
+
+ 5. Vim skriver de markerede linjer til filen TEST. Brug :!dir eller :!ls
+ for at se den. Fjern den ikke endnu! Vi bruger den i den nste lektion.
+
+BEMRK: Nr der trykkes p v startes visuel markering. Du kan flytte markren
+ rundt for at gre markeringen strre eller mindre. Du kan s bruge en
+ operator til at gre noget med teksten. F.eks. vil d slette teksten.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 5.4: INDHENT OG SAMMENLG FILER
+
+
+ ** Indst indholdet af en fil, ved at skrive :r FILNAVN **
+
+ 1. Placer markren lige ovenover denne linje.
+
+BEMRK: Nr trin 2 er udfrt vil du se teksten fra lektion 5.3. Flyt s
+ NED for at se denne lektion igen.
+
+ 2. Indhent nu din TEST-fil med kommandoen :r TEST , hvor TEST er
+ navnet p filen som du brugte.
+ Filen som du indhenter placeres under markrens linje.
+
+ 3. Bekrft at en fil blev indhentet, ved at flytte markren tilbage og bemrk
+ at der nu er to kopier af lektion 5.3, den originale og filversionen.
+
+BEMRK: Du kan ogs lse outputtet fra en ekstern kommando. F.eks. lser
+ :r !ls outputtet fra ls-kommandoen og indstter det under
+ markren.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 5 OPSUMMERING
+
+
+ 1. :!kommando udfrer en ekstern kommando.
+
+ Nogle nyttige eksempler er:
+ (MS-DOS) (Unix)
+ :!dir :!ls - viser en liste over mapper.
+ :!del FILNAVN :!rm FILNAVN - fjerner filen FILNAVN.
+
+ 2. :w FILNAVN skriver den nuvrende Vim-fil til disken med navnet FILNAVN.
+
+ 3. v bevgelse :w FILNAVN gemmer de visuelt markerede linjer i filen
+ FILNAVN.
+
+ 4. :r FILNAVN indhenter diskfilen FILNAVN og indstter den under
+ markrens placering.
+
+ 5. :r !dir lser outputtet fra dir-kommandoen og indstter det under
+ markrens placering.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 6.1: BN-KOMMANDOEN
+
+
+ ** Skriv o for at bne en linje under markren og stille dig i indst-tilstand. **
+
+ 1. Flyt markren ned til linjen med --->.
+
+ 2. Skriv bogstavet o med smt, for at bne en linje UNDER markren og stille
+ dig i indst-tilstand.
+
+ 3. Skriv nu noget tekst og tryk p <ESC> for at afslutte indst-tilstand.
+
+---> Efter o er blevet skrevet, placeres markren p den bne linje i indst-tilstand.
+
+ 4. Skriv blot et stort O , i stedet for et lille o , for at
+ bne en linje OVENOVER markren. Prv det p linjen nedenfor.
+
+---> bn en line ovenover denne, ved at skrive O mens markren er p denne linje.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 6.2: VEDHFT-KOMMANDOEN
+
+
+ ** Skriv a for at indstte tekst EFTER markren. **
+
+ 1. Flyt markren ned til begyndelsen af linjen med --->.
+
+ 2. Tryk p e indtil markren er p slutningen af lin .
+
+ 3. Skriv et a (med smt) for at vedhfte tekst EFTER markren.
+
+ 4. Fuldfr ordet ligesom linjen under det. Tryk p <ESC> for at afslutte
+ indst-tilstand.
+
+ 5. Brug e til at flytte til det nste ufrdige ord og gentag trin 3 og 4.
+
+---> Lin giver dig mulighed for at v vedhftnin af tekst til en linje.
+---> Linjen giver dig mulighed for at ve vedhftning af tekst til en linje.
+
+BEMRK: a, i og A gr alle til den samme indst-tilstand,
+ den eneste forskel er hvor tegnene indsttes.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 6.3: AN ANDEN MDE AT ERSTATTE
+
+
+ ** Skriv et stort R for at erstatte flere end t tegn. **
+
+ 1. Flyt markren ned til den frste linje med --->. Flyt markren til
+ begyndelsen af den frste xxx .
+
+ 2. Tryk nu p R og skriv nummeret som er under det p den anden linje,
+ s det erstatter xxx .
+
+ 3. Tryk p <ESC> for at forlade erstat-tilstand. Bemrk at resten af linjen
+ forbliver undret.
+
+ 4. Gentag trinnene for at erstatte det sidste xxx.
+
+---> Nr 123 lgges sammen med xxx giver det xxx.
+---> Nr 123 lgges sammen med 456 giver det 579.
+
+BEMRK: Erstat-tilstand er ligesom indst-tilstand, men hvert indtastede
+ tegn sletter et eksisterende tegn.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 6.4: KOPER OG INDST TEKST
+
+
+ ** Brug y-operatoren til at kopiere tekst og p til at indstte den **
+
+ 1. G ned til linjen med ---> og placer markren efter "a)".
+
+ 2. Start visuel tilstand med v og flyt markren til lige inden "frste".
+
+ 3. Skriv y for at yank-udtrkke (kopiere) den fremhvede tekst.
+
+ 4. Flyt markren til slutningen af den nste linje: j$
+
+ 5. Skriv p for at put-indstte (indstte) teksten. Skriv s: a andet <ESC> .
+
+ 6. Brug visuel tilstand til at markere " punkt.", yank-udtrk med y , flyt
+ til slutningen af nste linje med j$ og put-indst teksten der med p .
+
+---> a) dette er det frste punkt.
+ b)
+
+ BEMRK: du kan ogs bruge y som en operator; yw yank-udtrkker et ord.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 6.5: ST VALGMULIGHED
+
+
+ ** St en valgmulighed s en sgning eller udskiftning ignorerer forskelle p store/sm bogstaver **
+
+ 1. Sg efter 'ignorer', ved at skrive: /ignorer <ENTER>
+ Gentag flere gange ved at trykke p n .
+
+ 2. St 'ic'-valgmuligheden (Ignorer forskelle p store/sm bogstaver), ved at skrive: :set ic
+
+ 3. Sg nu efter 'ignorer' igen, ved at trykke p n
+ Bemrk at Ignorer og IGNORER nu ogs bliver fundet.
+
+ 4. St 'hlsearch'- og 'incsearch'-valgmulighederne: :set hls is
+
+ 5. Skriv nu sg-kommandoen igen og se hvad der sker: /ignorer <ENTER>
+
+ 6. Deaktivr ignorering af forskelle p store/sm bogstaver, ved at skrive: :set noic
+
+BEMRK: Fjern fremhvningen af matches, ved at skrive: :nohlsearch
+BEMRK: Hvis du vil ignorere case for en enkelt sg-kommando, s brug \c
+ i frasen: /ignorer\c <ENTER>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 6 OPSUMMERING
+
+ 1. Skriv o for at bne en linje NEDENUNDER markren og starte indst-tilstand.
+ Skriv O for at bne en linje OVENOVER markren.
+
+ 2. Skriv a for at indstte tekst EFTER markren.
+ Skriv A for at indstte tekst efter slutningen af linjen.
+
+ 3. e-kommandoen flytter til slutningen af et ord.
+
+ 4. y-operatoren yank-udtrkker (kopierer) tekst, p put-indstter (indstter) den.
+
+ 5. Nr der skrives et stort R stilles du i erstat-tilstand indtil der trykkes p <ESC> .
+
+ 6. Nr der skrives ":set xxx", s sttes valgmuligheden "xxx". Nogle valgmuligheder er:
+ 'ic' 'ignorecase' ignorer forskelle p store/sm bogstaver nr der sges
+ 'is' 'incsearch' vis delvise match for en sgefrase
+ 'hls' 'hlsearch' fremhv alle fraser som matcher
+ Du kan enten bruge det lange eller korte valgmulighedsnavn.
+
+ 7. Vedhft "no" i begyndelsen, for at sl en valgmulighed fra: :set noic
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 7.1: F HJLP
+
+
+ ** Brug online-hjlpesystemet **
+
+ Vim har et omfattende online-hjlpesystem. Prv en af disse tre,
+ for at komme i gang:
+ - tryk p <HELP>-tasten (hvis du har en)
+ - tryk p <F1>-tasten (hvis du har en)
+ - skriv :help <ENTER>
+
+ Ls teksten i hjlpevinduet for at finde ud af hvordan hjlpen virker.
+ Skriv CTRL-W CTRL-W for at hoppe fra et vindue til et andet.
+ Skriv :q <ENTER> for at lukke hjlpevinduet.
+
+ Du kan finde hjlp om nsten alle emner, ved at give et argument til
+ ":help"-kommandoen. Prv disse (husk at trykke p <ENTER>):
+
+ :help w
+ :help c_CTRL-D
+ :help insert-index
+ :help user-manual
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 7.2: OPRET ET OPSTARTS-SCRIPT
+
+
+ ** Aktivr Vim-funktionaliteter **
+
+ Vim har mange flere funktionaliteter end Vi, men de fleste er deaktiveret som
+ standard. For at bruge flere funktionaliteter skal du oprette en "vimrc"-fil.
+
+ 1. Begynd at redigere "vimrc"-filen. Det afhnger af dit system:
+ :e ~/.vimrc i Unix
+ :e $VIM/_vimrc i MS-Windows
+
+ 2. Ls nu indholdet af eksempel "vimrc"-filen:
+ :r $VIMRUNTIME/vimrc_example.vim
+
+ 3. Skriv filen med:
+ :w
+
+ Nste gang du starter Vim bruger den syntaksfremhvning.
+ Du kan tilfje alle dine foretrukne indstillinger til "vimrc"-filen.
+ F mere information, ved at skrive :help vimrc-intro
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 7.3: FULDFRELSE
+
+
+ ** Kommandolinjefuldfrelse med CTRL-D og <TAB> **
+
+ 1. Srg for at Vim ikke er i kompatibel tilstand: :set nocp
+
+ 2. Se hvilke filer der er i mappen: :!ls eller :!dir
+
+ 3. Skriv begyndelsen af en kommando: :e
+
+ 4. Tryk p CTRL-D og Vim viser en liste over kommandoer der begynder med "e".
+
+ 5. Tryk p <TAB> og Vim vil fuldfre kommandonavnet til ":edit".
+
+ 6. Tilfj nu et mellemrum og begyndelsen af et eksisterende filnavn: :edit FIL
+
+ 7. Tryk p <TAB>. Vim fuldfrer navnet (hvis det er unikt).
+
+BEMRK: Fuldfrelse virker til mange kommandoer. Prv blot at trykke p
+ CTRL-D og <TAB>. Det er srligt nyttigt til :help .
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 7 OPSUMMERING
+
+
+ 1. Skriv :help eller tryk p <F1> eller <Help> for at bne et hjlpevindue.
+
+ 2. Skriv :help kommando for at finde hjlp om kommando .
+
+ 3. Skriv CTRL-W CTRL-W for at hoppe til et andet vindue
+
+ 4. Skriv :q for at lukke hjlpevinduet
+
+ 5. Opret et vimrc-opstarts-script for at bevare dine foretrukne indstillinger.
+
+ 6. Nr der skrives en :-kommando , s tryk p CTRL-D for at se
+ mulige fuldfrelser. Tryk p <TAB> for at bruge en fuldfrelse.
+
+
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Det afslutter Vim-vejledningen. Det var meningen den skulle give et
+ kortfattet overblik af Vim-editoren, lige nok til at du kan bruge editoren
+ nogenlunde let. Den er langt fra komplet, da Vim har mange mange flere
+ kommandoer. Ls brugermanualen som det nste: ":help user-manual".
+
+ Denne bog anbefales, til yderligere lsning og studering:
+ Vim - Vi Improved - af Steve Oualline
+ Forlag: New Riders
+ Den frste bog som helt er tilegnet Vim. Specielt nyttig for begyndere.
+ Der er mange eksempler og billeder.
+ Se http://iccf-holland.org/click5.html
+
+ Denne bog er ldre og mere om Vi end Vim, men anbefales ogs:
+ Learning the Vi Editor - af Linda Lamb
+ Forlag: O'Reilly & Associates Inc.
+ Det er en god bog til at komme til kende nsten alt hvad du vil gre med Vi.
+ Den sjette udgave inkluderer ogs information om Vim.
+
+ Vejledningen blev skrevet af Michael C. Pierce og Robert K. Ware,
+ Colorado School of Mines med ideer af Charles Smith,
+ Colorado State University. E-mail: bware@mines.colorado.edu.
+
+ ndret til Vim af Bram Moolenaar.
+
+ Oversat til dansk af scootergrisen.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/runtime/tutor/tutor.da.utf-8 b/runtime/tutor/tutor.da.utf-8
new file mode 100644
index 0000000..407170e
--- /dev/null
+++ b/runtime/tutor/tutor.da.utf-8
@@ -0,0 +1,972 @@
+===============================================================================
+= V e l k o m m e n t i l V I M - v e j l e d n i n g e n - Version 1.7 =
+===============================================================================
+
+ Vim er en meget kraftfuld editor med mange kommandoer, for mange til
+ at forklare i en vejledning som denne. Vejledningen er designet til at
+ beskrive nok af kommandoerne til at du vil være i stand til let at bruge
+ Vim som en alsidig editor.
+
+ Det tager cirka 25-30 minutter at fuldføre vejledningen,
+ afhængig af hvor meget tid der bruges på at eksperimentere.
+
+ VÆR OPMÆRKSOM PÅ AT:
+ Kommandoerne i lektionerne ændre teksten. Opret en kopi af filen
+ til at øve på (hvis du startede "vimtutor", så er det allerede en kopi).
+
+ Det er vigtigt at huske på at vejledningen er sat op til at lære ved at
+ bruge. Det betyder at du skal udføre kommandoerne for at lære at bruge
+ dem ordentligt. Læser du kun teksten, så glemmer du kommandoerne!
+
+ Sørg for at din Caps-Lock-tast IKKE er aktiveret og tryk
+ på j-tasten nok gange til at flytte markøren så lektion 1.1
+ fylder hele skærmen.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1.1: FLYT MARKØREN
+
+
+ ** Tryk på h-,j-,k-,l-tasterne som vist, for at flytte markøren. **
+ ^
+ k Fif: H-tasten er til venstre og flytter til venstre.
+ < h l > L-tasten er til højre og flytter til højre.
+ j J-tasten ligner en ned-pil.
+ v
+ 1. Flyt markøren rundt på skærmen indtil du er fortrolig med det.
+
+ 2. Hold ned-tasten (j) nede, indtil den gentager.
+ Nu ved du hvordan du flytter til den næste lektion.
+
+ 3. Brug ned-tasten til at flytte til lektion 1.2.
+
+BEMÆRK: Hvis du nogensinde bliver i tvivl om noget du skrev, så tryk på <ESC>
+ for at stille dig i normal tilstand. Skriv så kommandoen igen.
+
+BEMÆRK: Piletasterne bør også virke. Men med hjkl kan du flytte rundt
+ meget hurtigere, når du har vænnet dig til det. Seriøst!
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1.2: AFSLUT VIM
+
+
+ !! BEMÆRK: Læs hele lektionen, inden trinnene nedenfor udføres!!
+
+ 1. Tryk på <ESC>-tasten (for at være sikker på, at du er i normal tilstand).
+
+ 2. Skriv: :q! <ENTER>.
+ Det afslutter editoren, hvorved ændringer som du har foretaget forkastes.
+
+ 3. Vend tilbage hertil ved at udføre kommandoen som fik dig ind i
+ vejledningen. Det var muligvis: vimtutor <ENTER>
+
+ 4. Hvis du har lært trinnene udenad og er klar, så udfør trin
+ 1 til 3 for at afslutte og komme ind i editoren igen.
+
+BEMÆRK: :q! <ENTER> forkaster ændringer som du har foretaget. Om få lektioner
+ vil du lære at gemme ændringerne til en fil.
+
+ 5. Flyt markøren ned til lektion 1.3.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1.3: TEKSTREDIGERING - SLET
+
+
+ ** Tryk på x for at slette tegnet som markøren er ovenpå. **
+
+ 1. Flyt markøren ned til linjen med --->.
+
+ 2. Ret fejlene ved at flytte markøren indtil den er ovenpå
+ tegnet som skal slettes.
+
+ 3. Tryk på x-tasten for at slette det uønskede tegn.
+
+ 4. Gentag trin 2 til 4 indtil sætningen er korrekt.
+
+---> Kkoen sprangg ovverr måånen.
+
+ 5. Gå videre til lektion 1.4, nu hvor linjen er korrekt.
+
+BEMÆRK: Efterhånden som du gennemgår vejledningen, så lær det ikke udenad,
+ lær det ved at gøre det.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1.4: TEKSTREDIGERING - INDSÆT
+
+
+ ** Tryk på i for at indsætte tekst. **
+
+ 1. Flyt markøren ned til den første linje med --->.
+
+ 2. For at gøre den første linje magen til den anden, skal markøren flyttes
+ ovenpå det først tegn EFTER der hvor teksten skal indsættes.
+
+ 3. Tryk på i og skriv de nødvendige tilføjelser.
+
+ 4. Efterhånden som hver fejl rettes, så tryk på <ESC> for at vende tilbage
+ til normal tilstand. Gentag trin 2 til 4 for at rette sætningen.
+
+---> Der mangler tekst dene .
+---> Der mangler noget tekst på denne linje.
+
+ 5. Når du fortrolig med at indsætte tekst, så flyt til lektion 1.5.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1.5: TEKSTREDIGERING - VEDHÆFT
+
+
+ ** Tryk på A for at vedhæfte tekst. **
+
+ 1. Flyt markøren ned til den første linje med --->.
+ Det er lige meget hvilket tegn markøren er på, på linjen.
+
+ 2. Tryk på A og skriv de nødvendige tilføjelser.
+
+ 3. Tryk på <ESC> når teksten er blevet vedhæftet for at vende tilbage til normal tilstand.
+
+ 4. Flyt markøren til den anden linje med ---> og gentag
+ trin 2 og 3 for at rette sætningen.
+
+---> Der mangler noget tekst på den
+ Der mangler noget tekst på denne linje.
+---> Der mangler også noget tek
+ Der mangler også noget tekst her.
+
+ 5. Når du er fortrolig med at vedhæfte tekst, så flyt til lektion 1.6.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1.6: REDIGER EN FIL
+
+ ** Brug :wq til at gemme en fil og afslutte. **
+
+ !! BEMÆRK: Læs hele lektionen, inden trinnene nedenfor udføres!!
+
+ 1. Afslut vejledningen som du gjorde i lektion 1.2: :q!
+ Eller gør følgende i en anden terminal, hvis du har adgang til en.
+
+ 2. Skriv denne kommando i skalprompten: vim tutor <ENTER>
+ 'vim' er kommandoen til at starte Vim-editoren, 'tutor' er navnet på
+ filen som du vil redigere. Brug en fil som kan ændres.
+
+ 3. Indsæt og slet tekst, som du lærte vi de forrige lektioner.
+
+ 4. Gem filen med ændringer og afslut Vim med: :wq <ENTER>
+
+ 5. Hvis du afsluttede vimtutor i trin 1, så genstart vimtutor og flyt ned
+ til følgende opsummering.
+
+ 6. Udfør trinnene ovenfor, når du har læst og forstået dem.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 1 OPSUMMERING
+
+
+ 1. Markøren flyttes enten med piletasterne eller hjkl-tasterne.
+ h (venstre) j (ned) k (op) l (højre)
+
+ 2. Vim startes fra skalprompten, ved at skrive: vim FILNAVN <ENTER>
+
+ 3. Vim afsluttes, ved at skrive: <ESC> :q! <ENTER> for at forkaste alle ændringer.
+ ELLER, ved at skrive: <ESC> :wq <ENTER> for at gemme ændringerne.
+
+ 4. Slet tegn ved markøren, ved at skrive: x
+
+ 5. Indsæt eller vedhæft tekst, ved at skrive:
+ i skriv indsat tekst <ESC> indsæt inden markøren
+ A skriv vedhæftet tekst <ESC> vedhæft efter linjen
+
+BEMÆRK: Når der trykkes på <ESC>, så stilles du i normal tilstand eller også
+ annulleres en uønsket og delvist fuldført kommando.
+
+Fortsæt nu med lektion 2.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.1: SLETTEKOMMANDOER
+
+
+ ** Skriv dw for at slette et ord. **
+
+ 1. Tryk på <ESC> for at være sikker på, at du er i normal tilstand.
+
+ 2. Flyt markøren ned til linjen med --->.
+
+ 3. Flyt markøren til begyndelsen af et ord som skal slettes.
+
+ 4. Skriv dw for at få ordet til at forsvinde.
+
+ BEMÆRK: Bogstavet d vises på den sidste linje på den skærm du skrev
+ det på. Vim venter på at du skriver w . Hvis du ser et andet tegn
+ end d , så skrev du forkert; tryk på <ESC> og start forfra.
+
+---> Der er regnorm nogle ord som sjovt ikke hører til papir i sætningen.
+
+ 5. Gentag trin 3 og 4 indtil sætningen er korrekt og gå til lektion 2.2.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.2: FLERE SLETTEKOMMANDOER
+
+
+ ** Skriv d$ for at slette til slutningen af linjen. **
+
+ 1. Tryk på <ESC> for at være sikker på, at du er i normal tilstand.
+
+ 2. Flyt markøren ned til linjen med --->.
+
+ 3. Flyt markøren til slutningen af den rette linje (EFTER det første . ).
+
+ 4. Skriv d$ for at slette til slutningen af linjen.
+
+---> Nogen skrev slutningen af linjen to gange. slutningen af linjen to gange.
+
+
+ 5. Flyt videre til lektion 2.3 for at forstå hvad der sker.
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.3: OM OPERATORER OG BEVÆGELSER
+
+
+ Mange kommandoer som ændre tekst skabes fra en operator og en bevægelse.
+ Formatet til en slettekommando med sletteoperatoren d er som følger:
+
+ d bevægelse
+
+ Hvor:
+ d - er sletteoperatoren.
+ bevægelse - er hvad operatoren skal arbejde på (oplistet nedenfor).
+
+ En kort liste over bevægelser:
+ w - indtil begyndelsen af det næste ord, EKSKLUSIV dets første tegn.
+ e - til slutningen af det nuværende ord, INKLUSIV det sidste tegn.
+ $ - til slutningen af linjen, INKLUSIV det sidste tegn.
+
+ Så når der skrives de så slettes der fra markøren til slutningen af ordet.
+
+BEMÆRK: Når kun bevægelsen trykkes i normal tilstand, uden en operator,
+ så flyttes markøren som angivet.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.4: BRUG TÆLLER TIL EN BEVÆGELSE
+
+
+ ** Når der skrives et nummer inden en bevægelse, så gentages den det antal gange. **
+
+ 1. Flyt markøren ned til begyndelsen af linjen med --->.
+
+ 2. Skriv 2w for at flytte markøren fremad to ord.
+
+ 3. Skriv 3e for at flytte markøren fremad til slutningen af det tredje ord.
+
+ 4. Skriv 0 (nul) for at flytte til begyndelsen af linjen.
+
+ 5. Gentag trin 2 og 3 med forskellige numre.
+
+---> Dette er blot en linje med ord som du kan flytte rundt i.
+
+ 6. Flyt videre til lektion 2.5.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.5: BRUG TÆLLER TIL AT SLETTE FLERE
+
+
+ ** Når der skrives et nummer med en operator, så gentages den det antal gange. **
+
+ I kombinationen med sletteoperatoren og en bevægelse nævnt ovenfor kan du
+ indsætte en tæller inden bevægelsen for at slette flere:
+ d nummer bevægelse
+
+ 1. Flyt markøren til det første ord MED STORT på linjen med --->.
+
+ 2. Skriv d2w for at slette de to ord MED STORT
+
+ 3. Gentag trin 1 og 2 med en anden tæller for at slette de efterfølgende
+ ord MED STORT med én kommando
+
+---> denne ABC DE linje FGHI JK LMN OP med ord er Q RS TUV renset.
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.6: ARBEJD PÅ LINJER
+
+
+ ** Skriv dd for at slette en hel linje. **
+
+ Pga. at sletning af linjer bruges så ofte, så besluttede designerne af Vi
+ at det ville være lettere bare at skrive to d'er for at slette en linje.
+
+ 1. Flyt markøren til den anden linje i frasen nedenfor.
+ 2. Skriv dd for at slette linjen.
+ 3. Flyt nu til den fjerde linje.
+ 4. Skriv 2dd for at slette to linjer.
+
+---> 1) Roser er røde,
+---> 2) Mudder er sjovt,
+---> 3) Violer er blå,
+---> 4) Jeg har en scooter,
+---> 5) Ure viser tiden,
+---> 6) Sukker er sødt
+---> 7) Og du er lige så.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2.7: FORTRYD-KOMMANDOEN
+
+
+ ** Tryk på u for at fortryde de sidste kommandoer, U for at rette en hel linje. **
+
+ 1. Flyt markøren ned til linjen med ---> og placer den på
+ den første fejl.
+ 2. Skriv x for at slette det første uønskede tegn.
+ 3. Skriv nu u for at fortryde den sidste kommando der blev udført.
+ 4. Ret denne gang alle fejlene på linjen med x-kommadoen.
+ 5. Skriv nu et stort U for at få linjen tilbage til dens oprindelige tilstand.
+ 6. Skriv nu u nogle få gange for at fortryde U'et og forudgående kommandoer.
+ 7. Skriv nu CTRL-R (hold CTRL-tasten nede mens der trykkes på R) nogle få gange
+ for at omgøre kommandoerne (fortryd fortrydelserne).
+
+---> Rett fejlene ppå liinjen og errstat dem meed fortryd.
+
+ 8. Det er meget nyttige kommandoer. Flyt nu til lektion 2 opsummering.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 2 OPSUMMERING
+
+
+ 1. Slet fra markøren op til det næste ord, ved at skrive: dw
+ 2. Slet fra markøren til slutningen af en linje, ved at skrive: d$
+ 3. Slet en hel linje, ved at skrive: dd
+
+ 4. Gentag en bevægelse ved at vedhæfte et nummer i begyndelsen: 2w
+ 5. Formatet til en ændr-kommando er:
+ operator [nummer] bevægelse
+ hvor:
+ operator - er hvad der skal gøres, såsom d for at slette
+ [nummer] - er en valgfri tæller til at gentage bevægelsen
+ bevægelse - flytter over teksten som der skal arbejde på, såsom w (ord),
+ $ (til slutningen af linjen), osv.
+
+ 6. Flyt til begyndelsen af linjen med et nul: 0
+
+ 7. Fortryd tidligere handlinger, ved at skrive: u (lille u)
+ Fortryd alle ændringerne på en linje, ved at skrive: U (stort U)
+ Fortryd fortrydelserne, ved at skrive: CTRL-R
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 3.1: PUT-INDSÆTTE-KOMMANDOEN
+
+
+ ** Skriv p for at put-indsætte tidligere slettede tekst efter markøren. **
+
+ 1. Flyt markøren ned til den første linje med --->.
+
+ 2. Skriv dd for at slette linjen og gemme den i et Vim-register.
+
+ 3. Flyt markøren til c)-linjen, OVER hvor den slettede linje skal være.
+
+ 4. Skriv p for at put-indsætte linjen nedenunder markøren.
+
+ 5. Gentag trin 2 til 4 for at put-indsætte alle linjerne i den rigtige rækkefølge.
+
+---> d) Kan du lære lige så?
+---> b) Violer er blå,
+---> c) Intelligens skal læres,
+---> a) Roser er røde,
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 3.2: ERSTAT-KOMMANDOEN
+
+
+ ** Skriv rx for at erstatte tegnet ved markøren med x . **
+
+ 1. Flyt markøren ned til den første linje med --->.
+
+ 2. Flyt markøren så den er ovenpå den første fejl.
+
+ 3. Skriv r og så tegnet som skal være der.
+
+ 4. Gentag trin 2 og 3 indtil den første linje er magen til den anden.
+
+---> Def var nohen der trukkede på de forkerge taster, da linjem blev skrevet!
+---> Der var nogen der trykkede på de forkerte taster, da linjen blev skrevet!
+
+ 5. Flyt nu videre til lektion 3.3.
+
+BEMÆRK: Husk på at du skal lære ved at gøre det, ikke ved at lære det udenad.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 3.3: ÆNDRINGSOPERATOREN
+
+
+ ** Ændr indtil slutningen af et ord, ved at skrive ce . **
+
+ 1. Flyt markøren ned til den første linje med --->.
+
+ 2. Placer markøren på k'et i likibj.
+
+ 3. Skriv ce og det korrekte ord (i dette tilfælde skrives njen ).
+
+ 4. Tryk på <ESC> og flyt til det næste tegn der skal ændres.
+
+ 5. Gentag trin 3 og 4 indtil den første sætning er magen til den anden.
+
+---> Likibj har nogle få ndo som vnes ændres vrf ændringsoperatoren.
+---> Linjen har nogle få ord som skal ændres med ændringsoperatoren.
+
+Bemærk at ce sletter ordet og stiller dig i indsæt-tilstand.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 3.4: FLERE ÆNDRINGER MED c
+
+
+ ** ÆNDRINGSOPERATOREN bruges med de samme bevægelser som slet. **
+
+ 1. Ændringsoperatoren virker på samme måde som slet. Formatet er:
+
+ c [nummer] bevægelse
+
+ 2. Bevægelserne er de samme, såsom w (ord) og $ (slutningen af linjen).
+
+ 3. Flyt ned til den første linje med --->.
+
+ 4. Flyt markøren til den første fejl.
+
+ 5. Skriv c$ og skriv resten af linjen som den anden linje og tryk på <ESC>.
+
+---> Slutningen af linjen har brug for lidt hjælp til at blive ligesom den anden.
+---> Slutningen af linjen skal rettes med c$-kommandoen.
+
+BEMÆRK: Du kan bruge backspace-tasten til at rette fejl når du skriver.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 3 OPSUMMERING
+
+
+ 1. Put-indsæt tekst tilbage som lige er blevet slettet, ved at skrive p .
+ Det put-indsætter den slettede tekst EFTER markøren (hvis en linje blev
+ slettet, så vil den være på linjen nedenunder markøren).
+
+ 2. Erstat tegnet under markøren, ved at skrive r og så
+ tegnet som du vil have der.
+
+ 3. Ændringsoperatoren giver dig mulighed for at ændre fra markøren til hvor
+ bevægelsen tager dig hen. Skriv f.eks. ce for at ændre fra markøren til
+ slutningen af ordet, c$ for at ændre til slutningen af en linjen.
+
+ 4. Formatet til at ændre er:
+
+ c [nummer] bevægelse
+
+Gå nu videre til den næste lektion.
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 4.1: MARKØRPLACERING OG FILSTATUS
+
+ ** Skriv CTRL-G for at vise din placering i filen og filstatussen.
+ Skriv G for at flytte til en linje i filen. **
+
+ BEMÆRK: Læs hele lektionen, inden trinnene udføres!!
+
+ 1. Hold Ctrl-tasten nede og tryk på g . Vi kalder det CTRL-G.
+ Der vises en meddelelse nederst på siden med filnavnet og
+ placeringen i filen. Husk linjenummeret til trin 3.
+
+BEMÆRK: Du ser muligvis markørplaceringen nederst i højre hjørne af skærmen.
+ Det sker når 'ruler'-valgmuligheden er sat (se :help 'ruler' )
+
+ 2. Tryk på G for at flytte dig nederst i filen.
+ Skriv gg for at flytte dig øverst i filen.
+
+ 3. Skriv nummeret på den linje du var på, og så G . Det
+ returnerer dig til den linje du var på da du første trykkede på CTRL-G.
+
+ 4. Hvis du føler dig klar til at gøre det, så udføre trin 1 til 3.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 4.2: SØG-KOMMANDOEN
+
+
+ ** Skriv / efterfulgt af en frase for at søge efter frasen. **
+
+ 1. I normal tilstand, skriv /-tegnet . Bemærk at det og markøren
+ vises i bunden af skærmen som med :-kommandoen .
+
+ 2. Skriv nu 'feeejjl' <ENTER>. Det er ordet du vil søge efter.
+
+ 3. Søg efter den samme frase igen, ved blot at skrive n .
+ Søg efter den samme frase i den anden retning, ved at skrive N .
+
+ 4. Søg efter en frase i den modsatte retning, ved at bruge ? i stedet for / .
+
+ 5. Gå tilbage hvor du kom fra, ved at trykke på CTRL-O (Hold Ctrl nede mens
+ der trykkes på bogstavet o). Gentag for at gå længere tilbage. CTRL-I går fremad.
+
+---> "feeejjl" er den forkerte måde at stave til fejl; feeejjl er en fejl.
+BEMÆRK: Når søgningen når slutningen af filen, så fortsætter den ved
+ begyndelsen, men mindre 'wrapscan'-valgmuligheden er blevet slået fra.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 4.3: SØG EFTER MODSVARENDE PARENTESER
+
+
+ ** Skriv % for at finde en modsvarende ),], eller } . **
+
+ 1. Placer markøren på (, [, eller { på linjen nedenfor med --->.
+
+ 2. Skriv nu %-tegnet .
+
+ 3. Markøren flytter til den modsvarende parentes eller klamme.
+
+ 4. Skriv % for at flytte markøren til den anden modsvarende klamme.
+
+ 5. Flyt markøren til en anden (,),[,],{ eller } og se hvad % gør.
+
+---> Dette ( er en testlinje med ('er, ['er ] og {'er }. ))
+
+
+BEMÆRK: Det er meget nyttigt ved fejlretning af et program som mangler
+ modsvarende parenteser!
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 4.4: UDSKIFT-KOMMANDOEN
+
+
+ ** Skriv :s/gammel/ny/g for at udskifte 'gammel' med 'ny'. **
+
+ 1. Flyt markøren ned til linjen med --->.
+
+ 2. Skriv :s/dett/det <ENTER> . Bemærk at kommandoen kun ændre den
+ første forekomst af "dett" på linjen.
+
+ 3. Skriv nu :s/dett/det/g . Når g-flaget tilføjes, så udskiftes der
+ globalt på linjen, altså ændre alle forekomster af "dett" på linjen.
+
+---> dett siges at dett er bedst at se på blomster når dett er forår.
+
+ 4. Ændr hver forekomst af en tegnstreng mellem to linjer,
+ ved at skrive :#,#s/gammel/ny/g hvor #,# er linjenumrene over området
+ af linjer hvor udskiftningen skal ske.
+ Skriv :%s/gammel/ny/g for at ændre hver forekomst i hele filen.
+ Skriv :%s/gammel/ny/gc for at finde hver forekomst i hele filen,
+ med en prompt om hvorvidt der skal udskiftes eller ej.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 4 OPSUMMERING
+
+
+ 1. CTRL-G viser din placering i filen og filstatussen.
+ G flytter til slutningen af filen.
+ nummer G flytter til linjenummeret.
+ gg flytter til den første linje.
+
+ 2. Når der skrives / efterfulgt af en frase, så søges der FREMAD efter frasen.
+ Når der skrives ? efterfulgt af en frase, så søges der BAGLÆNS efter frasen.
+ Skriv n efter en søgning, for at finde den næste forekomst i den samme retning,
+ eller N for at søge i den modsatte retning.
+ CTRL-O tager dig tilbage til ældre placeringer, CTRL-I til nyere placeringer.
+
+ 3. Når der skrives % mens markøren er på et (,),[,],{, eller }, så går den til dens match.
+
+ 4. Udskift den første første gammel med ny på en linje, ved at skrive :s/gammel/ny
+ Udskift alle gammel med ny på en linje, ved at skrive :s/gammel/ny/g
+ Udskift fraser mellem to linenumre, ved at skrive :#,#s/gammel/ny/g
+ Udskift alle forekomster i filen, ved at skrive :%s/gammel/ny/g
+ Spørg om bekræftelse hver gang, ved at tilføje 'c' :%s/gammel/ny/gc
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 5.1: UDFØR EN EKSTERN KOMMANDO
+
+
+ ** Skriv :! efterfulgt af en ekstern kommando, for at udføre kommandoen. **
+
+ 1. Skriv den velkendte kommando : for at sætte markøren nederst på
+ skærmen. Det giver dig mulighed for at indtaste en kommandolinjekommando.
+
+ 2. Skriv nu !-tegnet (udråbstegn). Det giver dig mulighed
+ for at udføre enhver ekstern skalkommando.
+
+ 3. Skriv f.eks. ls efter ! og tryk så på <ENTER>. Det
+ viser dig en liste over din mappe, ligesom hvis du var ved
+ skalprompten. Eller brug :!dir hvis ikke ls virker.
+
+BEMÆRK: Det er muligt at udføre enhver ekstern kommando på denne måde,
+ også med argumenter.
+
+BEMÆRK: Alle :-kommandoer skal afsluttes ved at trykke på <ENTER>.
+ Vi nævner det ikke altid herefter.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 5.2: MERE OM AT SKRIVE FILER
+
+
+ ** Gem ændringerne som er foretaget til teksten, ved at skrive :w FILNAVN. **
+
+ 1. Skriv :!dir eller :!ls for at få en liste over din mappe.
+ Du ved allerede at du skal trykke på <ENTER> bagefter.
+
+ 2. Vælg et filnavn som ikke findes endnu, såsom TEST.
+
+ 3. Skriv nu: :w TEST (hvor TEST er filnavnet som du vælger.)
+
+ 4. Det gemmer hele filen (Vim-vejledningen) under navnet TEST.
+ Bekræft det, ved igen at skrive :!dir eller :!ls for at se din mappe.
+
+BEMÆRK: Hvis du afslutter Vim og starter den igen med vim TEST , så vil
+ filen være en nøjagtig kopi af vejledningen da du gemte den.
+
+ 5. Fjern nu filen, ved at skrive (MS-DOS): :!del TEST
+ eller (Unix): :!rm TEST
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 5.3: MARKÉR TEKST SOM SKAL SKRIVES
+
+
+ ** Gem en del af en fil, ved at skrive v bevægelse :w FILNAVN **
+
+ 1. Flyt markøren til denne linje.
+
+ 2. Tryk på v og flyt markøren til the femte punkt nedenfor. Bemærk at
+ teksten er fremhævet.
+
+ 3. Tryk på :-tegnet . Nederst på skærmen vises :'<,'>.
+
+ 4. Skriv w TEST , hvor TEST er filnavnet som endnu ikke findes. Bekræft
+ at du ser :'<,'>w TEST inden du trykker på <ENTER>.
+
+ 5. Vim skriver de markerede linjer til filen TEST. Brug :!dir eller :!ls
+ for at se den. Fjern den ikke endnu! Vi bruger den i den næste lektion.
+
+BEMÆRK: Når der trykkes på v startes visuel markering. Du kan flytte markøren
+ rundt for at gøre markeringen større eller mindre. Du kan så bruge en
+ operator til at gøre noget med teksten. F.eks. vil d slette teksten.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 5.4: INDHENT OG SAMMENLÆG FILER
+
+
+ ** Indsæt indholdet af en fil, ved at skrive :r FILNAVN **
+
+ 1. Placer markøren lige ovenover denne linje.
+
+BEMÆRK: Når trin 2 er udført vil du se teksten fra lektion 5.3. Flyt så
+ NED for at se denne lektion igen.
+
+ 2. Indhent nu din TEST-fil med kommandoen :r TEST , hvor TEST er
+ navnet på filen som du brugte.
+ Filen som du indhenter placeres under markørens linje.
+
+ 3. Bekræft at en fil blev indhentet, ved at flytte markøren tilbage og bemærk
+ at der nu er to kopier af lektion 5.3, den originale og filversionen.
+
+BEMÆRK: Du kan også læse outputtet fra en ekstern kommando. F.eks. læser
+ :r !ls outputtet fra ls-kommandoen og indsætter det under
+ markøren.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 5 OPSUMMERING
+
+
+ 1. :!kommando udfører en ekstern kommando.
+
+ Nogle nyttige eksempler er:
+ (MS-DOS) (Unix)
+ :!dir :!ls - viser en liste over mapper.
+ :!del FILNAVN :!rm FILNAVN - fjerner filen FILNAVN.
+
+ 2. :w FILNAVN skriver den nuværende Vim-fil til disken med navnet FILNAVN.
+
+ 3. v bevægelse :w FILNAVN gemmer de visuelt markerede linjer i filen
+ FILNAVN.
+
+ 4. :r FILNAVN indhenter diskfilen FILNAVN og indsætter den under
+ markørens placering.
+
+ 5. :r !dir læser outputtet fra dir-kommandoen og indsætter det under
+ markørens placering.
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 6.1: ÅBN-KOMMANDOEN
+
+
+ ** Skriv o for at åbne en linje under markøren og stille dig i indsæt-tilstand. **
+
+ 1. Flyt markøren ned til linjen med --->.
+
+ 2. Skriv bogstavet o med småt, for at åbne en linje UNDER markøren og stille
+ dig i indsæt-tilstand.
+
+ 3. Skriv nu noget tekst og tryk på <ESC> for at afslutte indsæt-tilstand.
+
+---> Efter o er blevet skrevet, placeres markøren på den åbne linje i indsæt-tilstand.
+
+ 4. Skriv blot et stort O , i stedet for et lille o , for at
+ åbne en linje OVENOVER markøren. Prøv det på linjen nedenfor.
+
+---> Åbn en line ovenover denne, ved at skrive O mens markøren er på denne linje.
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 6.2: VEDHÆFT-KOMMANDOEN
+
+
+ ** Skriv a for at indsætte tekst EFTER markøren. **
+
+ 1. Flyt markøren ned til begyndelsen af linjen med --->.
+
+ 2. Tryk på e indtil markøren er på slutningen af lin .
+
+ 3. Skriv et a (med småt) for at vedhæfte tekst EFTER markøren.
+
+ 4. Fuldfør ordet ligesom linjen under det. Tryk på <ESC> for at afslutte
+ indsæt-tilstand.
+
+ 5. Brug e til at flytte til det næste ufærdige ord og gentag trin 3 og 4.
+
+---> Lin giver dig mulighed for at øv vedhæftnin af tekst til en linje.
+---> Linjen giver dig mulighed for at øve vedhæftning af tekst til en linje.
+
+BEMÆRK: a, i og A går alle til den samme indsæt-tilstand,
+ den eneste forskel er hvor tegnene indsættes.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 6.3: AN ANDEN MÅDE AT ERSTATTE
+
+
+ ** Skriv et stort R for at erstatte flere end ét tegn. **
+
+ 1. Flyt markøren ned til den første linje med --->. Flyt markøren til
+ begyndelsen af den første xxx .
+
+ 2. Tryk nu på R og skriv nummeret som er under det på den anden linje,
+ så det erstatter xxx .
+
+ 3. Tryk på <ESC> for at forlade erstat-tilstand. Bemærk at resten af linjen
+ forbliver uændret.
+
+ 4. Gentag trinnene for at erstatte det sidste xxx.
+
+---> Når 123 lægges sammen med xxx giver det xxx.
+---> Når 123 lægges sammen med 456 giver det 579.
+
+BEMÆRK: Erstat-tilstand er ligesom indsæt-tilstand, men hvert indtastede
+ tegn sletter et eksisterende tegn.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 6.4: KOPÍER OG INDSÆT TEKST
+
+
+ ** Brug y-operatoren til at kopiere tekst og p til at indsætte den **
+
+ 1. Gå ned til linjen med ---> og placer markøren efter "a)".
+
+ 2. Start visuel tilstand med v og flyt markøren til lige inden "første".
+
+ 3. Skriv y for at yank-udtrække (kopiere) den fremhævede tekst.
+
+ 4. Flyt markøren til slutningen af den næste linje: j$
+
+ 5. Skriv p for at put-indsætte (indsætte) teksten. Skriv så: a andet <ESC> .
+
+ 6. Brug visuel tilstand til at markere " punkt.", yank-udtræk med y , flyt
+ til slutningen af næste linje med j$ og put-indsæt teksten der med p .
+
+---> a) dette er det første punkt.
+ b)
+
+ BEMÆRK: du kan også bruge y som en operator; yw yank-udtrækker et ord.
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 6.5: SÆT VALGMULIGHED
+
+
+ ** Sæt en valgmulighed så en søgning eller udskiftning ignorerer forskelle på store/små bogstaver **
+
+ 1. Søg efter 'ignorer', ved at skrive: /ignorer <ENTER>
+ Gentag flere gange ved at trykke på n .
+
+ 2. Sæt 'ic'-valgmuligheden (Ignorer forskelle på store/små bogstaver), ved at skrive: :set ic
+
+ 3. Søg nu efter 'ignorer' igen, ved at trykke på n
+ Bemærk at Ignorer og IGNORER nu også bliver fundet.
+
+ 4. Sæt 'hlsearch'- og 'incsearch'-valgmulighederne: :set hls is
+
+ 5. Skriv nu søg-kommandoen igen og se hvad der sker: /ignorer <ENTER>
+
+ 6. Deaktivér ignorering af forskelle på store/små bogstaver, ved at skrive: :set noic
+
+BEMÆRK: Fjern fremhævningen af matches, ved at skrive: :nohlsearch
+BEMÆRK: Hvis du vil ignorere case for en enkelt søg-kommando, så brug \c
+ i frasen: /ignorer\c <ENTER>
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 6 OPSUMMERING
+
+ 1. Skriv o for at åbne en linje NEDENUNDER markøren og starte indsæt-tilstand.
+ Skriv O for at åbne en linje OVENOVER markøren.
+
+ 2. Skriv a for at indsætte tekst EFTER markøren.
+ Skriv A for at indsætte tekst efter slutningen af linjen.
+
+ 3. e-kommandoen flytter til slutningen af et ord.
+
+ 4. y-operatoren yank-udtrækker (kopierer) tekst, p put-indsætter (indsætter) den.
+
+ 5. Når der skrives et stort R stilles du i erstat-tilstand indtil der trykkes på <ESC> .
+
+ 6. Når der skrives ":set xxx", så sættes valgmuligheden "xxx". Nogle valgmuligheder er:
+ 'ic' 'ignorecase' ignorer forskelle på store/små bogstaver når der søges
+ 'is' 'incsearch' vis delvise match for en søgefrase
+ 'hls' 'hlsearch' fremhæv alle fraser som matcher
+ Du kan enten bruge det lange eller korte valgmulighedsnavn.
+
+ 7. Vedhæft "no" i begyndelsen, for at slå en valgmulighed fra: :set noic
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 7.1: FÅ HJÆLP
+
+
+ ** Brug online-hjælpesystemet **
+
+ Vim har et omfattende online-hjælpesystem. Prøv en af disse tre,
+ for at komme i gang:
+ - tryk på <HELP>-tasten (hvis du har en)
+ - tryk på <F1>-tasten (hvis du har en)
+ - skriv :help <ENTER>
+
+ Læs teksten i hjælpevinduet for at finde ud af hvordan hjælpen virker.
+ Skriv CTRL-W CTRL-W for at hoppe fra et vindue til et andet.
+ Skriv :q <ENTER> for at lukke hjælpevinduet.
+
+ Du kan finde hjælp om næsten alle emner, ved at give et argument til
+ ":help"-kommandoen. Prøv disse (husk at trykke på <ENTER>):
+
+ :help w
+ :help c_CTRL-D
+ :help insert-index
+ :help user-manual
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 7.2: OPRET ET OPSTARTS-SCRIPT
+
+
+ ** Aktivér Vim-funktionaliteter **
+
+ Vim har mange flere funktionaliteter end Vi, men de fleste er deaktiveret som
+ standard. For at bruge flere funktionaliteter skal du oprette en "vimrc"-fil.
+
+ 1. Begynd at redigere "vimrc"-filen. Det afhænger af dit system:
+ :e ~/.vimrc i Unix
+ :e $VIM/_vimrc i MS-Windows
+
+ 2. Læs nu indholdet af eksempel "vimrc"-filen:
+ :r $VIMRUNTIME/vimrc_example.vim
+
+ 3. Skriv filen med:
+ :w
+
+ Næste gang du starter Vim bruger den syntaksfremhævning.
+ Du kan tilføje alle dine foretrukne indstillinger til "vimrc"-filen.
+ Få mere information, ved at skrive :help vimrc-intro
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 7.3: FULDFØRELSE
+
+
+ ** Kommandolinjefuldførelse med CTRL-D og <TAB> **
+
+ 1. Sørg for at Vim ikke er i kompatibel tilstand: :set nocp
+
+ 2. Se hvilke filer der er i mappen: :!ls eller :!dir
+
+ 3. Skriv begyndelsen af en kommando: :e
+
+ 4. Tryk på CTRL-D og Vim viser en liste over kommandoer der begynder med "e".
+
+ 5. Tryk på <TAB> og Vim vil fuldføre kommandonavnet til ":edit".
+
+ 6. Tilføj nu et mellemrum og begyndelsen af et eksisterende filnavn: :edit FIL
+
+ 7. Tryk på <TAB>. Vim fuldfører navnet (hvis det er unikt).
+
+BEMÆRK: Fuldførelse virker til mange kommandoer. Prøv blot at trykke på
+ CTRL-D og <TAB>. Det er særligt nyttigt til :help .
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ Lektion 7 OPSUMMERING
+
+
+ 1. Skriv :help eller tryk på <F1> eller <Help> for at åbne et hjælpevindue.
+
+ 2. Skriv :help kommando for at finde hjælp om kommando .
+
+ 3. Skriv CTRL-W CTRL-W for at hoppe til et andet vindue
+
+ 4. Skriv :q for at lukke hjælpevinduet
+
+ 5. Opret et vimrc-opstarts-script for at bevare dine foretrukne indstillinger.
+
+ 6. Når der skrives en :-kommando , så tryk på CTRL-D for at se
+ mulige fuldførelser. Tryk på <TAB> for at bruge en fuldførelse.
+
+
+
+
+
+
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ Det afslutter Vim-vejledningen. Det var meningen den skulle give et
+ kortfattet overblik af Vim-editoren, lige nok til at du kan bruge editoren
+ nogenlunde let. Den er langt fra komplet, da Vim har mange mange flere
+ kommandoer. Læs brugermanualen som det næste: ":help user-manual".
+
+ Denne bog anbefales, til yderligere læsning og studering:
+ Vim - Vi Improved - af Steve Oualline
+ Forlag: New Riders
+ Den første bog som helt er tilegnet Vim. Specielt nyttig for begyndere.
+ Der er mange eksempler og billeder.
+ Se http://iccf-holland.org/click5.html
+
+ Denne bog er ældre og mere om Vi end Vim, men anbefales også:
+ Learning the Vi Editor - af Linda Lamb
+ Forlag: O'Reilly & Associates Inc.
+ Det er en god bog til at komme til kende næsten alt hvad du vil gøre med Vi.
+ Den sjette udgave inkluderer også information om Vim.
+
+ Vejledningen blev skrevet af Michael C. Pierce og Robert K. Ware,
+ Colorado School of Mines med ideer af Charles Smith,
+ Colorado State University. E-mail: bware@mines.colorado.edu.
+
+ Ændret til Vim af Bram Moolenaar.
+
+ Oversat til dansk af scootergrisen.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/runtime/tutor/tutor.de b/runtime/tutor/tutor.de
index f3bd86c..7255aeb 100644
--- a/runtime/tutor/tutor.de
+++ b/runtime/tutor/tutor.de
@@ -41,7 +41,7 @@ Anmerkung: Immer, wenn Du Dir unsicher bist ber das, was Du getippt hast,
drcke <ESC> , um Dich in den Normalmodus zu begeben.
Dann gib das gewnschte Kommando noch einmal ein.
-Anmerkung: Die Cursor-Tasten sollten ebenfalls funktionieren. Aber wenn Du
+Anmerkung: Die Cursor-Tasten sollten ebenfalls funktionieren. Aber wenn Du
hjkl benutzt, wirst Du in der Lage sein, Dich sehr viel schneller
umherzubewegen, wenn Du Dich einmal daran gewhnt hast. Wirklich!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/runtime/tutor/tutor.de.utf-8 b/runtime/tutor/tutor.de.utf-8
index 799962c..fe7a590 100644
--- a/runtime/tutor/tutor.de.utf-8
+++ b/runtime/tutor/tutor.de.utf-8
@@ -41,7 +41,7 @@ Anmerkung: Immer, wenn Du Dir unsicher bist über das, was Du getippt hast,
drücke <ESC> , um Dich in den Normalmodus zu begeben.
Dann gib das gewünschte Kommando noch einmal ein.
-Anmerkung: Die Cursor-Tasten sollten ebenfalls funktionieren. Aber wenn Du
+Anmerkung: Die Cursor-Tasten sollten ebenfalls funktionieren. Aber wenn Du
hjkl benutzt, wirst Du in der Lage sein, Dich sehr viel schneller
umherzubewegen, wenn Du Dich einmal daran gewöhnt hast. Wirklich!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/runtime/tutor/tutor.es.utf-8 b/runtime/tutor/tutor.es.utf-8
index 49c9cdb..7ddb8d4 100644
--- a/runtime/tutor/tutor.es.utf-8
+++ b/runtime/tutor/tutor.es.utf-8
@@ -542,7 +542,7 @@ Nota: ¡Esto es muy útil en la detección de errores en un programa con
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lección 5.3: UN MANDATO DE ESCRITURA SELECTIVO
- ** Para guardar parte del fuchero escriba :#,# NOMBRE_DEL_FICHERO **
+ ** Para guardar parte del fichero escriba :#,# NOMBRE_DEL_FICHERO **
1. Escriba de nuevo, una vez más, :!dir o :!ls para obtener una lista
diff --git a/runtime/tutor/tutor.fr b/runtime/tutor/tutor.fr
index cdfdcd6..1dd2621 100644
--- a/runtime/tutor/tutor.fr
+++ b/runtime/tutor/tutor.fr
@@ -88,7 +88,7 @@ NOTE : :q! <Entre> annule tous les changements que vous avez faits. Dans
4. Rptez les tapes 2 4 jusqu' ce que la phrase soit correcte.
----> La vvache saut au-ddessus dde la luune.
+---> La vvache a saut au-ddessus dde la luune.
5. Maintenant que la ligne est correcte, passez la Leon 1.4.
@@ -1034,5 +1034,5 @@ NOTE : Le compltement fonctionne pour de nombreuses commandes. Essayez
Dernires mises jour par Dominique Pell.
E-mail : dominique.pelle@gmail.com
- Last Change : 2017 Jan 16
+ Last Change : 2017 Jun 30
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/runtime/tutor/tutor.ja.euc b/runtime/tutor/tutor.ja.euc
index 8cb63f2..0054b32 100644
--- a/runtime/tutor/tutor.ja.euc
+++ b/runtime/tutor/tutor.ja.euc
@@ -147,18 +147,18 @@ NOTE: ƤΥå̤ơФ褦ȤΤǤϤʤºݤˤäƤߤޤ礦
ޤ
2. ץץȤǤΥޥɤ򥿥פޤ: vim tutor <ENTER>
- 'vim' Vim ǥư륳ޥɡ'tutor' Խե
+ 'vim' Vim ǥư륳ޥɡ'tutor' Խե
̾ǤѹƤ褤եȤޤ礦
3. Υådzؤ褦ˡƥȤޤ
- 4. ѹե¸ޤ: :wq <ENTER>
+ 4. ѹե¸ޤ: :wq <ENTER>
5. ƥå 1 vimtutor λ vimtutor ٵưʲ
ؿʤߤޤ礦
6. ʾΥƥåפɤ򤷤Ǥ¹Ԥޤ礦
-
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
å 1
@@ -558,11 +558,12 @@ NOTE: εǽϳ̤פƤʤץǥХåΤˤȤƤΩ
1. ʲ ---> ȼ줿Ԥ˥ưޤ礦
- 2. :s/thee/the <ENTER> ȥפޤ礦ΥޥɤϤιԤǺǽ˸
- ĤäΤˤԤʤ뤳Ȥ˵Ĥޤ礦
+ 2. :s/thee/the <ENTER> ȥפޤ礦ΥޥɤϤιԤǺǽ˸
+ äΤˤԤ뤳Ȥ˵Ĥޤ礦
- 3. Ǥ :s/thee/the/g ȥפޤ礦Τִ뤳Ȥ̣ޤ
- ѹϤιԤǸĤäƤβսФƹԤʤޤ
+ 3. Ǥ :s/thee/the/g ȥפޤ礦ɲä g ե饰ϹΤִ
+ 뤳Ȥ̣ޤѹϤιԤǸĤäƤβսФƹԤ
+ ޤ
---> thee best time to see thee flowers is in thee spring.
@@ -638,8 +639,8 @@ NOTE: Ƥ : ޥɤ <ENTER> 򲡤ƽλʤФʤޤ
NOTE: Vim λե̾ TEST ȶ˵ưȡ¸
塼ȥꥢʣǤ夬ϤǤ
- 5. ˡΤ褦˥פƥեäޤ礦(MS-DOS): :!del TEST
- ⤷(Unix): :!rm TEST
+ 5. ˡΤ褦˥פƥեäޤ礦(Windows): :!del TEST
+ ⤷(Unix): :!rm TEST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -696,7 +697,7 @@ NOTE: ޥɤνϤɤ߹ळȤޤ㤨С
1. :!command ˤä ޥɤ¹Ԥޤ
褯Ȥ:
- (MS-DOS) (Unix)
+ (Windows) (Unix)
:!dir :!ls - ǥ쥯ȥΰ򸫤롣
:!del FILENAME :!rm FILENAME - ե롣
@@ -718,7 +719,7 @@ NOTE: ޥɤνϤɤ߹ळȤޤ㤨С
** o 򥿥פȡβιԤ⡼ɤޤ **
- 1. ʲ ---> ȼ줿Ԥ˥ưޤ礦
+ 1. ʲ ---> ȼ줿ǽιԤ˥ưޤ礦
2. o (ʸ) 򥿥פơβιԤ򳫤⡼ɤޤ
@@ -741,7 +742,7 @@ NOTE: ޥɤνϤɤ߹ळȤޤ㤨С
** μΰ֤ƥȤɲäˤ a ȥפޤ **
- 1. ---> Ǽ줿Ԥذưޤ礦
+ 1. ---> Ǽ줿ǽιԤذưޤ礦
2. e 򲡤 li νüޤǥưޤ
@@ -751,7 +752,7 @@ NOTE: ޥɤνϤɤ߹ळȤޤ㤨С
ޤ
5. e ȤäƼԴñذưƥå 3 4 򷫤֤ޤ
-
+
---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.
@@ -788,9 +789,9 @@ NOTE: ִ⡼ɤ⡼ɤ˻ƤޤƤΥפ줿ʸϴ¸ʸ
** ƥȤΥԡˤϥڥ졼 y 򡢥ڡȤˤ p Ȥޤ **
1. ---> ȼ줿Ԥذư "a)" θ֤Ƥޤ
-
+
2. v ǥӥ奢⡼ɤ򳫻Ϥ"first" μޤǥưޤ
-
+
3. y 򥿥פƶĴɽ줿ƥȤ yank (ԡ)ޤ
4. ιԤιޤǥưޤ: j$
@@ -810,7 +811,7 @@ NOTE: ִ⡼ɤ⡼ɤ˻ƤޤƤΥפ줿ʸϴ¸ʸ
** ִκݤʸ/ʸ̵뤹ˤϡץꤷޤ **
- 1. ͤϤ 'ignore' 򸡺ޤ礦: /ignore <ENTER>
+ 1. ͤϤ 'ignore' 򸡺ޤ礦: /ignore <ENTER>
n 򲡤Ʋ٤򷫤֤ޤ
2. ͤϤ 'ic' (Ignore Case ά) ץꤷޤ: :set ic
@@ -820,13 +821,13 @@ NOTE: ִ⡼ɤ⡼ɤ˻ƤޤƤΥפ줿ʸϴ¸ʸ
4. 'hlsearch' 'incsearch' ץꤷޤ礦: :set hls is
- 5. ޥɤϤơ뤫Ƥߤޤ礦: /ignore <ENTER>
+ 5. ޥɤϤơ뤫Ƥߤޤ礦: /ignore <ENTER>
6. ʸʸζ̵̤ˤˤϼͤϤޤ: :set noic
-NOTE: ޥåζĴɽˤϼͤϤޤ: :nohlsearch
+NOTE: ޥåζĴɽˤϼͤϤޤ: :nohlsearch
NOTE: 1Ĥθޥɤʸʸζ̤᤿ʤСե졼 \c
- Ѥޤ: /ignore\c <ENTER>
+ Ѥޤ: /ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
å 6
@@ -843,12 +844,12 @@ NOTE: 1Ĥθޥɤʸʸζ̤᤿ʤСե졼 \c
5. ʸ R 򥿥פִ⡼ɤꡢ<ESC>򲡤ȴ롣
6. ":set xxx" ȥפȥץ "xxx" ꤵ롣
- 'ic' 'ignorecase' ʸʸζ̤ʤ
+ 'ic' 'ignorecase' ʸʸζ̤ʤ
'is' 'incsearch' ե졼ʬޥåƤʬɽ
'hls' 'hlsearch' ޥå뤹٤Ĵɽ
ĹûɤΥץ̾ǤѤǤޤ
- 7. "no" Ϳץ̵ˤޤ: :set noic
+ 7. ץ̵ˤˤ "no" Ϳޤ: :set noic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
å 7.1: 饤إץޥ
@@ -884,7 +885,7 @@ NOTE: 1Ĥθޥɤʸʸζ̤᤿ʤСե졼 \c
1. "vimrc" եԽ򳫻Ϥ롣ϥƥ˰¸ޤ
:edit ~/.vimrc UNIX
- :edit $VIM/_vimrc MS-Windows
+ :edit $VIM/_vimrc Windows
2. ǥץ "vimrc" ɤ߹ߤޤ
:read $VIMRUNTIME/vimrc_example.vim
@@ -910,7 +911,7 @@ NOTE: 1Ĥθޥɤʸʸζ̤᤿ʤСե졼 \c
4. CTRL-D 򲡤 Vim "e" Ϥޤ륳ޥɤΰɽޤ
- 5. <TAB> 򲡤 Vim ":edit" Ȥޥ̾䴰ޤ
+ 5. d<TAB> ȥפ Vim ":edit" Ȥޥ̾䴰ޤ
6. ˶ȡ¸Υե̾λϤޤäޤ: :edit FIL
@@ -923,7 +924,7 @@ NOTE: 䴰¿Υޥɤưޤ CTRL-D <TAB> ƤߤƤ
å 7
- 1. إץɥ򳫤ˤ :help Ȥ뤫 <F1> ⤷ <Help> 򲡤
+ 1. إץɥ򳫤ˤ :help Ȥ뤫 <F1> ⤷ <HELP> 򲡤
2. ޥ(cmd)Υإפ򸡺ˤ :help cmd ȥפ롣
diff --git a/runtime/tutor/tutor.ja.sjis b/runtime/tutor/tutor.ja.sjis
index 1e70cbc..c722819 100644
--- a/runtime/tutor/tutor.ja.sjis
+++ b/runtime/tutor/tutor.ja.sjis
@@ -147,18 +147,18 @@ NOTE: SẴbXʂāAo悤Ƃ̂ł͂ȂۂɂĂ݂܂傤B
܂B
2. VFvvgł̃R}h^Cv܂: vim tutor <ENTER>
- 'vim' Vim GfB^NR}hA'tutor' ͕ҏWt@C
+ 'vim' Vim GfB^NR}hA'tutor' ͕ҏWt@C
OłBύXĂ悢t@Cg܂傤B
3. ÕbXŊw񂾂悤ɁAeLXg}A폜܂B
- 4. ύXt@Cɕۑ܂: :wq <ENTER>
+ 4. ύXt@Cɕۑ܂: :wq <ENTER>
5. Xebv 1 vimtutor Iꍇ vimtutor ēxNAȉ
v֐i݂܂傤B
6. ȏ̃Xebvǂŗłs܂傤B
-
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bX 1 v
@@ -558,11 +558,12 @@ NOTE: ̋@\͊ʂvĂȂvOfobÔɂƂĂ𗧂
1. ȉ ---> ƎꂽsɃJ[\ړ܂傤B
- 2. :s/thee/the <ENTER> ƃ^Cv܂傤B̃R}h͂̍sōŏɌ
- ‚̂ɂsȂ邱ƂɋC‚܂傤B
+ 2. :s/thee/the <ENTER> ƃ^Cv܂傤B̃R}h͂̍sōŏɌ
+ ̂ɂs邱ƂɋC‚܂傤B
- 3. ł :s/thee/the/g ƃ^Cv܂傤BsŜu邱ƂӖ܂B
- ̕ύX͂̍sŌ‚SẲӏɑ΂čsȂ܂B
+ 3. ł :s/thee/the/g ƃ^Cv܂傤Blj g tO͍sŜu
+ 邱ƂӖ܂B̕ύX͂̍sŌ‚SẲӏɑ΂čs
+ ܂B
---> thee best time to see thee flowers is in thee spring.
@@ -638,8 +639,8 @@ NOTE: SĂ : R}h <ENTER> ďIȂ΂Ȃ܂B
NOTE: Vim IAt@C TEST ƋɋNƁAۑ
`[gA̕łオ͂łB
- 5. ɁÂ悤Ƀ^Cvăt@C܂傤(MS-DOS): :!del TEST
- (Unix): :!rm TEST
+ 5. ɁÂ悤Ƀ^Cvăt@C܂傤(Windows): :!del TEST
+ (Unix): :!rm TEST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -696,7 +697,7 @@ NOTE: OR}h̏o͂ǂݍނƂo܂BႦ΁A
1. :!command ɂ OR}hs܂B
悭g:
- (MS-DOS) (Unix)
+ (Windows) (Unix)
:!dir :!ls - fBNg̈ꗗB
:!del FILENAME :!rm FILENAME - t@C폜B
@@ -718,7 +719,7 @@ NOTE: OR}h̏o͂ǂݍނƂo܂BႦ΁A
** o ^CvƁAJ[\̉̍sJA}[hɓ܂ **
- 1. ȉ ---> ƎꂽsɃJ[\ړ܂傤B
+ 1. ȉ ---> Ǝꂽŏ̍sɃJ[\ړ܂傤B
2. o () ^CvāAJ[\̉̍sJA}[hɓ܂B
@@ -741,7 +742,7 @@ NOTE: OR}h̏o͂ǂݍނƂo܂BႦ΁A
** J[\̎̈ʒueLXgljɂ a ƃ^Cv܂ **
- 1. J[\ ---> Ŏꂽsֈړ܂傤B
+ 1. J[\ ---> Ŏꂽŏ̍sֈړ܂傤B
2. e li ̏I[܂ŃJ[\ړ܂B
@@ -751,7 +752,7 @@ NOTE: OR}h̏o͂ǂݍނƂo܂BႦ΁A
܂B
5. e gĎ̕sSȒPֈړAXebv 3 4 JԂ܂B
-
+
---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.
@@ -788,9 +789,9 @@ NOTE: u[h͑}[hɎĂ܂ASẴ^Cvꂽ͊̕
** eLXg̃Rs[ɂ̓Iy[^ y Ay[Xgɂ p g܂ **
1. ---> ƎꂽsֈړAJ[\ "a)" ̌ɒuĂ܂B
-
+
2. v ŃrWA[hJnA"first" ̎O܂ŃJ[\ړ܂B
-
+
3. y ^Cvċ\ꂽeLXg yank (Rs[)܂B
4. ̍s̍s܂ŃJ[\ړ܂: j$
@@ -810,7 +811,7 @@ NOTE: u[h͑}[hɎĂ܂ASẴ^Cvꂽ͊̕
** u̍ۂɑ啶/𖳎ɂ́AIvVݒ肵܂ **
- 1. ̗lɓ͂ 'ignore' ܂傤: /ignore <ENTER>
+ 1. ̗lɓ͂ 'ignore' ܂傤: /ignore <ENTER>
n ĉxJԂ܂B
2. ̗lɓ͂ 'ic' (Ignore Case ̗) IvVݒ肵܂: :set ic
@@ -820,13 +821,13 @@ NOTE: u[h͑}[hɎĂ܂ASẴ^Cvꂽ͊̕
4. 'hlsearch' 'incsearch' IvVݒ肵܂傤: :set hls is
- 5. R}hē͂āAN邩Ă݂܂傤: /ignore <ENTER>
+ 5. R}hē͂āAN邩Ă݂܂傤: /ignore <ENTER>
6. 啶̋ʂ𖳌ɂɂ͎̗lɓ͂܂: :set noic
-NOTE: }b`̋\߂ɂ͎̗lɓ͂܂: :nohlsearch
+NOTE: }b`̋\߂ɂ͎̗lɓ͂܂: :nohlsearch
NOTE: 1‚̌R}h啶̋ʂ߂Ȃ΁At[Y \c
- gp܂: /ignore\c <ENTER>
+ gp܂: /ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bX 6 v
@@ -843,12 +844,12 @@ NOTE: 1‚̌R}h啶̋ʂ߂Ȃ΁At[Y \c
5. 啶 R ^Cvƒu[hɓA<ESC>ƔB
6. ":set xxx" ƃ^CvƃIvV "xxx" ݒ肳B
- 'ic' 'ignorecase' ɑ啶̋ʂȂ
+ 'ic' 'ignorecase' ɑ啶̋ʂȂ
'is' 'incsearch' t[Yɕ}b`Ă镔\
'hls' 'hlsearch' }b`邷ׂ\
AZAǂ̃IvVłgpł܂B
- 7. "no" t^AIvV𖳌ɂ܂: :set noic
+ 7. IvV𖳌ɂɂ "no" t^܂: :set noic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bX 7.1: ICwvR}h
@@ -884,7 +885,7 @@ NOTE: 1‚̌R}h啶̋ʂ߂Ȃ΁At[Y \c
1. "vimrc" t@C̕ҏWJnB̓VXeɈˑ܂B
:edit ~/.vimrc UNIX
- :edit $VIM/_vimrc MS-Windows
+ :edit $VIM/_vimrc Windows
2. ŃTv "vimrc" ǂݍ݂܂B
:read $VIMRUNTIME/vimrc_example.vim
@@ -910,7 +911,7 @@ NOTE: 1‚̌R}h啶̋ʂ߂Ȃ΁At[Y \c
4. CTRL-D Vim "e" n܂R}ḧꗗ\܂B
- 5. <TAB> Vim ":edit" ƂR}h⊮܂B
+ 5. d<TAB> ƃ^Cv Vim ":edit" ƂR}h⊮܂B
6. ɋ󔒂ƁÃt@C̎n܂܂: :edit FIL
@@ -923,7 +924,7 @@ NOTE: ⊮͑̃R}hœ삵܂B CTRL-D <TAB> Ă݂Ă
bX 7 v
- 1. wvEBhEJɂ :help Ƃ邩 <F1> <Help> B
+ 1. wvEBhEJɂ :help Ƃ邩 <F1> <HELP> B
2. R}h(cmd)̃wvɂ :help cmd ƃ^CvB
diff --git a/runtime/tutor/tutor.ja.utf-8 b/runtime/tutor/tutor.ja.utf-8
index fdca0eb..a1bb905 100644
--- a/runtime/tutor/tutor.ja.utf-8
+++ b/runtime/tutor/tutor.ja.utf-8
@@ -147,18 +147,18 @@ NOTE: 全てのレッスンを通じて、覚えようとするのではなく
ません。
2. シェルプロンプトでこのコマンドをタイプします: vim tutor <ENTER>
- 'vim'が Vim エディタを起動するコマンド、'tutor' は編集したいファイルの
+ 'vim' が Vim エディタを起動するコマンド、'tutor' は編集したいファイルの
名前です。変更してもよいファイルを使いましょう。
3. 前のレッスンで学んだように、テキストを挿入、削除します。
- 4. 変更をファイルに保存します: :wq <ENTER>
+ 4. 変更をファイルに保存します: :wq <ENTER>
5. ステップ 1 で vimtutor を終了した場合は vimtutor を再度起動し、以下の
要約へ進みましょう。
6. 以上のステップを読んで理解した上でこれを実行しましょう。
-
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
レッスン 1 要約
@@ -558,11 +558,12 @@ NOTE: この機能は括弧が一致していないプログラムをデバッ
1. 以下の ---> と示された行にカーソルを移動しましょう。
- 2. :s/thee/the <ENTER> とタイプしましょう。このコマンドはその行で最初に見
- つかったものにだけ行なわれることに気をつけましょう。
+ 2. :s/thee/the <ENTER> とタイプしましょう。このコマンドはその行で最初に見つ
+ かったものにだけ行われることに気をつけましょう。
- 3. では :s/thee/the/g とタイプしましょう。行全体を置換することを意味します。
- この変更はその行で見つかった全ての箇所に対して行なわれます。
+ 3. では :s/thee/the/g とタイプしましょう。追加した g フラグは行全体を置換す
+ ることを意味します。この変更はその行で見つかった全ての箇所に対して行われ
+ ます。
---> thee best time to see thee flowers is in thee spring.
@@ -638,8 +639,8 @@ NOTE: 全ての : コマンドは <ENTER> を押して終了しなければな
NOTE: ここで Vim を終了し、ファイル名 TEST と共に起動すると、保存した時の
チュートリアルの複製ができ上がるはずです。
- 5. さらに、次のようにタイプしてファイルを消しましょう(MS-DOS): :!del TEST
- もしくは(Unix): :!rm TEST
+ 5. さらに、次のようにタイプしてファイルを消しましょう(Windows): :!del TEST
+ もしくは(Unix): :!rm TEST
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -696,7 +697,7 @@ NOTE: 外部コマンドの出力を読み込むことも出来ます。例え
1. :!command によって 外部コマンドを実行します。
よく使う例:
- (MS-DOS) (Unix)
+ (Windows) (Unix)
:!dir :!ls - ディレクトリ内の一覧を見る。
:!del FILENAME :!rm FILENAME - ファイルを削除する。
@@ -718,7 +719,7 @@ NOTE: 外部コマンドの出力を読み込むことも出来ます。例え
** o をタイプすると、カーソルの下の行が開き、挿入モードに入ります **
- 1. 以下の ---> と示された行にカーソルを移動しましょう。
+ 1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
2. o (小文字) をタイプして、カーソルの下の行を開き、挿入モードに入ります。
@@ -741,7 +742,7 @@ NOTE: 外部コマンドの出力を読み込むことも出来ます。例え
** カーソルの次の位置からテキストを追加するには a とタイプします **
- 1. カーソルを ---> で示された行へ移動しましょう。
+ 1. カーソルを ---> で示された最初の行へ移動しましょう。
2. e を押して li の終端部までカーソルを移動します。
@@ -751,7 +752,7 @@ NOTE: 外部コマンドの出力を読み込むことも出来ます。例え
します。
5. e を使って次の不完全な単語へ移動し、ステップ 3 と 4 を繰り返します。
-
+
---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.
@@ -788,9 +789,9 @@ NOTE: 置換モードは挿入モードに似ていますが、全てのタイ
** テキストのコピーにはオペレータ y を、ペーストには p を使います **
1. ---> と示された行へ移動し、カーソルを "a)" の後に置いておきます。
-
+
2. v でビジュアルモードを開始し、"first" の手前までカーソルを移動します。
-
+
3. y をタイプして強調表示されたテキストを yank (コピー)します。
4. 次の行の行末までカーソルを移動します: j$
@@ -810,7 +811,7 @@ NOTE: 置換モードは挿入モードに似ていますが、全てのタイ
** 検索や置換の際に大文字/小文字を無視するには、オプションを設定します **
- 1. 次の様に入力して 'ignore' を検索しましょう: /ignore <ENTER>
+ 1. 次の様に入力して 'ignore' を検索しましょう: /ignore <ENTER>
n を押して何度か検索を繰り返します。
2. 次の様に入力して 'ic' (Ignore Case の略) オプションを設定します: :set ic
@@ -820,13 +821,13 @@ NOTE: 置換モードは挿入モードに似ていますが、全てのタイ
4. 'hlsearch' と 'incsearch' オプションを設定しましょう: :set hls is
- 5. 検索コマンドを再入力して、何が起こるか見てみましょう: /ignore <ENTER>
+ 5. 検索コマンドを再入力して、何が起こるか見てみましょう: /ignore <ENTER>
6. 大文字小文字の区別を無効にするには次の様に入力します: :set noic
-NOTE: マッチの強調表示をやめるには次の様に入力します: :nohlsearch
+NOTE: マッチの強調表示をやめるには次の様に入力します: :nohlsearch
NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたいならば、フレーズに \c
- を使用します: /ignore\c <ENTER>
+ を使用します: /ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
レッスン 6 要約
@@ -843,12 +844,12 @@ NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたい
5. 大文字の R をタイプすると置換モードに入り、<ESC>を押すと抜ける。
6. ":set xxx" とタイプするとオプション "xxx" が設定される。
- 'ic' 'ignorecase' 検索時に大文字小文字の区別しない
+ 'ic' 'ignorecase' 検索時に大文字小文字の区別しない
'is' 'incsearch' 検索フレーズに部分マッチしている部分を表示する
'hls' 'hlsearch' マッチするすべを強調表示する
長い方、短い方、どちらのオプション名でも使用できます。
- 7. "no" を付与し、オプションを無効にします: :set noic
+ 7. オプションを無効にするには "no" を付与します: :set noic
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
レッスン 7.1: オンラインヘルプコマンド
@@ -884,7 +885,7 @@ NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたい
1. "vimrc" ファイルの編集を開始する。これはシステムに依存します。
:edit ~/.vimrc UNIX 向け
- :edit $VIM/_vimrc MS-Windows 向け
+ :edit $VIM/_vimrc Windows 向け
2. ここでサンプルの "vimrc" を読み込みます。
:read $VIMRUNTIME/vimrc_example.vim
@@ -910,7 +911,7 @@ NOTE: 1つの検索コマンドだけ大文字小文字の区別をやめたい
4. CTRL-D を押すと Vim は "e" から始まるコマンドの一覧を表示します。
- 5. <TAB> を押すと Vim は ":edit" というコマンド名を補完します。
+ 5. d<TAB> とタイプすると Vim は ":edit" というコマンド名を補完します。
6. さらに空白と、既存のファイル名の始まりを加えます: :edit FIL
@@ -923,7 +924,7 @@ NOTE: 補完は多くのコマンドで動作します。そして CTRL-D と <T
レッスン 7 要約
- 1. ヘルプウィンドウを開くには :help とするか <F1> もしくは <Help> を押す。
+ 1. ヘルプウィンドウを開くには :help とするか <F1> もしくは <HELP> を押す。
2. コマンド(cmd)のヘルプを検索するには :help cmd とタイプする。
diff --git a/runtime/tutor/tutor.lv b/runtime/tutor/tutor.lv.utf-8
index 8f7ab56..8f7ab56 100644
--- a/runtime/tutor/tutor.lv
+++ b/runtime/tutor/tutor.lv.utf-8
diff --git a/runtime/tutor/tutor.utf-8 b/runtime/tutor/tutor.utf-8
index 2afefbb..c076e3b 100644
--- a/runtime/tutor/tutor.utf-8
+++ b/runtime/tutor/tutor.utf-8
@@ -19,7 +19,7 @@
properly. If you only read the text, you will forget the commands!
Now, make sure that your Caps-Lock key is NOT depressed and press
- the j key enough times to move the cursor so that Lesson 1.1
+ the j key enough times to move the cursor so that lesson 1.1
completely fills the screen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1.1: MOVING THE CURSOR
@@ -36,7 +36,7 @@
2. Hold down the down key (j) until it repeats.
Now you know how to move to the next lesson.
- 3. Using the down key, move to Lesson 1.2.
+ 3. Using the down key, move to lesson 1.2.
NOTE: If you are ever unsure about something you typed, press <ESC> to place
you in Normal mode. Then retype the command you wanted.
@@ -64,7 +64,7 @@ NOTE: The cursor keys should also work. But using hjkl you will be able to
NOTE: :q! <ENTER> discards any changes you made. In a few lessons you
will learn how to save the changes to a file.
- 5. Move the cursor down to Lesson 1.3.
+ 5. Move the cursor down to lesson 1.3.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -84,7 +84,7 @@ NOTE: :q! <ENTER> discards any changes you made. In a few lessons you
---> The ccow jumpedd ovverr thhe mooon.
- 5. Now that the line is correct, go on to Lesson 1.4.
+ 5. Now that the line is correct, go on to lesson 1.4.
NOTE: As you go through this tutor, do not try to memorize, learn by usage.
@@ -126,7 +126,7 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
3. As the text has been appended press <ESC> to return to Normal mode.
- 4. Move the cursor to the second line marked ---> and repeat
+ 4. Move the cursor to the second line marked ---> and repeat
steps 2 and 3 to correct this sentence.
---> There is some text missing from th
@@ -152,13 +152,13 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
3. Insert and delete text as you learned in the previous lessons.
- 4. Save the file with changes and exit Vim with: :wq <ENTER>
+ 4. Save the file with changes and exit Vim with: :wq <ENTER>
5. If you have quit vimtutor in step 1 restart the vimtutor and move down to
the following summary.
6. After reading the above steps and understanding them: do it.
-
+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 1 SUMMARY
@@ -180,7 +180,7 @@ NOTE: As you go through this tutor, do not try to memorize, learn by usage.
NOTE: Pressing <ESC> will place you in Normal mode or will cancel
an unwanted and partially completed command.
-Now continue with Lesson 2.
+Now continue with lesson 2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 2.1: DELETION COMMANDS
@@ -202,7 +202,7 @@ Now continue with Lesson 2.
---> There are a some words fun that don't belong paper in this sentence.
- 5. Repeat steps 3 and 4 until the sentence is correct and go to Lesson 2.2.
+ 5. Repeat steps 3 and 4 until the sentence is correct and go to lesson 2.2.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -222,7 +222,7 @@ Now continue with Lesson 2.
---> Somebody typed the end of this line twice. end of this line twice.
- 5. Move on to Lesson 2.3 to understand what is happening.
+ 5. Move on to lesson 2.3 to understand what is happening.
@@ -257,7 +257,7 @@ NOTE: Pressing just the motion while in Normal mode without an operator will
** Typing a number before a motion repeats it that many times. **
- 1. Move the cursor to the start of the line marked ---> below.
+ 1. Move the cursor to the start of the line below marked --->.
2. Type 2w to move the cursor two words forward.
@@ -269,7 +269,7 @@ NOTE: Pressing just the motion while in Normal mode without an operator will
---> This is just a line with words you can move around in.
- 6. Move on to Lesson 2.5.
+ 6. Move on to lesson 2.5.
@@ -286,10 +286,10 @@ NOTE: Pressing just the motion while in Normal mode without an operator will
1. Move the cursor to the first UPPER CASE word in the line marked --->.
- 2. Type d2w to delete the two UPPER CASE words
+ 2. Type d2w to delete the two UPPER CASE words.
3. Repeat steps 1 and 2 with a different count to delete the consecutive
- UPPER CASE words with one command
+ UPPER CASE words with one command.
---> this ABC DE line FGHI JK LMN OP of words is Q RS TUV cleaned up.
@@ -338,7 +338,7 @@ NOTE: Pressing just the motion while in Normal mode without an operator will
---> Fiix the errors oon thhis line and reeplace them witth undo.
- 8. These are very useful commands. Now move on to the Lesson 2 Summary.
+ 8. These are very useful commands. Now move on to the lesson 2 Summary.
@@ -372,7 +372,7 @@ NOTE: Pressing just the motion while in Normal mode without an operator will
** Type p to put previously deleted text after the cursor. **
- 1. Move the cursor to the first ---> line below.
+ 1. Move the cursor to the first line below marked --->.
2. Type dd to delete the line and store it in a Vim register.
@@ -406,7 +406,7 @@ NOTE: Pressing just the motion while in Normal mode without an operator will
---> Whan this lime was tuoed in, someone presswd some wrojg keys!
---> When this line was typed in, someone pressed some wrong keys!
- 5. Now move on to Lesson 3.3.
+ 5. Now move on to lesson 3.3.
NOTE: Remember that you should be learning by doing, not memorization.
@@ -447,7 +447,7 @@ Notice that ce deletes the word and places you in Insert mode.
2. The motions are the same, such as w (word) and $ (end of line).
- 3. Move to the first line below marked --->.
+ 3. Move the cursor to the first line below marked --->.
4. Move the cursor to the first error.
@@ -558,7 +558,7 @@ NOTE: This is very useful in debugging a program with unmatched parentheses!
1. Move the cursor to the line below marked --->.
- 2. Type :s/thee/the <ENTER> . Note that this command only changes the
+ 2. Type :s/thee/the <ENTER> . Note that this command only changes the
first occurrence of "thee" in the line.
3. Now type :s/thee/the/g . Adding the g flag means to substitute
@@ -623,7 +623,7 @@ NOTE: All : commands must be finished by hitting <ENTER>
Lesson 5.2: MORE ON WRITING FILES
- ** To save the changes made to the text, type :w FILENAME. **
+ ** To save the changes made to the text, type :w FILENAME **
1. Type :!dir or :!ls to get a listing of your directory.
You already know you must hit <ENTER> after this.
@@ -638,7 +638,7 @@ NOTE: All : commands must be finished by hitting <ENTER>
NOTE: If you were to exit Vim and start it again with vim TEST , the file
would be an exact copy of the tutor when you saved it.
- 5. Now remove the file by typing (MS-DOS): :!del TEST
+ 5. Now remove the file by typing (Windows): :!del TEST
or (Unix): :!rm TEST
@@ -673,7 +673,7 @@ NOTE: Pressing v starts Visual selection. You can move the cursor around
1. Place the cursor just above this line.
-NOTE: After executing Step 2 you will see text from Lesson 5.3. Then move
+NOTE: After executing Step 2 you will see text from lesson 5.3. Then move
DOWN to see this lesson again.
2. Now retrieve your TEST file using the command :r TEST where TEST is
@@ -681,7 +681,7 @@ NOTE: After executing Step 2 you will see text from Lesson 5.3. Then move
The file you retrieve is placed below the cursor line.
3. To verify that a file was retrieved, cursor back and notice that there
- are now two copies of Lesson 5.3, the original and the file version.
+ are now two copies of lesson 5.3, the original and the file version.
NOTE: You can also read the output of an external command. For example,
:r !ls reads the output of the ls command and puts it below the
@@ -695,7 +695,7 @@ NOTE: You can also read the output of an external command. For example,
1. :!command executes an external command.
Some useful examples are:
- (MS-DOS) (Unix)
+ (Windows) (Unix)
:!dir :!ls - shows a directory listing.
:!del FILENAME :!rm FILENAME - removes file FILENAME.
@@ -717,7 +717,7 @@ NOTE: You can also read the output of an external command. For example,
** Type o to open a line below the cursor and place you in Insert mode. **
- 1. Move the cursor to the line below marked --->.
+ 1. Move the cursor to the first line below marked --->.
2. Type the lowercase letter o to open up a line BELOW the cursor and place
you in Insert mode.
@@ -740,8 +740,8 @@ NOTE: You can also read the output of an external command. For example,
** Type a to insert text AFTER the cursor. **
- 1. Move the cursor to the start of the line below marked --->.
-
+ 1. Move the cursor to the start of the first line below marked --->.
+
2. Press e until the cursor is on the end of li .
3. Type an a (lowercase) to append text AFTER the cursor.
@@ -750,7 +750,7 @@ NOTE: You can also read the output of an external command. For example,
mode.
5. Use e to move to the next incomplete word and repeat steps 3 and 4.
-
+
---> This li will allow you to pract appendi text to a line.
---> This line will allow you to practice appending text to a line.
@@ -786,10 +786,10 @@ NOTE: Replace mode is like Insert mode, but every typed character deletes an
** Use the y operator to copy text and p to paste it **
- 1. Go to the line marked with ---> below and place the cursor after "a)".
-
+ 1. Move to the line below marked ---> and place the cursor after "a)".
+
2. Start Visual mode with v and move the cursor to just before "first".
-
+
3. Type y to yank (copy) the highlighted text.
4. Move the cursor to the end of the next line: j$
@@ -802,14 +802,14 @@ NOTE: Replace mode is like Insert mode, but every typed character deletes an
---> a) this is the first item.
b)
- NOTE: you can also use y as an operator; yw yanks one word.
+ NOTE: You can also use y as an operator; yw yanks one word.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6.5: SET OPTION
** Set an option so a search or substitute ignores case **
- 1. Search for 'ignore' by entering: /ignore <ENTER>
+ 1. Search for 'ignore' by entering: /ignore <ENTER>
Repeat several times by pressing n .
2. Set the 'ic' (Ignore case) option by entering: :set ic
@@ -823,9 +823,9 @@ NOTE: Replace mode is like Insert mode, but every typed character deletes an
6. To disable ignoring case enter: :set noic
-NOTE: To remove the highlighting of matches enter: :nohlsearch
+NOTE: To remove the highlighting of matches enter: :nohlsearch
NOTE: If you want to ignore case for just one search command, use \c
- in the phrase: /ignore\c <ENTER>
+ in the phrase: /ignore\c <ENTER>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Lesson 6 SUMMARY
@@ -883,7 +883,7 @@ NOTE: If you want to ignore case for just one search command, use \c
1. Start editing the "vimrc" file. This depends on your system:
:e ~/.vimrc for Unix
- :e $VIM/_vimrc for MS-Windows
+ :e $VIM/_vimrc for Windows
2. Now read the example "vimrc" file contents:
:r $VIMRUNTIME/vimrc_example.vim
@@ -909,7 +909,7 @@ NOTE: If you want to ignore case for just one search command, use \c
4. Press CTRL-D and Vim will show a list of commands that start with "e".
- 5. Press <TAB> and Vim will complete the command name to ":edit".
+ 5. Type d<TAB> and Vim will complete the command name to ":edit".
6. Now add a space and the start of an existing file name: :edit FIL
@@ -922,13 +922,13 @@ NOTE: Completion works for many commands. Just try pressing CTRL-D and
Lesson 7 SUMMARY
- 1. Type :help or press <F1> or <Help> to open a help window.
+ 1. Type :help or press <F1> or <HELP> to open a help window.
2. Type :help cmd to find help on cmd .
- 3. Type CTRL-W CTRL-W to jump to another window
+ 3. Type CTRL-W CTRL-W to jump to another window.
- 4. Type :q to close the help window
+ 4. Type :q to close the help window.
5. Create a vimrc startup script to keep your preferred settings.
diff --git a/runtime/tutor/tutor.vim b/runtime/tutor/tutor.vim
index f8a5496..f450e77 100644
--- a/runtime/tutor/tutor.vim
+++ b/runtime/tutor/tutor.vim
@@ -59,7 +59,7 @@ if s:ext =~? '\.en'
let s:ext = ""
endif
-" The japanese tutor is available in two encodings, guess which one to use
+" The Japanese tutor is available in three encodings, guess which one to use
" The "sjis" one is actually "cp932", it doesn't matter for this text.
if s:ext =~? '\.ja'
if &enc =~ "euc"
@@ -69,7 +69,7 @@ if s:ext =~? '\.ja'
endif
endif
-" The korean tutor is available in two encodings, guess which one to use
+" The Korean tutor is available in two encodings, guess which one to use
if s:ext =~? '\.ko'
if &enc != "utf-8"
let s:ext = ".ko.euc"
@@ -169,15 +169,6 @@ if s:ext =~? '\.hr'
endif
endif
-" Esperanto is only available in utf-8
-if s:ext =~? '\.eo'
- let s:ext = ".eo.utf-8"
-endif
-" Vietnamese is only available in utf-8
-if s:ext =~? '\.vi'
- let s:ext = ".vi.utf-8"
-endif
-
" If 'encoding' is utf-8 s:ext must end in utf-8.
if &enc == 'utf-8' && s:ext !~ '\.utf-8'
let s:ext .= '.utf-8'
@@ -190,6 +181,9 @@ let s:tutorxx = $VIMRUNTIME . s:tutorfile . s:ext
" 3. Finding the file:
if filereadable(s:tutorxx)
let $TUTOR = s:tutorxx
+elseif s:ext !~ '\.utf-8' && filereadable(s:tutorxx . ".utf-8")
+ " Fallback to utf-8 if available.
+ let $TUTOR = s:tutorxx . ".utf-8"
else
let $TUTOR = $VIMRUNTIME . s:tutorfile
echo "The file " . s:tutorxx . " does not exist.\n"
diff --git a/runtime/tutor/tutor.zh.big5 b/runtime/tutor/tutor.zh.big5
index 9da8b1a..710926a 100644
--- a/runtime/tutor/tutor.zh.big5
+++ b/runtime/tutor/tutor.zh.big5
@@ -35,7 +35,7 @@
---> {bzӤwgǷ|p󲾰ʨU@aC
- 3. {bШϥΤUANвʨĤGC
+ 3. {bШϥΤUANвʨĤ@ĤG`C
ܡJpGzTwzҫUrAЫU<ESC>^쥿`(Normal)ҦC
MAqLJzQnROC
diff --git a/runtime/vim.desktop b/runtime/vim.desktop
index d4ab844..863cd24 100644
--- a/runtime/vim.desktop
+++ b/runtime/vim.desktop
@@ -1,7 +1,9 @@
[Desktop Entry]
Name=Vim
GenericName=Text Editor
+GenericName[da]=Teksteditor
GenericName[de]=Texteditor
+GenericName[pl]=Edytor tekstu
Comment=Edit text files
Comment[af]=Redigeer tekslêers
Comment[am]=የጽሑፍ ፋይሎች ያስተካክሉ
@@ -14,7 +16,7 @@ Comment[bs]=Izmijeni tekstualne datoteke
Comment[ca]=Edita fitxers de text
Comment[cs]=Úprava textových souborů
Comment[cy]=Golygu ffeiliau testun
-Comment[da]=Redigér tekstfiler
+Comment[da]=Rediger tekstfiler
Comment[de]=Textdateien bearbeiten
Comment[el]=Επεξεργασία αρχείων κειμένου
Comment[en_CA]=Edit text files
@@ -50,7 +52,7 @@ Comment[nn]=Rediger tekstfiler
Comment[no]=Rediger tekstfiler
Comment[or]=ପାଠ୍ଯ ଫାଇଲଗୁଡ଼ିକୁ ସମ୍ପାଦନ କରନ୍ତୁ
Comment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ
-Comment[pl]=Edytor plików tekstowych
+Comment[pl]=Edytuj pliki tekstowe
Comment[pt]=Editar ficheiros de texto
Comment[pt_BR]=Edite arquivos de texto
Comment[ro]=Editare fişiere text
diff --git a/src/INSTALLpc.txt b/src/INSTALLpc.txt
index fe1c9b7..73d13dc 100644
--- a/src/INSTALLpc.txt
+++ b/src/INSTALLpc.txt
@@ -22,23 +22,24 @@ any faster, but you can edit files larger than 2 Gbyte.
Contents:
1. Microsoft Visual C++
-2. Using MinGW
-3. Cygwin
-4. Borland
-5. Cross compiling for Win32 from a Linux machine
-6. Building with Python support
-7. Building with Python3 support
-8. Building with Racket or MzScheme support
-9. Building with Lua support
-10. Building with Perl support
-11. Building with Ruby support
-12. Building with Tcl support
-13. Building with Terminal support
-14. Building with DirectX (DirectWrite) support
-15. Windows 3.1
-16. MS-DOS
-
-17. Installing after building from sources
+2. Using MSYS2 with MinGW
+3. Using MinGW
+4. Cygwin
+5. Borland
+6. Cross compiling for Win32 from a Linux machine
+7. Building with Python support
+8. Building with Python3 support
+9. Building with Racket or MzScheme support
+10. Building with Lua support
+11. Building with Perl support
+12. Building with Ruby support
+13. Building with Tcl support
+14. Building with Terminal support
+15. Building with DirectX (DirectWrite) support
+16. Windows 3.1
+17. MS-DOS
+
+18. Installing after building from sources
The currently recommended way (that means it has been verified to work) is
@@ -261,8 +262,87 @@ Instructions for integrating the Platform SDK into VC Express:
http://msdn.microsoft.com/vstudio/express/visualc/usingpsdk/default.aspx
+2. MSYS2 with MinGW
+===================
-2. MinGW
+2.1. Setup the basic msys2 environment
+
+Go to the official page of MSYS2: https://www.msys2.org
+Download an installer:
+
+* msys2-x86_64-YYYYMMDD.exe for 64-bit Windows
+ (Even if you want to build 32-bit Vim)
+* msys2-i686-YYYYMMDD.exe for 32-bit Windows
+
+Execute the installer and follow the instructions to update basic packages.
+At the end keep the checkbox checked to run msys2 now. If needed, you can
+open the window from the start menu, MSYS2 64 bit / MSYS2 MSYS
+
+Execute:
+ $ pacman -Syu
+
+And restart MSYS2 window (select "MSYS2 MSYS" icon from the Start Menu).
+Then execute:
+ $ pacman -Su
+
+If pacman complains that `catgets` and `libcatgets` conflict with another
+package, select `y` to remove them.
+
+
+2.2. Install additional packages for building Vim
+
+The following package groups are required for building Vim:
+
+* base-devel
+* mingw-w64-i686-toolchain (for building 32-bit Vim)
+* mingw-w64-x86_64-toolchain (for building 64-bit Vim)
+
+Use the following command to install them:
+
+ $ pacman -S base-devel mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain
+
+Or you can use the `pacboy` command to avoid long package names:
+
+ $ pacboy -S base-devel: toolchain:m
+
+(See `pacboy help` for the help.)
+
+
+2.3. Keep the build environment up-to-date
+
+After you have installed the build environment, you may want to keep it
+up-to-date (E.g. always use the latest GCC).
+In that case, you just need to execute the command:
+ $ pacman -Syu
+
+
+# Build Vim
+
+Select one of the following icon from the Start Menu:
+
+* MSYS2 MinGW 32-bit (To build 32-bit versions of Vim)
+* MSYS2 MinGW 64-bit (To build 64-bit versions of Vim)
+
+Go to the source directory of Vim, then execute the make command. E.g.:
+
+ make -f Make_ming.mak
+ make -f Make_ming.mak GUI=no
+ make -f Make_ming.mak GUI=no DEBUG=yes
+
+NOTE: you can't execute the vim.exe in the MSYS console, open a normal Windows
+console for that. You need to set $PATH to be able to build there, e.g.:
+
+ set PATH=c:\msys64\mingw32\bin;c:\msys64\usr\bin;%PATH%
+
+This command is in msys32.bat. Or or the 64 bit compiler use msys64.bat:
+
+ set PATH=c:\msys64\mingw64\bin;c:\msys64\usr\bin;%PATH%
+
+If you have msys64 in another location you will need to adjust the paths for
+that.
+
+
+3. MinGW
========
(written by Ron Aaron: <ronaharon@yahoo.com>)
@@ -344,7 +424,7 @@ If you want National Language Support, read the file src/po/README_mingw.txt.
You need to uncomment lines in Make_ming.mak to have NLS defined.
-3. Cygwin
+4. Cygwin
=========
Use Make_cyg.mak with Cygwin's GCC. See
@@ -356,14 +436,14 @@ running on Unix), while with Make_cyg.mak you get a Windows application (like
with the other makefiles).
-4. Borland
+5. Borland
===========
Use Make_bc5.mak with Borland C++ 5.x. See
http://users.skynet.be/antoine.mechelynck/vim/compile.htm
-5. Cross compiling for Win32 from a Linux machine
+6. Cross compiling for Win32 from a Linux machine
=================================================
[Update of 1) needs to be verified]
@@ -383,7 +463,7 @@ your Linux (or other unix) box. To do this, you need to follow a few steps:
Now you have created the Windows binary from your Linux box! Have fun...
-6. Building with Python support
+7. Building with Python support
===============================
For building with MSVC 2008 the "Windows Installer" from www.python.org
@@ -435,7 +515,7 @@ And if you use msys2 to build python support (as one line):
You will end up with a Python-enabled, Win32 version. Enjoy!
-7. Building with Python3 support
+8. Building with Python3 support
================================
For building with MSVC 2008 the "Windows Installer" from www.python.org
@@ -466,7 +546,7 @@ When using msys2 and link with Python3 bundled with msys2 (as one line):
(This is for 64-bit builds. For 32-bit builds, replace mingw64 with mingw32.)
-8. Building with Racket or MzScheme support
+9. Building with Racket or MzScheme support
========================================
1) Building with Racket support (newest)
@@ -556,7 +636,7 @@ After a successful build, these dlls can be freely removed, leaving them in
-9. Building with Lua support
+10. Building with Lua support
============================
Vim with Lua support can be built with either MSVC or MinGW (or maybe Cygwin).
@@ -611,7 +691,7 @@ Or when using Cygwin (as one line) (untested):
LUA=/cygdrive/c/projects/lua53 DYNAMIC_LUA=yes LUA_VER=53
-10. Building with Perl support
+11. Building with Perl support
==============================
Vim with Perl support can be built with either MSVC or MinGW (or Cygwin).
@@ -637,7 +717,7 @@ Or when using MinGW (as one line):
PERL=C:/Perl DYNAMIC_PERL=yes PERL_VER=522
-11. Building with Ruby support
+12. Building with Ruby support
==============================
Vim with Ruby support can be built with either MSVC or MinGW (or Cygwin).
@@ -745,7 +825,7 @@ Ruby 2.1 or later. (Default is 0x501.)
-12. Building with Tcl support
+13. Building with Tcl support
=============================
Vim with Tcl support can be built with either MSVC or MinGW (or Cygwin).
@@ -777,7 +857,7 @@ Or when using MinGW (as one line):
TCL=C:/Tcl86 DYNAMIC_TCL=yes TCL_VER=86 TCL_VER_LONG=8.6
-13. Building with Terminal support
+14. Building with Terminal support
==================================
Vim with Terminal support can be built with either MSVC, MinGW or Cygwin.
@@ -793,7 +873,7 @@ Or when using MinGW:
mingw32-make -f Make_ming.mak TERMINAL=yes
-14. Building with DirectX (DirectWrite) support
+15. Building with DirectX (DirectWrite) support
===============================================
Vim with DirectX (DirectWrite) support can be built with either MSVC or MinGW.
@@ -827,20 +907,20 @@ Just set DIRECTX to yes:
mingw32-make -f Make_ming.mak DIRECTX=yes
-15. Windows 3.1x
+16. Windows 3.1x
================
The Windows 3.1x support was removed in patch 7.4.1364.
-16. MS-DOS
+17. MS-DOS
==========
The MS-DOS support was removed in patch 7.4.1399. Only very old Vim versions
work on MS-DOS because of the limited amount of memory available.
-17. Installing after building from sources
+18. Installing after building from sources
==========================================
[provided by Michael Soyka, updated by Ken Takata]
diff --git a/src/Make_all.mak b/src/Make_all.mak
new file mode 100644
index 0000000..9831f7b
--- /dev/null
+++ b/src/Make_all.mak
@@ -0,0 +1,204 @@
+#
+# Common Makefile, defines the list of tests to run.
+#
+
+# Individual tests, including the ones part of test_alot
+NEW_TESTS = \
+ test_arglist \
+ test_arabic \
+ test_assert \
+ test_assign \
+ test_autochdir \
+ test_autocmd \
+ test_autoload \
+ test_backspace_opt \
+ test_blockedit \
+ test_breakindent \
+ test_bufline \
+ test_bufwintabinfo \
+ test_cd \
+ test_cdo \
+ test_changedtick \
+ test_changelist \
+ test_channel \
+ test_charsearch \
+ test_charsearch_utf8 \
+ test_cindent \
+ test_clientserver \
+ test_close_count \
+ test_cmdline \
+ test_command_count \
+ test_comparators \
+ test_compiler \
+ test_crypt \
+ test_cscope \
+ test_cursor_func \
+ test_curswant \
+ test_delete \
+ test_diffmode \
+ test_digraph \
+ test_display \
+ test_edit \
+ test_erasebackword \
+ test_escaped_glob \
+ test_eval_stuff \
+ test_ex_undo \
+ test_ex_z \
+ test_exit \
+ test_exec_while_if \
+ test_execute_func \
+ test_exists \
+ test_exists_autocmd \
+ test_expand \
+ test_expand_dllpath \
+ test_expr \
+ test_expr_utf8 \
+ test_farsi \
+ test_feedkeys \
+ test_file_perm \
+ test_file_size \
+ test_fileformat \
+ test_filetype \
+ test_filter_cmd \
+ test_filter_map \
+ test_find_complete \
+ test_findfile \
+ test_fixeol \
+ test_float_func \
+ test_fnameescape \
+ test_fnamemodify \
+ test_fold \
+ test_functions \
+ test_ga \
+ test_getcwd \
+ test_getvar \
+ test_gf \
+ test_glob2regpat \
+ test_global \
+ test_gn \
+ test_goto \
+ test_gui \
+ test_gui_init \
+ test_hardcopy \
+ test_help \
+ test_help_tagjump \
+ test_hide \
+ test_highlight \
+ test_history \
+ test_hlsearch \
+ test_iminsert \
+ test_increment \
+ test_increment_dbcs \
+ test_ins_complete \
+ test_job_fails \
+ test_join \
+ test_json \
+ test_jumplist \
+ test_jumps \
+ test_lambda \
+ test_langmap \
+ test_largefile \
+ test_let \
+ test_lineending \
+ test_lispwords \
+ test_listchars \
+ test_listdict \
+ test_listlbr \
+ test_listlbr_utf8 \
+ test_lua \
+ test_makeencoding \
+ test_man \
+ test_maparg \
+ test_mapping \
+ test_marks \
+ test_match \
+ test_matchadd_conceal \
+ test_matchadd_conceal_utf8 \
+ test_menu \
+ test_messages \
+ test_mksession \
+ test_mksession_utf8 \
+ test_modeline \
+ test_nested_function \
+ test_netbeans \
+ test_normal \
+ test_number \
+ test_options \
+ test_packadd \
+ test_partial \
+ test_paste \
+ test_perl \
+ test_plus_arg_edit \
+ test_popup \
+ test_preview \
+ test_profile \
+ test_prompt_buffer \
+ test_put \
+ test_python2 \
+ test_python3 \
+ test_pyx2 \
+ test_pyx3 \
+ test_quickfix \
+ test_quotestar \
+ test_recover \
+ test_regex_char_classes \
+ test_regexp_latin \
+ test_regexp_utf8 \
+ test_registers \
+ test_reltime \
+ test_retab \
+ test_ruby \
+ test_scroll_opt \
+ test_scrollbind \
+ test_search \
+ test_searchpos \
+ test_set \
+ test_sha256 \
+ test_signs \
+ test_smartindent \
+ test_sort \
+ test_source_utf8 \
+ test_spell \
+ test_startup \
+ test_startup_utf8 \
+ test_stat \
+ test_statusline \
+ test_substitute \
+ test_swap \
+ test_syn_attr \
+ test_syntax \
+ test_system \
+ test_tab \
+ test_tabline \
+ test_tabpage \
+ test_tagcase \
+ test_tagjump \
+ test_taglist \
+ test_tcl \
+ test_terminal \
+ test_terminal_fail \
+ test_textformat \
+ test_textobjects \
+ test_timers \
+ test_true_false \
+ test_undo \
+ test_unlet \
+ test_usercommands \
+ test_utf8 \
+ test_utf8_comparisons \
+ test_vartabs \
+ test_viminfo \
+ test_vimscript \
+ test_virtualedit \
+ test_visual \
+ test_winbar \
+ test_winbuf_close \
+ test_window_cmd \
+ test_window_id \
+ test_windows_home \
+ test_wordcount \
+ test_writefile \
+ test_xxd \
+ test_alot_latin \
+ test_alot_utf8 \
+ test_alot
diff --git a/src/Make_cyg_ming.mak b/src/Make_cyg_ming.mak
index cdec101..16cd712 100644
--- a/src/Make_cyg_ming.mak
+++ b/src/Make_cyg_ming.mak
@@ -75,9 +75,10 @@ POSTSCRIPT=no
# Set to yes to enable OLE support.
OLE=no
-# Set the default $(WINVER) to make it work with WinXP.
+# Set the default $(WINVER). Use 0x0501 to make it work with WinXP.
ifndef WINVER
-WINVER = 0x0501
+# WINVER = 0x0501
+WINVER = 0x0600
endif
# Set to yes to enable Cscope support.
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index 8cb443c..f329033 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -693,6 +693,8 @@ CFLAGS = $(CFLAGS) /Zl /MTd
! endif
!endif # DEBUG
+!include Make_all.mak
+
INCL = vim.h alloc.h arabic.h ascii.h ex_cmds.h farsi.h feature.h globals.h \
keymap.h macros.h option.h os_dos.h os_win32.h proto.h regexp.h \
spell.h structs.h term.h beval.h $(NBDEBUG_INCL)
@@ -1296,6 +1298,14 @@ testclean:
$(MAKE) /NOLOGO -f Make_dos.mak clean
cd ..
+$(NEW_TESTS):
+ cd testdir
+ - if exist $@.res del $@.res
+ $(MAKE) /NOLOGO -f Make_dos.mak nolog
+ $(MAKE) /NOLOGO -f Make_dos.mak $@.res
+ $(MAKE) /NOLOGO -f Make_dos.mak report
+ cd ..
+
###########################################################################
# Create a default rule for transforming .c files to .obj files in $(OUTDIR)
diff --git a/src/Makefile b/src/Makefile
index ca97254..f2fafa4 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1511,6 +1511,12 @@ DEST_MAN_TOP = $(DESTDIR)$(MANDIR)
# directory first.
# FreeBSD uses ".../man/xx.ISO8859-1/man1" for latin1, use that one too.
DEST_MAN = $(DEST_MAN_TOP)$(MAN1DIR)
+DEST_MAN_DA = $(DEST_MAN_TOP)/da$(MAN1DIR)
+DEST_MAN_DA_I = $(DEST_MAN_TOP)/da.ISO8859-1$(MAN1DIR)
+DEST_MAN_DA_U = $(DEST_MAN_TOP)/da.UTF-8$(MAN1DIR)
+DEST_MAN_DE = $(DEST_MAN_TOP)/de$(MAN1DIR)
+DEST_MAN_DE_I = $(DEST_MAN_TOP)/de.ISO8859-1$(MAN1DIR)
+DEST_MAN_DE_U = $(DEST_MAN_TOP)/de.UTF-8$(MAN1DIR)
DEST_MAN_FR = $(DEST_MAN_TOP)/fr$(MAN1DIR)
DEST_MAN_FR_I = $(DEST_MAN_TOP)/fr.ISO8859-1$(MAN1DIR)
DEST_MAN_FR_U = $(DEST_MAN_TOP)/fr.UTF-8$(MAN1DIR)
@@ -1524,6 +1530,9 @@ DEST_MAN_PL_U = $(DEST_MAN_TOP)/pl.UTF-8$(MAN1DIR)
DEST_MAN_RU = $(DEST_MAN_TOP)/ru.KOI8-R$(MAN1DIR)
DEST_MAN_RU_U = $(DEST_MAN_TOP)/ru.UTF-8$(MAN1DIR)
+# The list of tests is common to all systems.
+include Make_all.mak
+
# BASIC_SRC: files that are always used
# GUI_SRC: extra GUI files for current configuration
# ALL_GUI_SRC: all GUI files for Unix
@@ -2119,207 +2128,13 @@ test1 \
test52 test59 \
test64 test69 \
test70 test72 \
- test85 test86 test87 test88 \
+ test86 test87 test88 \
test94 test95 test99 test108:
cd testdir; rm -f $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
# Run individual NEW style test.
# These do not depend on the executable, compile it when needed.
-test_arglist \
- test_arabic \
- test_assert \
- test_assign \
- test_autochdir \
- test_autocmd \
- test_autoload \
- test_backspace_opt \
- test_blockedit \
- test_breakindent \
- test_bufline \
- test_bufwintabinfo \
- test_cd \
- test_cdo \
- test_changedtick \
- test_changelist \
- test_channel \
- test_charsearch \
- test_charsearch_utf8 \
- test_cindent \
- test_clientserver \
- test_close_count \
- test_cmdline \
- test_command_count \
- test_comparators \
- test_compiler \
- test_crypt \
- test_cscope \
- test_cursor_func \
- test_curswant \
- test_delete \
- test_diffmode \
- test_digraph \
- test_display \
- test_edit \
- test_erasebackword \
- test_escaped_glob \
- test_eval_stuff \
- test_ex_undo \
- test_ex_z \
- test_exit \
- test_exec_while_if \
- test_execute_func \
- test_exists \
- test_exists_autocmd \
- test_expand \
- test_expand_dllpath \
- test_expr \
- test_expr_utf8 \
- test_farsi \
- test_feedkeys \
- test_file_perm \
- test_file_size \
- test_fileformat \
- test_filetype \
- test_filter_cmd \
- test_filter_map \
- test_find_complete \
- test_findfile \
- test_fixeol \
- test_float_func \
- test_fnameescape \
- test_fnamemodify \
- test_fold \
- test_functions \
- test_ga \
- test_getcwd \
- test_getvar \
- test_gf \
- test_glob2regpat \
- test_global \
- test_gn \
- test_goto \
- test_gui \
- test_gui_init \
- test_hardcopy \
- test_help \
- test_help_tagjump \
- test_hide \
- test_highlight \
- test_history \
- test_hlsearch \
- test_iminsert \
- test_increment \
- test_increment_dbcs \
- test_ins_complete \
- test_job_fails \
- test_join \
- test_json \
- test_jumplist \
- test_jumps \
- test_lambda \
- test_langmap \
- test_largefile \
- test_let \
- test_lineending \
- test_lispwords \
- test_listchars \
- test_listdict \
- test_listlbr \
- test_listlbr_utf8 \
- test_lua \
- test_makeencoding \
- test_man \
- test_maparg \
- test_mapping \
- test_marks \
- test_match \
- test_matchadd_conceal \
- test_matchadd_conceal_utf8 \
- test_menu \
- test_messages \
- test_mksession \
- test_mksession_utf8 \
- test_nested_function \
- test_netbeans \
- test_normal \
- test_number \
- test_options \
- test_packadd \
- test_partial \
- test_paste \
- test_perl \
- test_plus_arg_edit \
- test_popup \
- test_preview \
- test_profile \
- test_prompt_buffer \
- test_put \
- test_python2 \
- test_python3 \
- test_pyx2 \
- test_pyx3 \
- test_quickfix \
- test_quotestar \
- test_recover \
- test_regex_char_classes \
- test_regexp_latin \
- test_regexp_utf8 \
- test_registers \
- test_reltime \
- test_retab \
- test_ruby \
- test_scroll_opt \
- test_scrollbind \
- test_search \
- test_searchpos \
- test_set \
- test_sha256 \
- test_signs \
- test_smartindent \
- test_sort \
- test_source_utf8 \
- test_spell \
- test_startup \
- test_startup_utf8 \
- test_stat \
- test_statusline \
- test_substitute \
- test_swap \
- test_syn_attr \
- test_syntax \
- test_system \
- test_tabline \
- test_tabpage \
- test_tagcase \
- test_tagjump \
- test_taglist \
- test_tcl \
- test_terminal \
- test_terminal_fail \
- test_textformat \
- test_textobjects \
- test_timers \
- test_true_false \
- test_undo \
- test_unlet \
- test_usercommands \
- test_utf8 \
- test_utf8_comparisons \
- test_viminfo \
- test_vimscript \
- test_virtualedit \
- test_visual \
- test_winbar \
- test_winbuf_close \
- test_window_cmd \
- test_window_id \
- test_windows_home \
- test_wordcount \
- test_writefile \
- test_xxd \
- test_alot_latin \
- test_alot_utf8 \
- test_alot:
+$(NEW_TESTS):
cd testdir; rm -f $@.res test.log messages; $(MAKE) -f Makefile $@.res VIMPROG=../$(VIMTESTTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE)
@if test -f testdir/test.log; then \
cat testdir/test.log; \
@@ -2572,6 +2387,12 @@ installtools: $(TOOLS) $(DESTDIR)$(exec_prefix) $(DEST_BIN) \
# install the language specific files for tools, if they were unpacked
install-tool-languages:
+ -$(SHELL) ./installman.sh xxd $(DEST_MAN_DA) "-da" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh xxd $(DEST_MAN_DA_I) "-da" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh xxd $(DEST_MAN_DA_U) "-da.UTF-8" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh xxd $(DEST_MAN_DE) "-de" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh xxd $(DEST_MAN_DE_I) "-de" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh xxd $(DEST_MAN_DE_U) "-de.UTF-8" $(INSTALLMANARGS)
-$(SHELL) ./installman.sh xxd $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS)
-$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS)
-$(SHELL) ./installman.sh xxd $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS)
@@ -2587,6 +2408,12 @@ install-tool-languages:
# install the language specific files, if they were unpacked
install-languages: languages $(DEST_LANG) $(DEST_KMAP)
+ -$(SHELL) ./installman.sh install $(DEST_MAN_DA) "-da" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh install $(DEST_MAN_DA_I) "-da" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh install $(DEST_MAN_DA_U) "-da.UTF-8" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh install $(DEST_MAN_DE) "-de" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh install $(DEST_MAN_DE_I) "-de" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh install $(DEST_MAN_DE_U) "-de.UTF-8" $(INSTALLMANARGS)
-$(SHELL) ./installman.sh install $(DEST_MAN_FR) "-fr" $(INSTALLMANARGS)
-$(SHELL) ./installman.sh install $(DEST_MAN_FR_I) "-fr" $(INSTALLMANARGS)
-$(SHELL) ./installman.sh install $(DEST_MAN_FR_U) "-fr.UTF-8" $(INSTALLMANARGS)
@@ -2600,6 +2427,18 @@ install-languages: languages $(DEST_LANG) $(DEST_KMAP)
-$(SHELL) ./installman.sh install $(DEST_MAN_RU) "-ru" $(INSTALLMANARGS)
-$(SHELL) ./installman.sh install $(DEST_MAN_RU_U) "-ru.UTF-8" $(INSTALLMANARGS)
-$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
+ $(DEST_MAN_DA) $(INSTALLMLARGS)
+ -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
+ $(DEST_MAN_DA_I) $(INSTALLMLARGS)
+ -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
+ $(DEST_MAN_DA_U) $(INSTALLMLARGS)
+ -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
+ $(DEST_MAN_DE) $(INSTALLMLARGS)
+ -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
+ $(DEST_MAN_DE_I) $(INSTALLMLARGS)
+ -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
+ $(DEST_MAN_DE_U) $(INSTALLMLARGS)
+ -$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
$(DEST_MAN_FR) $(INSTALLMLARGS)
-$(SHELL) ./installml.sh install "$(GUI_MAN_TARGETS)" \
$(DEST_MAN_FR_I) $(INSTALLMLARGS)
@@ -2773,6 +2612,12 @@ uninstall: uninstall_runtime
# Note: the "rmdir" will fail if any files were added after "make install"
uninstall_runtime:
-$(SHELL) ./installman.sh uninstall $(DEST_MAN) "" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh uninstall $(DEST_MAN_DA) "" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh uninstall $(DEST_MAN_DA_I) "" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh uninstall $(DEST_MAN_DA_U) "" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh uninstall $(DEST_MAN_DE) "" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh uninstall $(DEST_MAN_DE_I) "" $(INSTALLMANARGS)
+ -$(SHELL) ./installman.sh uninstall $(DEST_MAN_DE_U) "" $(INSTALLMANARGS)
-$(SHELL) ./installman.sh uninstall $(DEST_MAN_FR) "" $(INSTALLMANARGS)
-$(SHELL) ./installman.sh uninstall $(DEST_MAN_FR_I) "" $(INSTALLMANARGS)
-$(SHELL) ./installman.sh uninstall $(DEST_MAN_FR_U) "" $(INSTALLMANARGS)
@@ -2788,6 +2633,18 @@ uninstall_runtime:
-$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
$(DEST_MAN) $(INSTALLMLARGS)
-$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+ $(DEST_MAN_DA) $(INSTALLMLARGS)
+ -$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+ $(DEST_MAN_DA_I) $(INSTALLMLARGS)
+ -$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+ $(DEST_MAN_DA_U) $(INSTALLMLARGS)
+ -$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+ $(DEST_MAN_DE) $(INSTALLMLARGS)
+ -$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+ $(DEST_MAN_DE_I) $(INSTALLMLARGS)
+ -$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
+ $(DEST_MAN_DE_U) $(INSTALLMLARGS)
+ -$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
$(DEST_MAN_FR) $(INSTALLMLARGS)
-$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
$(DEST_MAN_FR_I) $(INSTALLMLARGS)
@@ -2812,6 +2669,8 @@ uninstall_runtime:
-$(SHELL) ./installml.sh uninstall "$(GUI_MAN_TARGETS)" \
$(DEST_MAN_RU_U) $(INSTALLMLARGS)
-rm -f $(DEST_MAN)/xxd.1
+ -rm -f $(DEST_MAN_DA)/xxd.1 $(DEST_MAN_DA_I)/xxd.1 $(DEST_MAN_DA_U)/xxd.1
+ -rm -f $(DEST_MAN_DE)/xxd.1 $(DEST_MAN_DE_I)/xxd.1 $(DEST_MAN_DE_U)/xxd.1
-rm -f $(DEST_MAN_FR)/xxd.1 $(DEST_MAN_FR_I)/xxd.1 $(DEST_MAN_FR_U)/xxd.1
-rm -f $(DEST_MAN_IT)/xxd.1 $(DEST_MAN_IT_I)/xxd.1 $(DEST_MAN_IT_U)/xxd.1
-rm -f $(DEST_MAN_JA_U)/xxd.1
@@ -2872,7 +2731,7 @@ SHADOWDIR = shadow
shadow: runtime pixmaps
$(MKDIR_P) $(SHADOWDIR)
- cd $(SHADOWDIR); ln -s ../*.[chm] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../libvterm ../vimtutor ../gvimtutor ../install-sh .
+ cd $(SHADOWDIR); ln -s ../*.[chm] ../*.in ../*.sh ../*.xs ../*.xbm ../gui_gtk_res.xml ../toolcheck ../proto ../libvterm ../vimtutor ../gvimtutor ../install-sh ../Make_all.mak .
mkdir $(SHADOWDIR)/auto
cd $(SHADOWDIR)/auto; ln -s ../../auto/configure .
$(MKDIR_P) $(SHADOWDIR)/po
diff --git a/src/auto/configure b/src/auto/configure
index 1628b94..de1fd60 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -4466,6 +4466,8 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $fail_if_missing" >&5
$as_echo "$fail_if_missing" >&6; }
+with_x_arg="$with_x"
+
if test -z "$CFLAGS"; then
CFLAGS="-O"
test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall"
@@ -9003,6 +9005,10 @@ $as_echo "$ac_cv_small_wchar_t" >&6; }
fi
fi
+if test "x$with_x" = xno -a "x$with_x_arg" = xyes; then
+ as_fn_error $? "could not configure X" "$LINENO" 5
+fi
+
test "x$with_x" = xno -a "x$MACOS_X" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-gui argument" >&5
diff --git a/src/beval.c b/src/beval.c
index 4ceddca..74750a2 100644
--- a/src/beval.c
+++ b/src/beval.c
@@ -124,6 +124,11 @@ get_beval_info(
*lnump = lnum;
*textp = lbuf;
*colp = col;
+#ifdef FEAT_VARTABS
+ if (beval->vts)
+ vim_free(beval->vts);
+ beval->vts = tabstop_copy(wp->w_buffer->b_p_vts_array);
+#endif
beval->ts = wp->w_buffer->b_p_ts;
return OK;
}
diff --git a/src/beval.h b/src/beval.h
index f4d1d80..49ba05b 100644
--- a/src/beval.h
+++ b/src/beval.h
@@ -71,7 +71,10 @@ typedef struct BalloonEvalStruct
void *clientData; /* For callback */
#endif
- int ts; /* tabstop setting for this buffer */
+ int ts; // tabstop setting for this buffer
+#ifdef FEAT_VARTABS
+ int *vts; // vartabstop setting for this buffer
+#endif
char_u *msg;
} BalloonEval;
diff --git a/src/buffer.c b/src/buffer.c
index 254aad4..1f1833f 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -271,7 +271,7 @@ open_buffer(
/*
* Set/reset the Changed flag first, autocmds may change the buffer.
* Apply the automatic commands, before processing the modelines.
- * So the modelines have priority over auto commands.
+ * So the modelines have priority over autocommands.
*/
/* When reading stdin, the buffer contents always needs writing, so set
* the changed flag. Unless in readonly mode: "ls | gview -".
@@ -2159,6 +2159,19 @@ free_buf_options(
clear_string_option(&buf->b_p_fo);
clear_string_option(&buf->b_p_flp);
clear_string_option(&buf->b_p_isk);
+#ifdef FEAT_VARTABS
+ clear_string_option(&buf->b_p_vsts);
+ if (buf->b_p_vsts_nopaste)
+ vim_free(buf->b_p_vsts_nopaste);
+ buf->b_p_vsts_nopaste = NULL;
+ if (buf->b_p_vsts_array)
+ vim_free(buf->b_p_vsts_array);
+ buf->b_p_vsts_array = NULL;
+ clear_string_option(&buf->b_p_vts);
+ if (buf->b_p_vts_array)
+ vim_free(buf->b_p_vts_array);
+ buf->b_p_vts_array = NULL;
+#endif
#ifdef FEAT_KEYMAP
clear_string_option(&buf->b_p_keymap);
keymap_clear(&buf->b_kmap_ga);
@@ -5190,7 +5203,7 @@ ex_buffer_all(exarg_T *eap)
win_close(wp, FALSE);
wpnext = firstwin; /* just in case an autocommand does
something strange with windows */
- tpnext = first_tabpage; /* start all over...*/
+ tpnext = first_tabpage; /* start all over... */
open_wins = 0;
}
else
@@ -5650,8 +5663,8 @@ bt_prompt(buf_T *buf)
}
/*
- * Return TRUE if "buf" is a "nofile", "acwrite" or "terminal" buffer.
- * This means the buffer name is not a file name.
+ * Return TRUE if "buf" is a "nofile", "acwrite", "terminal" or "prompt"
+ * buffer. This means the buffer name is not a file name.
*/
int
bt_nofile(buf_T *buf)
@@ -5663,7 +5676,8 @@ bt_nofile(buf_T *buf)
}
/*
- * Return TRUE if "buf" is a "nowrite", "nofile" or "terminal" buffer.
+ * Return TRUE if "buf" is a "nowrite", "nofile", "terminal" or "prompt"
+ * buffer.
*/
int
bt_dontwrite(buf_T *buf)
diff --git a/src/channel.c b/src/channel.c
index 1363ee9..de2f50d 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -2809,7 +2809,7 @@ channel_part_info(channel_T *channel, dict_T *dict, char *name, ch_part_T part)
status = "buffered";
else
status = "closed";
- dict_add_nr_str(dict, namebuf, 0, (char_u *)status);
+ dict_add_string(dict, namebuf, (char_u *)status);
STRCPY(namebuf + tail, "mode");
switch (chanpart->ch_mode)
@@ -2819,7 +2819,7 @@ channel_part_info(channel_T *channel, dict_T *dict, char *name, ch_part_T part)
case MODE_JSON: s = "JSON"; break;
case MODE_JS: s = "JS"; break;
}
- dict_add_nr_str(dict, namebuf, 0, (char_u *)s);
+ dict_add_string(dict, namebuf, (char_u *)s);
STRCPY(namebuf + tail, "io");
if (part == PART_SOCK)
@@ -2832,22 +2832,22 @@ channel_part_info(channel_T *channel, dict_T *dict, char *name, ch_part_T part)
case JIO_BUFFER: s = "buffer"; break;
case JIO_OUT: s = "out"; break;
}
- dict_add_nr_str(dict, namebuf, 0, (char_u *)s);
+ dict_add_string(dict, namebuf, (char_u *)s);
STRCPY(namebuf + tail, "timeout");
- dict_add_nr_str(dict, namebuf, chanpart->ch_timeout, NULL);
+ dict_add_number(dict, namebuf, chanpart->ch_timeout);
}
void
channel_info(channel_T *channel, dict_T *dict)
{
- dict_add_nr_str(dict, "id", channel->ch_id, NULL);
- dict_add_nr_str(dict, "status", 0, (char_u *)channel_status(channel, -1));
+ dict_add_number(dict, "id", channel->ch_id);
+ dict_add_string(dict, "status", (char_u *)channel_status(channel, -1));
if (channel->ch_hostname != NULL)
{
- dict_add_nr_str(dict, "hostname", 0, (char_u *)channel->ch_hostname);
- dict_add_nr_str(dict, "port", channel->ch_port, NULL);
+ dict_add_string(dict, "hostname", (char_u *)channel->ch_hostname);
+ dict_add_number(dict, "port", channel->ch_port);
channel_part_info(channel, dict, "sock", PART_SOCK);
}
else
@@ -5737,12 +5737,11 @@ job_info(job_T *job, dict_T *dict)
list_T *l;
int i;
- dict_add_nr_str(dict, "status", 0L, (char_u *)job_status(job));
+ dict_add_string(dict, "status", (char_u *)job_status(job));
item = dictitem_alloc((char_u *)"channel");
if (item == NULL)
return;
- item->di_tv.v_lock = 0;
item->di_tv.v_type = VAR_CHANNEL;
item->di_tv.vval.v_channel = job->jv_channel;
if (job->jv_channel != NULL)
@@ -5755,15 +5754,13 @@ job_info(job_T *job, dict_T *dict)
#else
nr = job->jv_proc_info.dwProcessId;
#endif
- dict_add_nr_str(dict, "process", nr, NULL);
- dict_add_nr_str(dict, "tty_in", 0L,
- job->jv_tty_in != NULL ? job->jv_tty_in : (char_u *)"");
- dict_add_nr_str(dict, "tty_out", 0L,
- job->jv_tty_out != NULL ? job->jv_tty_out : (char_u *)"");
-
- dict_add_nr_str(dict, "exitval", job->jv_exitval, NULL);
- dict_add_nr_str(dict, "exit_cb", 0L, job->jv_exit_cb);
- dict_add_nr_str(dict, "stoponexit", 0L, job->jv_stoponexit);
+ dict_add_number(dict, "process", nr);
+ dict_add_string(dict, "tty_in", job->jv_tty_in);
+ dict_add_string(dict, "tty_out", job->jv_tty_out);
+
+ dict_add_number(dict, "exitval", job->jv_exitval);
+ dict_add_string(dict, "exit_cb", job->jv_exit_cb);
+ dict_add_string(dict, "stoponexit", job->jv_stoponexit);
l = list_alloc();
if (l != NULL)
diff --git a/src/charset.c b/src/charset.c
index 179fc89..a481688 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -812,7 +812,16 @@ vim_strnsize(char_u *s, int len)
* Also see getvcol() below.
*/
-#define RET_WIN_BUF_CHARTABSIZE(wp, buf, p, col) \
+#ifdef FEAT_VARTABS
+# define RET_WIN_BUF_CHARTABSIZE(wp, buf, p, col) \
+ if (*(p) == TAB && (!(wp)->w_p_list || lcs_tab1)) \
+ { \
+ return tabstop_padding(col, (buf)->b_p_ts, (buf)->b_p_vts_array); \
+ } \
+ else \
+ return ptr2cells(p);
+#else
+# define RET_WIN_BUF_CHARTABSIZE(wp, buf, p, col) \
if (*(p) == TAB && (!(wp)->w_p_list || lcs_tab1)) \
{ \
int ts; \
@@ -821,6 +830,7 @@ vim_strnsize(char_u *s, int len)
} \
else \
return ptr2cells(p);
+#endif
int
chartabsize(char_u *p, colnr_T col)
@@ -1221,8 +1231,13 @@ win_nolbr_chartabsize(
if (*s == TAB && (!wp->w_p_list || lcs_tab1))
{
+# ifdef FEAT_VARTABS
+ return tabstop_padding(col, wp->w_buffer->b_p_ts,
+ wp->w_buffer->b_p_vts_array);
+# else
n = wp->w_buffer->b_p_ts;
return (int)(n - (col % n));
+# endif
}
n = ptr2cells(s);
/* Add one cell for a double-width character in the last column of the
@@ -1282,6 +1297,9 @@ getvcol(
char_u *line; /* start of the line */
int incr;
int head;
+#ifdef FEAT_VARTABS
+ int *vts = wp->w_buffer->b_p_vts_array;
+#endif
int ts = wp->w_buffer->b_p_ts;
int c;
@@ -1332,7 +1350,11 @@ getvcol(
}
/* A tab gets expanded, depending on the current column */
if (c == TAB)
+#ifdef FEAT_VARTABS
+ incr = tabstop_padding(vcol, ts, vts);
+#else
incr = ts - (vcol % ts);
+#endif
else
{
#ifdef FEAT_MBYTE
diff --git a/src/configure.ac b/src/configure.ac
index 107c170..0d8ea32 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -72,6 +72,9 @@ AC_ARG_ENABLE(fail_if_missing,
[fail_if_missing="no"])
AC_MSG_RESULT($fail_if_missing)
+dnl Keep original value to check later.
+with_x_arg="$with_x"
+
dnl Set default value for CFLAGS if none is defined or it's empty
if test -z "$CFLAGS"; then
CFLAGS="-O"
@@ -2283,6 +2286,11 @@ else
fi
fi
+dnl Check if --with-x was given but it doesn't work.
+if test "x$with_x" = xno -a "x$with_x_arg" = xyes; then
+ AC_MSG_ERROR([could not configure X])
+fi
+
test "x$with_x" = xno -a "x$MACOS_X" != "xyes" -a "x$QNX" != "xyes" && enable_gui=no
AC_MSG_CHECKING(--enable-gui argument)
diff --git a/src/dict.c b/src/dict.c
index 5506978..c359e6f 100644
--- a/src/dict.c
+++ b/src/dict.c
@@ -188,7 +188,8 @@ dict_free_items(int copyID)
/*
* Allocate a Dictionary item.
* The "key" is copied to the new item.
- * Note that the value of the item "di_tv" still needs to be initialized!
+ * Note that the type and value of the item "di_tv" still needs to be
+ * initialized!
* Returns NULL when out of memory.
*/
dictitem_T *
@@ -201,6 +202,7 @@ dictitem_alloc(char_u *key)
{
STRCPY(di->di_key, key);
di->di_flags = DI_FLAGS_ALLOC;
+ di->di_tv.v_lock = 0;
}
return di;
}
@@ -327,33 +329,41 @@ dict_add(dict_T *d, dictitem_T *item)
}
/*
- * Add a number or string entry to dictionary "d".
- * When "str" is NULL use number "nr", otherwise use "str".
+ * Add a number entry to dictionary "d".
* Returns FAIL when out of memory and when key already exists.
*/
int
-dict_add_nr_str(
- dict_T *d,
- char *key,
- varnumber_T nr,
- char_u *str)
+dict_add_number(dict_T *d, char *key, varnumber_T nr)
{
dictitem_T *item;
item = dictitem_alloc((char_u *)key);
if (item == NULL)
return FAIL;
- item->di_tv.v_lock = 0;
- if (str == NULL)
- {
- item->di_tv.v_type = VAR_NUMBER;
- item->di_tv.vval.v_number = nr;
- }
- else
+ item->di_tv.v_type = VAR_NUMBER;
+ item->di_tv.vval.v_number = nr;
+ if (dict_add(d, item) == FAIL)
{
- item->di_tv.v_type = VAR_STRING;
- item->di_tv.vval.v_string = vim_strsave(str);
+ dictitem_free(item);
+ return FAIL;
}
+ return OK;
+}
+
+/*
+ * Add a string entry to dictionary "d".
+ * Returns FAIL when out of memory and when key already exists.
+ */
+ int
+dict_add_string(dict_T *d, char *key, char_u *str)
+{
+ dictitem_T *item;
+
+ item = dictitem_alloc((char_u *)key);
+ if (item == NULL)
+ return FAIL;
+ item->di_tv.v_type = VAR_STRING;
+ item->di_tv.vval.v_string = str != NULL ? vim_strsave(str) : NULL;
if (dict_add(d, item) == FAIL)
{
dictitem_free(item);
@@ -374,7 +384,6 @@ dict_add_list(dict_T *d, char *key, list_T *list)
item = dictitem_alloc((char_u *)key);
if (item == NULL)
return FAIL;
- item->di_tv.v_lock = 0;
item->di_tv.v_type = VAR_LIST;
item->di_tv.vval.v_list = list;
++list->lv_refcount;
@@ -398,7 +407,6 @@ dict_add_dict(dict_T *d, char *key, dict_T *dict)
item = dictitem_alloc((char_u *)key);
if (item == NULL)
return FAIL;
- item->di_tv.v_lock = 0;
item->di_tv.v_type = VAR_DICT;
item->di_tv.vval.v_dict = dict;
++dict->dv_refcount;
diff --git a/src/dosinst.c b/src/dosinst.c
index e5d1f75..64edbbd 100644
--- a/src/dosinst.c
+++ b/src/dosinst.c
@@ -1878,7 +1878,7 @@ install_start_menu(int idx)
add_pathsep(shell_folder_path);
strcat(shell_folder_path, "Vim Online.url");
if (!WritePrivateProfileString("InternetShortcut", "URL",
- "http://vim.sf.net/", shell_folder_path))
+ "https://www.vim.org/", shell_folder_path))
{
printf("Creating the Vim online URL failed\n");
return;
diff --git a/src/edit.c b/src/edit.c
index 6a636b9..b0b44e6 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -463,7 +463,6 @@ edit(
{
ResetRedobuff();
AppendNumberToRedobuff(count);
-#ifdef FEAT_VREPLACE
if (cmdchar == 'V' || cmdchar == 'v')
{
/* "gR" or "gr" command */
@@ -471,7 +470,6 @@ edit(
AppendCharToRedobuff((cmdchar == 'v') ? 'r' : 'R');
}
else
-#endif
{
if (cmdchar == K_PS)
AppendCharToRedobuff('a');
@@ -497,7 +495,6 @@ edit(
#endif
State = REPLACE;
}
-#ifdef FEAT_VREPLACE
else if (cmdchar == 'V' || cmdchar == 'v')
{
State = VREPLACE;
@@ -505,7 +502,6 @@ edit(
orig_line_count = curbuf->b_ml.ml_line_count;
vr_lines_changed = 1;
}
-#endif
else
State = INSERT;
@@ -742,7 +738,14 @@ edit(
mincol = curwin->w_wcol;
validate_cursor_col();
- if ((int)curwin->w_wcol < mincol - curbuf->b_p_ts
+ if (
+#ifdef FEAT_VARTABS
+ (int)curwin->w_wcol < mincol - tabstop_at(
+ get_nolist_virtcol(), curbuf->b_p_ts,
+ curbuf->b_p_vts_array)
+#else
+ (int)curwin->w_wcol < mincol - curbuf->b_p_ts
+#endif
&& curwin->w_wrow == W_WINROW(curwin)
+ curwin->w_height - 1 - p_so
&& (curwin->w_cursor.lnum != curwin->w_topline
@@ -2035,7 +2038,6 @@ change_indent(
int save_p_list;
int start_col;
colnr_T vc;
-#ifdef FEAT_VREPLACE
colnr_T orig_col = 0; /* init for GCC */
char_u *new_line, *orig_line = NULL; /* init for GCC */
@@ -2045,7 +2047,6 @@ change_indent(
orig_line = vim_strsave(ml_get_curline()); /* Deal with NULL below */
orig_col = curwin->w_cursor.col;
}
-#endif
/* for the following tricks we don't want list mode */
save_p_list = curwin->w_p_list;
@@ -2084,17 +2085,13 @@ change_indent(
(void)set_indent(amount, call_changed_bytes ? SIN_CHANGED : 0);
else
{
-#ifdef FEAT_VREPLACE
int save_State = State;
/* Avoid being called recursively. */
if (State & VREPLACE_FLAG)
State = INSERT;
-#endif
shift_line(type == INDENT_DEC, round, 1, call_changed_bytes);
-#ifdef FEAT_VREPLACE
State = save_State;
-#endif
}
insstart_less -= curwin->w_cursor.col;
@@ -2226,7 +2223,6 @@ change_indent(
}
}
-#ifdef FEAT_VREPLACE
/*
* For VREPLACE mode, we also have to fix the replace stack. In this case
* it is always possible because we backspace over the whole line and then
@@ -2259,7 +2255,6 @@ change_indent(
vim_free(new_line);
}
-#endif
}
/*
@@ -2281,8 +2276,6 @@ truncate_spaces(char_u *line)
line[i + 1] = NUL;
}
-#if defined(FEAT_VREPLACE) || defined(FEAT_INS_EXPAND) \
- || defined(FEAT_COMMENTS) || defined(PROTO)
/*
* Backspace the cursor until the given column. Handles REPLACE and VREPLACE
* modes correctly. May also be used when not in insert mode at all.
@@ -2301,7 +2294,6 @@ backspace_until_column(int col)
break;
}
}
-#endif
/*
* Like del_char(), but make sure not to go before column "limit_col".
@@ -4877,18 +4869,13 @@ ins_compl_insert(int in_compl_func)
dict = dict_alloc_lock(VAR_FIXED);
if (dict != NULL)
{
- dict_add_nr_str(dict, "word", 0L,
- EMPTY_IF_NULL(compl_shown_match->cp_str));
- dict_add_nr_str(dict, "abbr", 0L,
- EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_ABBR]));
- dict_add_nr_str(dict, "menu", 0L,
- EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_MENU]));
- dict_add_nr_str(dict, "kind", 0L,
- EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_KIND]));
- dict_add_nr_str(dict, "info", 0L,
- EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_INFO]));
- dict_add_nr_str(dict, "user_data", 0L,
- EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_USER_DATA]));
+ dict_add_string(dict, "word", compl_shown_match->cp_str);
+ dict_add_string(dict, "abbr", compl_shown_match->cp_text[CPT_ABBR]);
+ dict_add_string(dict, "menu", compl_shown_match->cp_text[CPT_MENU]);
+ dict_add_string(dict, "kind", compl_shown_match->cp_text[CPT_KIND]);
+ dict_add_string(dict, "info", compl_shown_match->cp_text[CPT_INFO]);
+ dict_add_string(dict, "user_data",
+ compl_shown_match->cp_text[CPT_USER_DATA]);
}
set_vim_var_dict(VV_COMPLETED_ITEM, dict);
if (!in_compl_func)
@@ -6222,9 +6209,7 @@ insertchar(
&& (force_format
|| (!VIM_ISWHITE(c)
&& !((State & REPLACE_FLAG)
-#ifdef FEAT_VREPLACE
&& !(State & VREPLACE_FLAG)
-#endif
&& *ml_get_cursor() != NUL)
&& (curwin->w_cursor.lnum != Insstart.lnum
|| ((!has_format_option(FO_INS_LONG)
@@ -6469,11 +6454,7 @@ internal_format(
* When 'ai' is off we don't want a space under the cursor to be
* deleted. Replace it with an 'x' temporarily.
*/
- if (!curbuf->b_p_ai
-#ifdef FEAT_VREPLACE
- && !(State & VREPLACE_FLAG)
-#endif
- )
+ if (!curbuf->b_p_ai && !(State & VREPLACE_FLAG))
{
cc = gchar_cursor();
if (VIM_ISWHITE(cc))
@@ -6494,10 +6475,8 @@ internal_format(
int end_foundcol = 0; /* column for start of word */
colnr_T len;
colnr_T virtcol;
-#ifdef FEAT_VREPLACE
int orig_col = 0;
char_u *saved_text = NULL;
-#endif
colnr_T col;
colnr_T end_col;
@@ -6667,11 +6646,9 @@ internal_format(
* stack functions. VREPLACE does not use this, and backspaces
* over the text instead.
*/
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
orig_col = startcol; /* Will start backspacing from here */
else
-#endif
replace_offset = startcol - end_foundcol;
/*
@@ -6686,7 +6663,6 @@ internal_format(
if (startcol < 0)
startcol = 0;
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
{
/*
@@ -6704,7 +6680,6 @@ internal_format(
backspace_until_column(foundcol);
}
else
-#endif
{
/* put cursor after pos. to break line */
if (!fo_white_par)
@@ -6742,12 +6717,10 @@ internal_format(
get_number_indent(curwin->w_cursor.lnum - 1);
if (second_indent >= 0)
{
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
change_indent(INDENT_SET, second_indent,
FALSE, NUL, TRUE);
else
-#endif
#ifdef FEAT_COMMENTS
if (leader_len > 0 && second_indent - leader_len > 0)
{
@@ -6776,7 +6749,6 @@ internal_format(
first_line = FALSE;
}
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
{
/*
@@ -6787,7 +6759,6 @@ internal_format(
vim_free(saved_text);
}
else
-#endif
{
/*
* Check if cursor is not past the NUL off the line, cindent
@@ -7138,13 +7109,11 @@ stop_arrow(void)
}
ai_col = 0;
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
{
orig_line_count = curbuf->b_ml.ml_line_count;
vr_lines_changed = 1;
}
-#endif
ResetRedobuff();
AppendToRedobuff((char_u *)"1i"); /* pretend we start an insertion */
new_insert_skip = 2;
@@ -7981,7 +7950,6 @@ replace_flush(void)
replace_do_bs(int limit_col)
{
int cc;
-#ifdef FEAT_VREPLACE
int orig_len = 0;
int ins_len;
int orig_vcols = 0;
@@ -7989,12 +7957,10 @@ replace_do_bs(int limit_col)
char_u *p;
int i;
int vcol;
-#endif
cc = replace_pop();
if (cc > 0)
{
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
{
/* Get the number of screen cells used by the character we are
@@ -8002,29 +7968,23 @@ replace_do_bs(int limit_col)
getvcol(curwin, &curwin->w_cursor, NULL, &start_vcol, NULL);
orig_vcols = chartabsize(ml_get_cursor(), start_vcol);
}
-#endif
#ifdef FEAT_MBYTE
if (has_mbyte)
{
(void)del_char_after_col(limit_col);
-# ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
orig_len = (int)STRLEN(ml_get_cursor());
-# endif
replace_push(cc);
}
else
#endif
{
pchar_cursor(cc);
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
orig_len = (int)STRLEN(ml_get_cursor()) - 1;
-#endif
}
replace_pop_ins();
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
{
/* Get the number of screen cells used by the inserted characters */
@@ -8050,7 +8010,6 @@ replace_do_bs(int limit_col)
}
curwin->w_cursor.col -= ins_len;
}
-#endif
/* mark the buffer as changed and prepare for displaying */
changed_bytes(curwin->w_cursor.lnum, curwin->w_cursor.col);
@@ -8964,11 +8923,9 @@ ins_insert(int replaceState)
# ifdef FEAT_EVAL
set_vim_var_string(VV_INSERTMODE,
- (char_u *)((State & REPLACE_FLAG) ? "i" :
-# ifdef FEAT_VREPLACE
- replaceState == VREPLACE ? "v" :
-# endif
- "r"), 1);
+ (char_u *)((State & REPLACE_FLAG) ? "i"
+ : replaceState == VREPLACE ? "v"
+ : "r"), 1);
# endif
apply_autocmds(EVENT_INSERTCHANGE, NULL, NULL, FALSE, curbuf);
if (State & REPLACE_FLAG)
@@ -8988,11 +8945,9 @@ ins_insert(int replaceState)
static void
ins_ctrl_o(void)
{
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
restart_edit = 'V';
else
-#endif
if (State & REPLACE_FLAG)
restart_edit = 'R';
else
@@ -9065,14 +9020,12 @@ ins_del(void)
else
{
curwin->w_cursor.col = temp;
-#ifdef FEAT_VREPLACE
/* Adjust orig_line_count in case more lines have been deleted than
* have been added. That makes sure, that open_line() later
* can access all buffer lines correctly */
if (State & VREPLACE_FLAG &&
orig_line_count > curbuf->b_ml.ml_line_count)
orig_line_count = curbuf->b_ml.ml_line_count;
-#endif
}
}
else if (del_char(FALSE) == FAIL) /* delete char under cursor */
@@ -9227,10 +9180,8 @@ ins_bs(
}
else
{
-#ifdef FEAT_VREPLACE
if (!(State & VREPLACE_FLAG)
|| curwin->w_cursor.lnum > orig_line_count)
-#endif
{
temp = gchar_cursor(); /* remember current char */
--curwin->w_cursor.lnum;
@@ -9254,10 +9205,8 @@ ins_bs(
if (temp == NUL && gchar_cursor() != NUL)
inc_cursor();
}
-#ifdef FEAT_VREPLACE
else
dec_cursor();
-#endif
/*
* In REPLACE mode we have to put back the text that was replaced
@@ -9329,7 +9278,11 @@ ins_bs(
*/
if ( mode == BACKSPACE_CHAR
&& ((p_sta && in_indent)
- || (get_sts_value() != 0
+ || ((get_sts_value() != 0
+#ifdef FEAT_VARTABS
+ || tabstop_count(curbuf->b_p_vsts_array)
+#endif
+ )
&& curwin->w_cursor.col > 0
&& (*(ml_get_cursor() - 1) == TAB
|| (*(ml_get_cursor() - 1) == ' '
@@ -9342,10 +9295,6 @@ ins_bs(
colnr_T start_vcol;
*inserted_space_p = FALSE;
- if (p_sta && in_indent)
- ts = (int)get_sw_value(curbuf);
- else
- ts = (int)get_sts_value();
/* Compute the virtual column where we want to be. Since
* 'showbreak' may get in the way, need to get the last column of
* the previous character. */
@@ -9354,7 +9303,22 @@ ins_bs(
dec_cursor();
getvcol(curwin, &curwin->w_cursor, NULL, NULL, &want_vcol);
inc_cursor();
+#ifdef FEAT_VARTABS
+ if (p_sta && in_indent)
+ {
+ ts = (int)get_sw_value(curbuf);
+ want_vcol = (want_vcol / ts) * ts;
+ }
+ else
+ want_vcol = tabstop_start(want_vcol, get_sts_value(),
+ curbuf->b_p_vsts_array);
+#else
+ if (p_sta && in_indent)
+ ts = (int)get_sw_value(curbuf);
+ else
+ ts = (int)get_sts_value();
want_vcol = (want_vcol / ts) * ts;
+#endif
/* delete characters until we are at or before want_vcol */
while (vcol > want_vcol
@@ -9369,11 +9333,9 @@ ins_bs(
&& curwin->w_cursor.col < Insstart_orig.col)
Insstart_orig.col = curwin->w_cursor.col;
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
ins_char(' ');
else
-#endif
{
ins_str((char_u *)" ");
if ((State & REPLACE_FLAG))
@@ -9668,22 +9630,31 @@ bracketed_paste(paste_mode_T mode, int drop, garray_T *gap)
int ret_char = -1;
int save_allow_keys = allow_keys;
int save_paste = p_paste;
- int save_ai = curbuf->b_p_ai;
/* If the end code is too long we can't detect it, read everything. */
if (STRLEN(end) >= NUMBUFLEN)
end = NULL;
++no_mapping;
allow_keys = 0;
- p_paste = TRUE;
- curbuf->b_p_ai = FALSE;
+ if (!p_paste)
+ // Also have the side effects of setting 'paste' to make it work much
+ // faster.
+ set_option_value((char_u *)"paste", TRUE, NULL, 0);
for (;;)
{
- /* When the end is not defined read everything. */
+ // When the end is not defined read everything there is.
if (end == NULL && vpeekc() == NUL)
break;
- c = plain_vgetc();
+ do
+ {
+ c = vgetc();
+ } while (c == K_IGNORE || c == K_VER_SCROLLBAR || c == K_HOR_SCROLLBAR);
+ if (c == NUL || got_int)
+ // When CTRL-C was encountered the typeahead will be flushed and we
+ // won't get the end sequence.
+ break;
+
#ifdef FEAT_MBYTE
if (has_mbyte)
idx += (*mb_char2bytes)(c, buf + idx);
@@ -9746,8 +9717,8 @@ bracketed_paste(paste_mode_T mode, int drop, garray_T *gap)
--no_mapping;
allow_keys = save_allow_keys;
- p_paste = save_paste;
- curbuf->b_p_ai = save_ai;
+ if (!save_paste)
+ set_option_value((char_u *)"paste", FALSE, NULL, 0);
return ret_char;
}
@@ -10144,10 +10115,22 @@ ins_tab(void)
#endif
/*
- * When nothing special, insert TAB like a normal character
+ * When nothing special, insert TAB like a normal character.
*/
if (!curbuf->b_p_et
+#ifdef FEAT_VARTABS
+ && !(p_sta && ind
+ /* These five lines mean 'tabstop' != 'shiftwidth' */
+ && ((tabstop_count(curbuf->b_p_vts_array) > 1)
+ || (tabstop_count(curbuf->b_p_vts_array) == 1
+ && tabstop_first(curbuf->b_p_vts_array)
+ != get_sw_value(curbuf))
+ || (tabstop_count(curbuf->b_p_vts_array) == 0
+ && curbuf->b_p_ts != get_sw_value(curbuf))))
+ && tabstop_count(curbuf->b_p_vsts_array) == 0
+#else
&& !(p_sta && ind && curbuf->b_p_ts != get_sw_value(curbuf))
+#endif
&& get_sts_value() == 0)
return TRUE;
@@ -10162,6 +10145,20 @@ ins_tab(void)
#endif
AppendToRedobuff((char_u *)"\t");
+#ifdef FEAT_VARTABS
+ if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */
+ {
+ temp = (int)get_sw_value(curbuf);
+ temp -= get_nolist_virtcol() % temp;
+ }
+ else if (tabstop_count(curbuf->b_p_vsts_array) > 0 || curbuf->b_p_sts != 0)
+ /* use 'softtabstop' when set */
+ temp = tabstop_padding(get_nolist_virtcol(), get_sts_value(),
+ curbuf->b_p_vsts_array);
+ else /* otherwise use 'tabstop' */
+ temp = tabstop_padding(get_nolist_virtcol(), curbuf->b_p_ts,
+ curbuf->b_p_vts_array);
+#else
if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */
temp = (int)get_sw_value(curbuf);
else if (curbuf->b_p_sts != 0) /* use 'softtabstop' when set */
@@ -10169,6 +10166,7 @@ ins_tab(void)
else /* otherwise use 'tabstop' */
temp = (int)curbuf->b_p_ts;
temp -= get_nolist_virtcol() % temp;
+#endif
/*
* Insert the first space with ins_char(). It will delete one char in
@@ -10178,11 +10176,9 @@ ins_tab(void)
ins_char(' ');
while (--temp > 0)
{
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
ins_char(' ');
else
-#endif
{
ins_str((char_u *)" ");
if (State & REPLACE_FLAG) /* no char replaced */
@@ -10193,13 +10189,17 @@ ins_tab(void)
/*
* When 'expandtab' not set: Replace spaces by TABs where possible.
*/
+#ifdef FEAT_VARTABS
+ if (!curbuf->b_p_et && (tabstop_count(curbuf->b_p_vsts_array) > 0
+ || get_sts_value() > 0
+ || (p_sta && ind)))
+#else
if (!curbuf->b_p_et && (get_sts_value() || (p_sta && ind)))
+#endif
{
char_u *ptr;
-#ifdef FEAT_VREPLACE
char_u *saved_line = NULL; /* init for GCC */
pos_T pos;
-#endif
pos_T fpos;
pos_T *cursor;
colnr_T want_vcol, vcol;
@@ -10210,7 +10210,6 @@ ins_tab(void)
* Get the current line. For VREPLACE mode, don't make real changes
* yet, just work on a copy of the line.
*/
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
{
pos = curwin->w_cursor;
@@ -10221,7 +10220,6 @@ ins_tab(void)
ptr = saved_line + pos.col;
}
else
-#endif
{
ptr = ml_get_cursor();
cursor = &curwin->w_cursor;
@@ -10301,11 +10299,7 @@ ins_tab(void)
{
STRMOVE(ptr, ptr + i);
/* correct replace stack. */
- if ((State & REPLACE_FLAG)
-#ifdef FEAT_VREPLACE
- && !(State & VREPLACE_FLAG)
-#endif
- )
+ if ((State & REPLACE_FLAG) && !(State & VREPLACE_FLAG))
for (temp = i; --temp >= 0; )
replace_join(repl_off);
}
@@ -10319,7 +10313,6 @@ ins_tab(void)
#endif
cursor->col -= i;
-#ifdef FEAT_VREPLACE
/*
* In VREPLACE mode, we haven't changed anything yet. Do it now by
* backspacing over the changed spacing and then inserting the new
@@ -10335,13 +10328,10 @@ ins_tab(void)
ins_bytes_len(saved_line + change_col,
cursor->col - change_col);
}
-#endif
}
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
vim_free(saved_line);
-#endif
curwin->w_p_list = save_list;
}
@@ -10368,11 +10358,7 @@ ins_eol(int c)
* character under the cursor. Only push a NUL on the replace stack,
* nothing to put back when the NL is deleted.
*/
- if ((State & REPLACE_FLAG)
-#ifdef FEAT_VREPLACE
- && !(State & VREPLACE_FLAG)
-#endif
- )
+ if ((State & REPLACE_FLAG) && !(State & VREPLACE_FLAG))
replace_push(NUL);
/*
@@ -10641,11 +10627,9 @@ ins_try_si(int c)
curwin->w_cursor = *pos;
i = get_indent();
curwin->w_cursor = old_pos;
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
change_indent(INDENT_SET, i, FALSE, NUL, TRUE);
else
-#endif
(void)set_indent(i, SIN_CHANGED);
}
else if (curwin->w_cursor.col > 0)
diff --git a/src/eval.c b/src/eval.c
index 26aa0e3..6034cd2 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -729,6 +729,7 @@ eval_expr_typval(typval_T *expr, typval_T *argv, int argc, typval_T *rettv)
return FAIL;
if (*s != NUL) /* check for trailing chars after expr */
{
+ clear_tv(rettv);
EMSG2(_(e_invexpr2), s);
return FAIL;
}
@@ -9386,8 +9387,7 @@ typval_compare(
}
char_u *
-typval_tostring(arg)
- typval_T *arg;
+typval_tostring(typval_T *arg)
{
char_u *tofree;
char_u numbuf[NUMBUFLEN];
@@ -9690,11 +9690,12 @@ shortpath_for_partial(
*/
int
modify_fname(
- char_u *src, /* string with modifiers */
- int *usedlen, /* characters after src that are used */
- char_u **fnamep, /* file name so far */
- char_u **bufp, /* buffer for allocated file name or NULL */
- int *fnamelen) /* length of fnamep */
+ char_u *src, // string with modifiers
+ int tilde_file, // "~" is a file name, not $HOME
+ int *usedlen, // characters after src that are used
+ char_u **fnamep, // file name so far
+ char_u **bufp, // buffer for allocated file name or NULL
+ int *fnamelen) // length of fnamep
{
int valid = 0;
char_u *tail;
@@ -9724,8 +9725,8 @@ repeat:
|| (*fnamep)[1] == '\\'
# endif
|| (*fnamep)[1] == NUL)
-
#endif
+ && !(tilde_file && (*fnamep)[1] == NUL)
)
{
*fnamep = expand_env_save(*fnamep);
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 3cb66f3..31096d7 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -123,6 +123,9 @@ static void f_cosh(typval_T *argvars, typval_T *rettv);
static void f_count(typval_T *argvars, typval_T *rettv);
static void f_cscope_connection(typval_T *argvars, typval_T *rettv);
static void f_cursor(typval_T *argsvars, typval_T *rettv);
+#ifdef WIN3264
+static void f_debugbreak(typval_T *argvars, typval_T *rettv);
+#endif
static void f_deepcopy(typval_T *argvars, typval_T *rettv);
static void f_delete(typval_T *argvars, typval_T *rettv);
static void f_deletebufline(typval_T *argvars, typval_T *rettv);
@@ -577,6 +580,9 @@ static struct fst
{"count", 2, 4, f_count},
{"cscope_connection",0,3, f_cscope_connection},
{"cursor", 1, 3, f_cursor},
+#ifdef WIN3264
+ {"debugbreak", 1, 1, f_debugbreak},
+#endif
{"deepcopy", 1, 2, f_deepcopy},
{"delete", 1, 2, f_delete},
{"deletebufline", 2, 3, f_deletebufline},
@@ -2761,6 +2767,33 @@ f_cursor(typval_T *argvars, typval_T *rettv)
rettv->vval.v_number = 0;
}
+#ifdef WIN3264
+/*
+ * "debugbreak()" function
+ */
+ static void
+f_debugbreak(typval_T *argvars, typval_T *rettv)
+{
+ int pid;
+
+ rettv->vval.v_number = FAIL;
+ pid = (int)get_tv_number(&argvars[0]);
+ if (pid == 0)
+ EMSG(_(e_invarg));
+ else
+ {
+ HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
+
+ if (hProcess != NULL)
+ {
+ DebugBreakProcess(hProcess);
+ CloseHandle(hProcess);
+ rettv->vval.v_number = OK;
+ }
+ }
+}
+#endif
+
/*
* "deepcopy()" function
*/
@@ -2824,9 +2857,7 @@ f_delete(typval_T *argvars, typval_T *rettv)
* "deletebufline()" function
*/
static void
-f_deletebufline(argvars, rettv)
- typval_T *argvars;
- typval_T *rettv;
+f_deletebufline(typval_T *argvars, typval_T *rettv)
{
buf_T *buf;
linenr_T first, last;
@@ -3770,7 +3801,7 @@ f_fnamemodify(typval_T *argvars, typval_T *rettv)
else
{
len = (int)STRLEN(fname);
- (void)modify_fname(mods, &usedlen, &fname, &fbuf, &len);
+ (void)modify_fname(mods, FALSE, &usedlen, &fname, &fbuf, &len);
}
rettv->v_type = VAR_STRING;
@@ -4305,9 +4336,9 @@ get_buffer_signs(buf_T *buf, list_T *l)
if (d != NULL)
{
- dict_add_nr_str(d, "id", sign->id, NULL);
- dict_add_nr_str(d, "lnum", sign->lnum, NULL);
- dict_add_nr_str(d, "name", 0L, sign_typenr2name(sign->typenr));
+ dict_add_number(d, "id", sign->id);
+ dict_add_number(d, "lnum", sign->lnum);
+ dict_add_string(d, "name", sign_typenr2name(sign->typenr));
list_append_dict(l, d);
}
@@ -4330,18 +4361,16 @@ get_buffer_info(buf_T *buf)
if (dict == NULL)
return NULL;
- dict_add_nr_str(dict, "bufnr", buf->b_fnum, NULL);
- dict_add_nr_str(dict, "name", 0L,
- buf->b_ffname != NULL ? buf->b_ffname : (char_u *)"");
- dict_add_nr_str(dict, "lnum", buf == curbuf ? curwin->w_cursor.lnum
- : buflist_findlnum(buf), NULL);
- dict_add_nr_str(dict, "loaded", buf->b_ml.ml_mfp != NULL, NULL);
- dict_add_nr_str(dict, "listed", buf->b_p_bl, NULL);
- dict_add_nr_str(dict, "changed", bufIsChanged(buf), NULL);
- dict_add_nr_str(dict, "changedtick", CHANGEDTICK(buf), NULL);
- dict_add_nr_str(dict, "hidden",
- buf->b_ml.ml_mfp != NULL && buf->b_nwindows == 0,
- NULL);
+ dict_add_number(dict, "bufnr", buf->b_fnum);
+ dict_add_string(dict, "name", buf->b_ffname);
+ dict_add_number(dict, "lnum", buf == curbuf ? curwin->w_cursor.lnum
+ : buflist_findlnum(buf));
+ dict_add_number(dict, "loaded", buf->b_ml.ml_mfp != NULL);
+ dict_add_number(dict, "listed", buf->b_p_bl);
+ dict_add_number(dict, "changed", bufIsChanged(buf));
+ dict_add_number(dict, "changedtick", CHANGEDTICK(buf));
+ dict_add_number(dict, "hidden",
+ buf->b_ml.ml_mfp != NULL && buf->b_nwindows == 0);
/* Get a reference to buffer variables */
dict_add_dict(dict, "variables", buf->b_vars);
@@ -4630,10 +4659,10 @@ f_getchangelist(typval_T *argvars, typval_T *rettv)
return;
if (list_append_dict(l, d) == FAIL)
return;
- dict_add_nr_str(d, "lnum", (long)buf->b_changelist[i].lnum, NULL);
- dict_add_nr_str(d, "col", (long)buf->b_changelist[i].col, NULL);
+ dict_add_number(d, "lnum", (long)buf->b_changelist[i].lnum);
+ dict_add_number(d, "col", (long)buf->b_changelist[i].col);
# ifdef FEAT_VIRTUALEDIT
- dict_add_nr_str(d, "coladd", (long)buf->b_changelist[i].coladd, NULL);
+ dict_add_number(d, "coladd", (long)buf->b_changelist[i].coladd);
# endif
}
#endif
@@ -4757,9 +4786,9 @@ f_getcharsearch(typval_T *argvars UNUSED, typval_T *rettv)
{
dict_T *dict = rettv->vval.v_dict;
- dict_add_nr_str(dict, "char", 0L, last_csearch());
- dict_add_nr_str(dict, "forward", last_csearch_forward(), NULL);
- dict_add_nr_str(dict, "until", last_csearch_until(), NULL);
+ dict_add_string(dict, "char", last_csearch());
+ dict_add_number(dict, "forward", last_csearch_forward());
+ dict_add_number(dict, "until", last_csearch_until());
}
}
@@ -5160,17 +5189,14 @@ f_getjumplist(typval_T *argvars, typval_T *rettv)
return;
if (list_append_dict(l, d) == FAIL)
return;
- dict_add_nr_str(d, "lnum", (long)wp->w_jumplist[i].fmark.mark.lnum,
- NULL);
- dict_add_nr_str(d, "col", (long)wp->w_jumplist[i].fmark.mark.col,
- NULL);
+ dict_add_number(d, "lnum", (long)wp->w_jumplist[i].fmark.mark.lnum);
+ dict_add_number(d, "col", (long)wp->w_jumplist[i].fmark.mark.col);
# ifdef FEAT_VIRTUALEDIT
- dict_add_nr_str(d, "coladd", (long)wp->w_jumplist[i].fmark.mark.coladd,
- NULL);
+ dict_add_number(d, "coladd", (long)wp->w_jumplist[i].fmark.mark.coladd);
# endif
- dict_add_nr_str(d, "bufnr", (long)wp->w_jumplist[i].fmark.fnum, NULL);
+ dict_add_number(d, "bufnr", (long)wp->w_jumplist[i].fmark.fnum);
if (wp->w_jumplist[i].fname != NULL)
- dict_add_nr_str(d, "filename", 0L, wp->w_jumplist[i].fname);
+ dict_add_string(d, "filename", wp->w_jumplist[i].fname);
}
#endif
}
@@ -5288,18 +5314,18 @@ f_getmatches(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
}
else
{
- dict_add_nr_str(dict, "pattern", 0L, cur->pattern);
+ dict_add_string(dict, "pattern", cur->pattern);
}
- dict_add_nr_str(dict, "group", 0L, syn_id2name(cur->hlg_id));
- dict_add_nr_str(dict, "priority", (long)cur->priority, NULL);
- dict_add_nr_str(dict, "id", (long)cur->id, NULL);
+ dict_add_string(dict, "group", syn_id2name(cur->hlg_id));
+ dict_add_number(dict, "priority", (long)cur->priority);
+ dict_add_number(dict, "id", (long)cur->id);
# if defined(FEAT_CONCEAL) && defined(FEAT_MBYTE)
if (cur->conceal_char)
{
char_u buf[MB_MAXBYTES + 1];
buf[(*mb_char2bytes)((int)cur->conceal_char, buf)] = NUL;
- dict_add_nr_str(dict, "conceal", 0L, (char_u *)&buf);
+ dict_add_string(dict, "conceal", (char_u *)&buf);
}
# endif
list_append_dict(rettv->vval.v_list, dict);
@@ -5500,7 +5526,7 @@ get_tabpage_info(tabpage_T *tp, int tp_idx)
if (dict == NULL)
return NULL;
- dict_add_nr_str(dict, "tabnr", tp_idx, NULL);
+ dict_add_number(dict, "tabnr", tp_idx);
l = list_alloc();
if (l != NULL)
@@ -5616,23 +5642,25 @@ get_win_info(win_T *wp, short tpnr, short winnr)
if (dict == NULL)
return NULL;
- dict_add_nr_str(dict, "tabnr", tpnr, NULL);
- dict_add_nr_str(dict, "winnr", winnr, NULL);
- dict_add_nr_str(dict, "winid", wp->w_id, NULL);
- dict_add_nr_str(dict, "height", wp->w_height, NULL);
+ dict_add_number(dict, "tabnr", tpnr);
+ dict_add_number(dict, "winnr", winnr);
+ dict_add_number(dict, "winid", wp->w_id);
+ dict_add_number(dict, "height", wp->w_height);
+ dict_add_number(dict, "winrow", wp->w_winrow + 1);
#ifdef FEAT_MENU
- dict_add_nr_str(dict, "winbar", wp->w_winbar_height, NULL);
+ dict_add_number(dict, "winbar", wp->w_winbar_height);
#endif
- dict_add_nr_str(dict, "width", wp->w_width, NULL);
- dict_add_nr_str(dict, "bufnr", wp->w_buffer->b_fnum, NULL);
+ dict_add_number(dict, "width", wp->w_width);
+ dict_add_number(dict, "wincol", wp->w_wincol + 1);
+ dict_add_number(dict, "bufnr", wp->w_buffer->b_fnum);
#ifdef FEAT_TERMINAL
- dict_add_nr_str(dict, "terminal", bt_terminal(wp->w_buffer), NULL);
+ dict_add_number(dict, "terminal", bt_terminal(wp->w_buffer));
#endif
#ifdef FEAT_QUICKFIX
- dict_add_nr_str(dict, "quickfix", bt_quickfix(wp->w_buffer), NULL);
- dict_add_nr_str(dict, "loclist",
- (bt_quickfix(wp->w_buffer) && wp->w_llist_ref != NULL), NULL);
+ dict_add_number(dict, "quickfix", bt_quickfix(wp->w_buffer));
+ dict_add_number(dict, "loclist",
+ (bt_quickfix(wp->w_buffer) && wp->w_llist_ref != NULL));
#endif
/* Add a reference to window variables */
@@ -6017,6 +6045,9 @@ f_has(typval_T *argvars, typval_T *rettv)
"arabic",
#endif
"autocmd",
+#ifdef FEAT_AUTOCHDIR
+ "autochdir",
+#endif
#ifdef FEAT_AUTOSERVERNAME
"autoservername",
#endif
@@ -6272,7 +6303,9 @@ f_has(typval_T *argvars, typval_T *rettv)
#ifdef FEAT_OLE
"ole",
#endif
+#ifdef FEAT_EVAL
"packages",
+#endif
#ifdef FEAT_PATH_EXTRA
"path_extra",
#endif
@@ -6403,6 +6436,9 @@ f_has(typval_T *argvars, typval_T *rettv)
"user-commands", /* was accidentally included in 5.4 */
"user_commands",
#endif
+#ifdef FEAT_VARTABS
+ "vartabs",
+#endif
#ifdef FEAT_VIMINFO
"viminfo",
#endif
@@ -6414,9 +6450,7 @@ f_has(typval_T *argvars, typval_T *rettv)
#ifdef FEAT_VISUALEXTRA
"visualextra",
#endif
-#ifdef FEAT_VREPLACE
"vreplace",
-#endif
#ifdef FEAT_VTP
"vtp",
#endif
@@ -6573,7 +6607,7 @@ f_has(typval_T *argvars, typval_T *rettv)
#endif
#ifdef FEAT_VTP
else if (STRICMP(name, "vcon") == 0)
- n = has_vtp_working();
+ n = is_term_win32() && has_vtp_working();
#endif
#ifdef FEAT_NETBEANS_INTG
else if (STRICMP(name, "netbeans_enabled") == 0)
@@ -7616,15 +7650,15 @@ get_maparg(typval_T *argvars, typval_T *rettv, int exact)
char_u *mapmode = map_mode_to_chars(mp->m_mode);
dict_T *dict = rettv->vval.v_dict;
- dict_add_nr_str(dict, "lhs", 0L, lhs);
- dict_add_nr_str(dict, "rhs", 0L, mp->m_orig_str);
- dict_add_nr_str(dict, "noremap", mp->m_noremap ? 1L : 0L , NULL);
- dict_add_nr_str(dict, "expr", mp->m_expr ? 1L : 0L, NULL);
- dict_add_nr_str(dict, "silent", mp->m_silent ? 1L : 0L, NULL);
- dict_add_nr_str(dict, "sid", (long)mp->m_script_ID, NULL);
- dict_add_nr_str(dict, "buffer", (long)buffer_local, NULL);
- dict_add_nr_str(dict, "nowait", mp->m_nowait ? 1L : 0L, NULL);
- dict_add_nr_str(dict, "mode", 0L, mapmode);
+ dict_add_string(dict, "lhs", lhs);
+ dict_add_string(dict, "rhs", mp->m_orig_str);
+ dict_add_number(dict, "noremap", mp->m_noremap ? 1L : 0L);
+ dict_add_number(dict, "expr", mp->m_expr ? 1L : 0L);
+ dict_add_number(dict, "silent", mp->m_silent ? 1L : 0L);
+ dict_add_number(dict, "sid", (long)mp->m_script_ID);
+ dict_add_number(dict, "buffer", (long)buffer_local);
+ dict_add_number(dict, "nowait", mp->m_nowait ? 1L : 0L);
+ dict_add_string(dict, "mode", mapmode);
vim_free(lhs);
vim_free(mapmode);
@@ -7952,6 +7986,36 @@ f_match(typval_T *argvars, typval_T *rettv)
find_some_match(argvars, rettv, MATCH_MATCH);
}
+#ifdef FEAT_SEARCH_EXTRA
+ static int
+matchadd_dict_arg(typval_T *tv, char_u **conceal_char, win_T **win)
+{
+ dictitem_T *di;
+
+ if (tv->v_type != VAR_DICT)
+ {
+ EMSG(_(e_dictreq));
+ return FAIL;
+ }
+
+ if (dict_find(tv->vval.v_dict, (char_u *)"conceal", -1) != NULL)
+ *conceal_char = get_dict_string(tv->vval.v_dict,
+ (char_u *)"conceal", FALSE);
+
+ if ((di = dict_find(tv->vval.v_dict, (char_u *)"window", -1)) != NULL)
+ {
+ *win = find_win_by_nr(&di->di_tv, NULL);
+ if (*win == NULL)
+ {
+ EMSG(_("E957: Invalid window number"));
+ return FAIL;
+ }
+ }
+
+ return OK;
+}
+#endif
+
/*
* "matchadd()" function
*/
@@ -7966,6 +8030,7 @@ f_matchadd(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
int id = -1;
int error = FALSE;
char_u *conceal_char = NULL;
+ win_T *win = curwin;
rettv->vval.v_number = -1;
@@ -7977,18 +8042,9 @@ f_matchadd(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
if (argvars[3].v_type != VAR_UNKNOWN)
{
id = (int)get_tv_number_chk(&argvars[3], &error);
- if (argvars[4].v_type != VAR_UNKNOWN)
- {
- if (argvars[4].v_type != VAR_DICT)
- {
- EMSG(_(e_dictreq));
- return;
- }
- if (dict_find(argvars[4].vval.v_dict,
- (char_u *)"conceal", -1) != NULL)
- conceal_char = get_dict_string(argvars[4].vval.v_dict,
- (char_u *)"conceal", FALSE);
- }
+ if (argvars[4].v_type != VAR_UNKNOWN
+ && matchadd_dict_arg(&argvars[4], &conceal_char, &win) == FAIL)
+ return;
}
}
if (error == TRUE)
@@ -7999,7 +8055,7 @@ f_matchadd(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
return;
}
- rettv->vval.v_number = match_add(curwin, grp, pat, prio, id, NULL,
+ rettv->vval.v_number = match_add(win, grp, pat, prio, id, NULL,
conceal_char);
#endif
}
@@ -8018,6 +8074,7 @@ f_matchaddpos(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
int error = FALSE;
list_T *l;
char_u *conceal_char = NULL;
+ win_T *win = curwin;
rettv->vval.v_number = -1;
@@ -8040,18 +8097,10 @@ f_matchaddpos(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
if (argvars[3].v_type != VAR_UNKNOWN)
{
id = (int)get_tv_number_chk(&argvars[3], &error);
- if (argvars[4].v_type != VAR_UNKNOWN)
- {
- if (argvars[4].v_type != VAR_DICT)
- {
- EMSG(_(e_dictreq));
- return;
- }
- if (dict_find(argvars[4].vval.v_dict,
- (char_u *)"conceal", -1) != NULL)
- conceal_char = get_dict_string(argvars[4].vval.v_dict,
- (char_u *)"conceal", FALSE);
- }
+
+ if (argvars[4].v_type != VAR_UNKNOWN
+ && matchadd_dict_arg(&argvars[4], &conceal_char, &win) == FAIL)
+ return;
}
}
if (error == TRUE)
@@ -8064,7 +8113,7 @@ f_matchaddpos(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
return;
}
- rettv->vval.v_number = match_add(curwin, group, NULL, prio, id, l,
+ rettv->vval.v_number = match_add(win, group, NULL, prio, id, l,
conceal_char);
#endif
}
@@ -8315,10 +8364,9 @@ f_mkdir(typval_T *argvars, typval_T *rettv)
static void
f_mode(typval_T *argvars, typval_T *rettv)
{
- char_u buf[3];
+ char_u buf[4];
- buf[1] = NUL;
- buf[2] = NUL;
+ vim_memset(buf, 0, sizeof(buf));
if (time_for_testing == 93784)
{
@@ -8350,14 +8398,12 @@ f_mode(typval_T *argvars, typval_T *rettv)
buf[0] = '!';
else if (State & INSERT)
{
-#ifdef FEAT_VREPLACE
if (State & VREPLACE_FLAG)
{
buf[0] = 'R';
buf[1] = 'v';
}
else
-#endif
{
if (State & REPLACE_FLAG)
buf[0] = 'R';
@@ -8384,6 +8430,12 @@ f_mode(typval_T *argvars, typval_T *rettv)
buf[0] = 'n';
if (finish_op)
buf[1] = 'o';
+ else if (restart_edit == 'I' || restart_edit == 'R'
+ || restart_edit == 'V')
+ {
+ buf[1] = 'i';
+ buf[2] = restart_edit;
+ }
}
/* Clear out the minor mode when the argument is not a non-zero number or
@@ -10116,7 +10168,8 @@ searchpair_cmn(typval_T *argvars, pos_T *match_pos)
long lnum_stop = 0;
long time_limit = 0;
- /* Get the three pattern arguments: start, middle, end. */
+ /* Get the three pattern arguments: start, middle, end. Will result in an
+ * error if not a valid argument. */
spat = get_tv_string_chk(&argvars[0]);
mpat = get_tv_string_buf_chk(&argvars[1], nbuf1);
epat = get_tv_string_buf_chk(&argvars[2], nbuf2);
@@ -10153,19 +10206,26 @@ searchpair_cmn(typval_T *argvars, pos_T *match_pos)
&& skip->v_type != VAR_STRING)
{
/* Type error */
+ EMSG2(_(e_invarg2), get_tv_string(&argvars[4]));
goto theend;
}
if (argvars[5].v_type != VAR_UNKNOWN)
{
lnum_stop = (long)get_tv_number_chk(&argvars[5], NULL);
if (lnum_stop < 0)
+ {
+ EMSG2(_(e_invarg2), get_tv_string(&argvars[5]));
goto theend;
+ }
#ifdef FEAT_RELTIME
if (argvars[6].v_type != VAR_UNKNOWN)
{
time_limit = (long)get_tv_number_chk(&argvars[6], NULL);
if (time_limit < 0)
+ {
+ EMSG2(_(e_invarg2), get_tv_string(&argvars[6]));
goto theend;
+ }
}
#endif
}
@@ -10459,9 +10519,7 @@ f_serverlist(typval_T *argvars UNUSED, typval_T *rettv)
* "setbufline()" function
*/
static void
-f_setbufline(argvars, rettv)
- typval_T *argvars;
- typval_T *rettv;
+f_setbufline(typval_T *argvars, typval_T *rettv)
{
linenr_T lnum;
buf_T *buf;
@@ -11598,6 +11656,7 @@ f_spellbadword(typval_T *argvars UNUSED, typval_T *rettv)
break;
}
str += len;
+ capcol -= len;
}
}
}
@@ -13057,10 +13116,13 @@ f_test_override(typval_T *argvars, typval_T *rettv UNUSED)
save_starting = -1;
}
}
+ else if (STRCMP(name, (char_u *)"nfa_fail") == 0)
+ nfa_fail_for_testing = val;
else if (STRCMP(name, (char_u *)"ALL") == 0)
{
disable_char_avail_for_testing = FALSE;
disable_redraw_for_testing = FALSE;
+ nfa_fail_for_testing = FALSE;
if (save_starting >= 0)
{
starting = save_starting;
@@ -13605,13 +13667,12 @@ f_undotree(typval_T *argvars UNUSED, typval_T *rettv)
dict_T *dict = rettv->vval.v_dict;
list_T *list;
- dict_add_nr_str(dict, "synced", (long)curbuf->b_u_synced, NULL);
- dict_add_nr_str(dict, "seq_last", curbuf->b_u_seq_last, NULL);
- dict_add_nr_str(dict, "save_last",
- (long)curbuf->b_u_save_nr_last, NULL);
- dict_add_nr_str(dict, "seq_cur", curbuf->b_u_seq_cur, NULL);
- dict_add_nr_str(dict, "time_cur", (long)curbuf->b_u_time_cur, NULL);
- dict_add_nr_str(dict, "save_cur", (long)curbuf->b_u_save_nr_cur, NULL);
+ dict_add_number(dict, "synced", (long)curbuf->b_u_synced);
+ dict_add_number(dict, "seq_last", curbuf->b_u_seq_last);
+ dict_add_number(dict, "save_last", (long)curbuf->b_u_save_nr_last);
+ dict_add_number(dict, "seq_cur", curbuf->b_u_seq_cur);
+ dict_add_number(dict, "time_cur", (long)curbuf->b_u_time_cur);
+ dict_add_number(dict, "save_cur", (long)curbuf->b_u_save_nr_cur);
list = list_alloc();
if (list != NULL)
@@ -13835,20 +13896,20 @@ f_winsaveview(typval_T *argvars UNUSED, typval_T *rettv)
return;
dict = rettv->vval.v_dict;
- dict_add_nr_str(dict, "lnum", (long)curwin->w_cursor.lnum, NULL);
- dict_add_nr_str(dict, "col", (long)curwin->w_cursor.col, NULL);
+ dict_add_number(dict, "lnum", (long)curwin->w_cursor.lnum);
+ dict_add_number(dict, "col", (long)curwin->w_cursor.col);
#ifdef FEAT_VIRTUALEDIT
- dict_add_nr_str(dict, "coladd", (long)curwin->w_cursor.coladd, NULL);
+ dict_add_number(dict, "coladd", (long)curwin->w_cursor.coladd);
#endif
update_curswant();
- dict_add_nr_str(dict, "curswant", (long)curwin->w_curswant, NULL);
+ dict_add_number(dict, "curswant", (long)curwin->w_curswant);
- dict_add_nr_str(dict, "topline", (long)curwin->w_topline, NULL);
+ dict_add_number(dict, "topline", (long)curwin->w_topline);
#ifdef FEAT_DIFF
- dict_add_nr_str(dict, "topfill", (long)curwin->w_topfill, NULL);
+ dict_add_number(dict, "topfill", (long)curwin->w_topfill);
#endif
- dict_add_nr_str(dict, "leftcol", (long)curwin->w_leftcol, NULL);
- dict_add_nr_str(dict, "skipcol", (long)curwin->w_skipcol, NULL);
+ dict_add_number(dict, "leftcol", (long)curwin->w_leftcol);
+ dict_add_number(dict, "skipcol", (long)curwin->w_skipcol);
}
/*
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 60d7202..a30178b 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -398,6 +398,7 @@ ex_sort(exarg_T *eap)
colnr_T end_col;
int sort_what = 0;
int format_found = 0;
+ int change_occurred = FALSE; // Buffer contents changed.
/* Sorting one line is really quick! */
if (count <= 1)
@@ -616,12 +617,19 @@ ex_sort(exarg_T *eap)
lnum = eap->line2;
for (i = 0; i < count; ++i)
{
- s = ml_get(nrs[eap->forceit ? count - i - 1 : i].lnum);
+ linenr_T get_lnum = nrs[eap->forceit ? count - i - 1 : i].lnum;
+
+ // If the original line number of the line being placed is not the same
+ // as "lnum" (accounting for offset), we know that the buffer changed.
+ if (get_lnum + ((linenr_T)count - 1) != lnum)
+ change_occurred = TRUE;
+
+ s = ml_get(get_lnum);
if (!unique || i == 0
|| (sort_ic ? STRICMP(s, sortbuf1) : STRCMP(s, sortbuf1)) != 0)
{
- /* Copy the line into a buffer, it may become invalid in
- * ml_append(). And it's needed for "unique". */
+ // Copy the line into a buffer, it may become invalid in
+ // ml_append(). And it's needed for "unique".
STRCPY(sortbuf1, s);
if (ml_append(lnum++, sortbuf1, (colnr_T)0, FALSE) == FAIL)
break;
@@ -644,7 +652,9 @@ ex_sort(exarg_T *eap)
mark_adjust(eap->line2 - deleted, eap->line2, (long)MAXLNUM, -deleted);
else if (deleted < 0)
mark_adjust(eap->line2, MAXLNUM, -deleted, 0L);
- changed_lines(eap->line1, 0, eap->line2 + 1, -deleted);
+
+ if (change_occurred || deleted != 0)
+ changed_lines(eap->line1, 0, eap->line2 + 1, -deleted);
curwin->w_cursor.lnum = eap->line1;
beginline(BL_WHITE | BL_FIX);
@@ -673,12 +683,17 @@ ex_retab(exarg_T *eap)
long vcol;
long start_col = 0; /* For start of white-space string */
long start_vcol = 0; /* For start of white-space string */
- int temp;
long old_len;
char_u *ptr;
char_u *new_line = (char_u *)1; /* init to non-NULL */
int did_undo; /* called u_save for current line */
+#ifdef FEAT_VARTABS
+ int *new_vts_array = NULL;
+ char_u *new_ts_str; /* string value of tab argume