Update runtime files.
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 @@
     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 @@
   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 @@
     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 @@
 	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/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 @@
 .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 @@
 .SH 別名
 evim は "gumbies のための Vim" とも呼ばれています。
 evim を使っているあなたはきっと、頭にハンカチをかぶっているのです。
-(訳注: gumbies は Monty Python に登場するおもしろ集団。ハンカチをかぶっ
-ている。)
+(訳注: gumbies は Monty Python に登場するおもしろ集団。ハンカチをかぶっている。)
 .SH 関連項目
 vim(1)
 .SH 著者
diff --git a/runtime/doc/motion.txt b/runtime/doc/motion.txt
index 9a5c494..2c0fd55 100644
--- a/runtime/doc/motion.txt
+++ b/runtime/doc/motion.txt
@@ -1164,7 +1164,7 @@
 							*: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:
 
@@ -1174,8 +1174,8 @@
 				    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
diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt
index 7d588dc..469c363 100644
--- a/runtime/doc/options.txt
+++ b/runtime/doc/options.txt
@@ -2087,10 +2087,10 @@
 			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)
diff --git a/runtime/doc/pattern.txt b/runtime/doc/pattern.txt
index 337cbf7..09b4c2c 100644
--- a/runtime/doc/pattern.txt
+++ b/runtime/doc/pattern.txt
@@ -293,6 +293,14 @@
 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*
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index 47c0329..7757088 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -511,9 +511,11 @@
 		{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
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 58f3a6b..859db21 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -4620,6 +4620,7 @@
 E953	eval.txt	/*E953*
 E954	options.txt	/*E954*
 E955	eval.txt	/*E955*
+E956	pattern.txt	/*E956*
 E96	diff.txt	/*E96*
 E97	diff.txt	/*E97*
 E98	diff.txt	/*E98*
diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 38cc9a1..9b08aef 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -38,10 +38,6 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
-Crash when ui_breakcheck() called from regexec() calls regexec() recursively.
-(Andy Massimino, #3175)
-Make regexp work recursively, store all globals in "rex"?
-
 Prompt buffer:
 - Add a command line history.
 - delay next prompt until plugin gives OK?
@@ -81,6 +77,8 @@
 - _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)
+
 Crash when mixing matchadd and substitute()? (Max Christian Pohle, 2018 May
 13, #2910)  Can't reproduce?
 
@@ -96,29 +94,43 @@
 More warnings from static analysis:
 https://lgtm.com/projects/g/vim/vim/alerts/?mode=list
 
+Patch for Perl 5.28 on Windows. (#3196)
+
 Pasting foo} causes Vim to behave weird. (John Little, 2018 Jun 17)
 Related to bracketed paste.  I cannot reproduce it.
 
 Patch replacing imp with importlib. (#3163)
 
+Patch to make CTRL-S in mswin.vim work better. (#3211)
+But use "gi" instead of "a".
+
 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.
 
 Patch in pull request #2967: Allow white space in sign text. (Ben Jackson)
 
+Removing flags from 'cpoptions' breaks the Winbar buttons in termdebug.
+(Dominique Pelle, 2018 Jul 16)
+
 Whenever the file name is "~" then expand('%:p') returns $HOME. (Aidan
 Shafran, 2018 Jun 23, #3072)  Proposed patch by Aidan, 2018 Jun 24.
 
 Patch to set w_set_curswant when setting the cursor in language interfaces.
 (David Hotham, 2018 Jun 22, #3060)
 
+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)
+
 Patch to make CTRL-W <CR> work properly in a quickfix window. (Jason Franklin,
 2018 May 30)
 
-Patch to make mode() return something different for Normal mode when coming
-from Insert mode with CTRL-O. (#3000)
+gethostbyname() is old, use getaddrinfo() if available. (#3227)
 
-Patches for Python: #3162, #3263 (Ozaki Kiichi)
+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)  Useful for positioning the cursor.
 
 Script generated by :mksession does not work well if there are windows with
 modified buffers
@@ -231,6 +243,10 @@
 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)
 
@@ -256,6 +272,8 @@
 
 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)
 
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 @@
 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/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 @@
 特に、プログラムの編集に力を発揮します。
 .PP
 Vi に多くの改良が加えられています:
-多段アンドゥ、マルチウィンドウ、マルチバッファ、構文強調表示、
-コマンドライン編集、ファイル名補完、ヘルプ、ビジュアル選択、などなど。
+多段アンドゥ、マルチウィンドウ、マルチバッファ、構文強調表示、コマンドライン編集、ファイル名補完、ヘルプ、ビジュアル選択、などなど。
 .B Vim
 と Vi の違いについての要約は ":help vi_diff.txt" を参照してください。
 .PP
@@ -66,24 +65,23 @@
 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 @@
 一番目のファイルが読み込まれた後に {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 @@
 "\-d con:20/30/600/150".
 .TP
 \-D
-デバッグ。スクリプトの最初のコマンドが実行されるところからデバッグモードを開
-始します。
+デバッグ。
+スクリプトの最初のコマンドが実行されるところからデバッグモードを開始します。
 .TP
 \-e
 Ex モードで起動します。
@@ -203,8 +200,7 @@
 フォアグラウンド。GUI バージョンで、プロセスをフォークしなくなります。
 .TP
 \-F
-ペルシア語がサポートされていて、ペルシア語キーマップがある場合は、
-ペルシア語モードで起動します ('fkmap' と 'rightleft' がオンになります)。
+ペルシア語がサポートされていて、ペルシア語キーマップがある場合は、ペルシア語モードで起動します ('fkmap' と 'rightleft' がオンになります)。
 右横書きのファイルを編集できます。
 サポートされていない場合はエラーメッセージを表示して終了します。
 .TP
@@ -216,14 +212,13 @@
 コマンドライン引数やオプションのヘルプを表示して終了します。
 .TP
 \-H
-ヘブライ語がサポートされていて、ヘブライ語キーマップがある場合は、
-ヘブライ語モードで起動します ('hkmap' と 'rightleft' がオンになります)。
+ヘブライ語がサポートされていて、ヘブライ語キーマップがある場合は、ヘブライ語モードで起動します ('hkmap' と 'rightleft' がオンになります)。
 右横書きのファイルを編集できます。
 サポートされていない場合はエラーメッセージを表示して終了します。
 .TP
 \-i {viminfo}
-viminfo ファイルを使う設定になっている場合は、初期設定の "~/.viminfo" の代わ
-りに、指定されたファイルを設定します。
+viminfo ファイルを使う設定になっている場合は、初期設定の "~/.viminfo"
+の代わりに、指定されたファイルを設定します。
 "NONE" を指定すると、.viminfo ファイルを使わないように設定できます。
 .TP
 \-L
@@ -239,8 +234,8 @@
 バッファを変更することはできますが、ファイルを保存することはできません。
 .TP
 \-M
-変更を不可能にします。オプションの 'modifiable' と 'write' がオフになり、
-ファイルの変更と保存ができなくなります。
+変更を不可能にします。
+オプションの 'modifiable' と 'write' がオフになり、ファイルの変更と保存ができなくなります。
 Note: それらのオプションを設定すれば変更できるようになります。
 .TP
 \-N
@@ -252,8 +247,7 @@
 \-n
 スワップファイルを使用しません。
 クラッシュしてもリカバリできなくなります。
-フロッピーディスクのような非常に低速なメディアのファイルを読み書きするときに
-便利です。
+フロッピーディスクのような非常に低速なメディアのファイルを読み書きするときに便利です。
 ":set uc=0" と設定しても同じです。
 戻すには ":set uc=200" と設定してください。
 .TP
@@ -276,10 +270,8 @@
 \-R
 読み込み専用モード。
 オプション 'readonly' がオンになります。
-バッファを変更することはできますが、間違ってファイルを上書きしてしまうのを防
-ぐことができます。
-ファイルを保存したい場合は、":w!" のように、Ex コマンドに感嘆符を付けてくだ
-さい。
+バッファを変更することはできますが、間違ってファイルを上書きしてしまうのを防ぐことができます。
+ファイルを保存したい場合は、":w!" のように、Ex コマンドに感嘆符を付けてください。
 \-R オプションは \-n オプションの効果も含んでいます (上記参照)。
 オプション 'readonly' は ":set noro" でオフにできます。
 詳しくは ":help 'readonly'" を参照してください。
@@ -301,13 +293,13 @@
 {scriptin} をスクリプトファイルとして読み込まれます。
 ファイル中の文字列は、手で入力したときと同じように処理されます。
 これは ":source! {scriptin}" と同じ動作です。
-エディタが終了する前にファイルの終わりまで読み込んだ場合、
-それ以降はキーボードから入力を読み込みます。
+エディタが終了する前にファイルの終わりまで読み込んだ場合、それ以降はキーボードから入力を読み込みます。
 .TP
 \-T {terminal}
 端末の名前を指定します。
 端末が自動的に認識されない場合に使ってください。
-Vim が組み込みでサポートしている名前か、
+.B Vim
+が組み込みでサポートしている名前か、
 termcap または terminfo ファイルで定義されている名前を指定してください。
 .TP
 \-u {vimrc}
@@ -324,8 +316,9 @@
 詳しくは ":help gui\-init" を参照してください。
 .TP
 \-V[N]
-冗長モード。スクリプトファイルを実行したり viminfo ファイルを読み書きするた
-びにメッセージを表示します。N に指定した数値が 'verbose' に設定されます。
+冗長モード。
+スクリプトファイルを実行したり viminfo ファイルを読み書きするたびにメッセージを表示します。
+N に指定した数値が 'verbose' に設定されます。
 省略した場合は 10 になります。
 .TP
 \-v
@@ -335,8 +328,7 @@
 .TP
 \-w {scriptout}
 入力した文字を {scriptout} に記録します。
-"vim \-s" や "source!" で実行するためのスクリプトファイルを作成するのに便利
-です。
+"vim \-s" や "source!" で実行するためのスクリプトファイルを作成するのに便利です。
 {scriptout} ファイルがすでに存在した場合は追加保存されます。
 .TP
 \-W {scriptout}
@@ -371,46 +363,40 @@
 ヘルプを表示して終了します。"\-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 @@
 ユーザーの gvim 初期化ファイル。
 .TP
 /usr/local/lib/vim/optwin.vim
-":options" コマンドで使われるファイル。オプションを表示したり設定したりでき
-ます。
+":options" コマンドで使われるファイル。
+オプションを表示したり設定したりできます。
 .TP
 /usr/local/lib/vim/menu.vim
 システムのメニュー初期化ファイル。gvim で使います。
@@ -494,8 +480,7 @@
 .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/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 @@
 .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-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 @@
 .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 @@
 .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 @@
 .RI < seek >
 バイト目 (絶対位置、または相対位置) から開始する。
 \fI+ \fRは、現在の標準入力の位置から相対的な位置を示します
-(標準入力から読み込むときのみ意味があります)。\fI\- \fRは、入力の終わりから
-の文字数を示します (\fI+\fR と同時に指定した場合は、現在の標準入力の位置から
-手前の位置を示します)。
+(標準入力から読み込むときのみ意味があります)。
+\fI\- \fRは、入力の終わりからの文字数を示します
+(\fI+\fR と同時に指定した場合は、現在の標準入力の位置から手前の位置を示します)。
 \-s 引数を指定しなかった場合は、現在のファイル位置から開始されます。
 .TP
 .I \-u
@@ -149,21 +147,20 @@
 .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 @@
 .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 @@
 \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 @@
 .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 @@
 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 @@
 \fI:'a,'z!xxd \-r\fR
 .PP
 .B vim(1)
-の中から xxd をフィルタとして実行し、
-16 進ダンプされた行を元に戻す。戻したい行にカーソルを移動して:
+の中から xxd をフィルタとして実行し、16 進ダンプされた行を元に戻す。
+戻したい行にカーソルを移動して:
 .br
 \fI!!xxd \-r\fR
 .PP
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 @@
 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_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_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 &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_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 &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_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ŒêƒŠƒXƒg‚ɒljÁ'
+let g:menutrans_spell_ignore_ARG = '"%s"\ ‚𖳎‹'
+
 " Tools.Fold Menu
 menutrans &Folding			Üô‚Ý(&F)
 " open close folds
@@ -210,8 +214,7 @@
 menutrans &Alternate		— ‚֐ؑÖ(&A)
 menutrans &Next			ŽŸ‚̃oƒbƒtƒ@(&N)
 menutrans &Previous		‘O‚̃oƒbƒtƒ@(&P)
-menutrans [No\ File]		[–³‘è]
-let g:menutrans_no_file = "[–³‘è]"
+let g:menutrans_no_file = "[–³–¼]"
 
 " Window menu
 menutrans &Window			ƒEƒBƒ“ƒhƒE(&W)
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 @@
 " 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/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 @@
 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/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 @@
 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	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	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	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/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		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	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 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/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 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 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/tutor/Makefile b/runtime/tutor/Makefile
index 35fe821..a8834a1 100644
--- a/runtime/tutor/Makefile
+++ b/runtime/tutor/Makefile
@@ -66,10 +66,10 @@
 	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 @@
 (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.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 @@
      ¤Þ¤»¤ó¡£
 
   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 @@
 
   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: ¤³¤³¤Ç Vim ¤ò½ªÎ»¤·¡¢¥Õ¥¡¥¤¥ë̾ TEST ¤È¶¦¤Ëµ¯Æ°¤¹¤ë¤È¡¢Êݸ¤·¤¿»þ¤Î
      ¥Á¥å¡¼¥È¥ê¥¢¥ë¤ÎÊ£À½¤¬¤Ç¤­¾å¤¬¤ë¤Ï¤º¤Ç¤¹¡£
 
-  5. ¤µ¤é¤Ë¡¢¼¡¤Î¤è¤¦¤Ë¥¿¥¤¥×¤·¤Æ¥Õ¥¡¥¤¥ë¤ò¾Ã¤·¤Þ¤·¤ç¤¦(MS-DOS):  :!del TEST
-                                               ¤â¤·¤¯¤Ï(Unix):    :!rm TEST
+  5. ¤µ¤é¤Ë¡¢¼¡¤Î¤è¤¦¤Ë¥¿¥¤¥×¤·¤Æ¥Õ¥¡¥¤¥ë¤ò¾Ã¤·¤Þ¤·¤ç¤¦(Windows):  :!del TEST
+                                               ¤â¤·¤¯¤Ï(Unix):     :!rm TEST
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -696,7 +697,7 @@
   1.  :!command  ¤Ë¤è¤Ã¤Æ ³°Éô¥³¥Þ¥ó¥É¤ò¼Â¹Ô¤·¤Þ¤¹¡£
 
      ¤è¤¯»È¤¦Îã:
-	 (MS-DOS)	  (Unix)
+	 (Windows)	  (Unix)
 	  :!dir		   :!ls		   -  ¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î°ìÍ÷¤ò¸«¤ë¡£
 	  :!del FILENAME   :!rm FILENAME   -  ¥Õ¥¡¥¤¥ë¤òºï½ü¤¹¤ë¡£
 
@@ -718,7 +719,7 @@
 
     ** o ¤ò¥¿¥¤¥×¤¹¤ë¤È¡¢¥«¡¼¥½¥ë¤Î²¼¤Î¹Ô¤¬³«¤­¡¢ÁÞÆþ¥â¡¼¥É¤ËÆþ¤ê¤Þ¤¹ **
 
-  1. °Ê²¼¤Î ---> ¤È¼¨¤µ¤ì¤¿¹Ô¤Ë¥«¡¼¥½¥ë¤ò°Üư¤·¤Þ¤·¤ç¤¦¡£
+  1. °Ê²¼¤Î ---> ¤È¼¨¤µ¤ì¤¿ºÇ½é¤Î¹Ô¤Ë¥«¡¼¥½¥ë¤ò°Üư¤·¤Þ¤·¤ç¤¦¡£
 
   2. o (¾®Ê¸»ú) ¤ò¥¿¥¤¥×¤·¤Æ¡¢¥«¡¼¥½¥ë¤Î²¼¤Î¹Ô¤ò³«¤­¡¢ÁÞÆþ¥â¡¼¥É¤ËÆþ¤ê¤Þ¤¹¡£
 
@@ -741,7 +742,7 @@
 
       ** ¥«¡¼¥½¥ë¤Î¼¡¤Î°ÌÃÖ¤«¤é¥Æ¥­¥¹¥È¤òÄɲ乤ë¤Ë¤Ï a ¤È¥¿¥¤¥×¤·¤Þ¤¹ **
 
-  1. ¥«¡¼¥½¥ë¤ò ---> ¤Ç¼¨¤µ¤ì¤¿¹Ô¤Ø°Üư¤·¤Þ¤·¤ç¤¦¡£
+  1. ¥«¡¼¥½¥ë¤ò ---> ¤Ç¼¨¤µ¤ì¤¿ºÇ½é¤Î¹Ô¤Ø°Üư¤·¤Þ¤·¤ç¤¦¡£
 
   2. e ¤ò²¡¤·¤Æ li ¤Î½ªÃ¼Éô¤Þ¤Ç¥«¡¼¥½¥ë¤ò°Üư¤·¤Þ¤¹¡£
 
@@ -751,7 +752,7 @@
      ¤·¤Þ¤¹¡£
 
   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 @@
      ** ¥Æ¥­¥¹¥È¤Î¥³¥Ô¡¼¤Ë¤Ï¥ª¥Ú¥ì¡¼¥¿ y ¤ò¡¢¥Ú¡¼¥¹¥È¤Ë¤Ï p ¤ò»È¤¤¤Þ¤¹ **
 
   1. ---> ¤È¼¨¤µ¤ì¤¿¹Ô¤Ø°Üư¤·¡¢¥«¡¼¥½¥ë¤ò "a)" ¤Î¸å¤ËÃÖ¤¤¤Æ¤ª¤­¤Þ¤¹¡£
-  
+
   2. v ¤Ç¥Ó¥¸¥å¥¢¥ë¥â¡¼¥É¤ò³«»Ï¤·¡¢"first" ¤Î¼êÁ°¤Þ¤Ç¥«¡¼¥½¥ë¤ò°Üư¤·¤Þ¤¹¡£
-  
+
   3. y ¤ò¥¿¥¤¥×¤·¤Æ¶¯Ä´É½¼¨¤µ¤ì¤¿¥Æ¥­¥¹¥È¤ò yank (¥³¥Ô¡¼)¤·¤Þ¤¹¡£
 
   4. ¼¡¤Î¹Ô¤Î¹ÔËö¤Þ¤Ç¥«¡¼¥½¥ë¤ò°Üư¤·¤Þ¤¹:  j$
@@ -810,7 +811,7 @@
 
   ** ¸¡º÷¤äÃÖ´¹¤ÎºÝ¤ËÂçʸ»ú/¾®Ê¸»ú¤ò̵»ë¤¹¤ë¤Ë¤Ï¡¢¥ª¥×¥·¥ç¥ó¤òÀßÄꤷ¤Þ¤¹ **
 
-  1. ¼¡¤ÎÍÍ¤ËÆþÎϤ·¤Æ 'ignore' ¤ò¸¡º÷¤·¤Þ¤·¤ç¤¦:  /ignore  <ENTER>
+  1. ¼¡¤ÎÍÍ¤ËÆþÎϤ·¤Æ 'ignore' ¤ò¸¡º÷¤·¤Þ¤·¤ç¤¦:  /ignore <ENTER>
      n ¤ò²¡¤·¤Æ²¿ÅÙ¤«¸¡º÷¤ò·«¤êÊÖ¤·¤Þ¤¹¡£
 
   2. ¼¡¤ÎÍÍ¤ËÆþÎϤ·¤Æ 'ic' (Ignore Case ¤Îά) ¥ª¥×¥·¥ç¥ó¤òÀßÄꤷ¤Þ¤¹:  :set ic
@@ -820,13 +821,13 @@
 
   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 @@
   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 @@
 
   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 @@
 
   4. CTRL-D ¤ò²¡¤¹¤È Vim ¤Ï "e" ¤«¤é»Ï¤Þ¤ë¥³¥Þ¥ó¥É¤Î°ìÍ÷¤òɽ¼¨¤·¤Þ¤¹¡£
 
-  5. <TAB> ¤ò²¡¤¹¤È Vim ¤Ï ":edit" ¤È¤¤¤¦¥³¥Þ¥ó¥É̾¤òÊä´°¤·¤Þ¤¹¡£
+  5. d<TAB> ¤È¥¿¥¤¥×¤¹¤ë¤È Vim ¤Ï ":edit" ¤È¤¤¤¦¥³¥Þ¥ó¥É̾¤òÊä´°¤·¤Þ¤¹¡£
 
   6. ¤µ¤é¤Ë¶õÇò¤È¡¢´û¸¤Î¥Õ¥¡¥¤¥ë̾¤Î»Ï¤Þ¤ê¤ò²Ã¤¨¤Þ¤¹:  :edit FIL
 
@@ -923,7 +924,7 @@
 			       ¥ì¥Ã¥¹¥ó 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 @@
      ‚Ü‚¹‚ñB
 
   2. ƒVƒFƒ‹ƒvƒƒ“ƒvƒg‚Å‚±‚̃Rƒ}ƒ“ƒh‚ðƒ^ƒCƒv‚µ‚Ü‚·:  vim tutor <ENTER>
-     'vim'‚ª Vim ƒGƒfƒBƒ^‚ð‹N“®‚·‚éƒRƒ}ƒ“ƒhA'tutor' ‚͕ҏW‚µ‚½‚¢ƒtƒ@ƒCƒ‹‚Ì
+     'vim' ‚ª Vim ƒGƒfƒBƒ^‚ð‹N“®‚·‚éƒRƒ}ƒ“ƒhA'tutor' ‚͕ҏW‚µ‚½‚¢ƒtƒ@ƒCƒ‹‚Ì
      –¼‘O‚Å‚·B•ύX‚µ‚Ä‚à‚æ‚¢ƒtƒ@ƒCƒ‹‚ðŽg‚¢‚Ü‚µ‚傤B
 
   3. ‘O‚̃ŒƒbƒXƒ“‚ÅŠw‚ñ‚¾‚悤‚ɁAƒeƒLƒXƒg‚ð‘}“üAíœ‚µ‚Ü‚·B
 
-  4. •ύX‚ðƒtƒ@ƒCƒ‹‚ɕۑ¶‚µ‚Ü‚·:  :wq  <ENTER>
+  4. •ύX‚ðƒtƒ@ƒCƒ‹‚ɕۑ¶‚µ‚Ü‚·:  :wq <ENTER>
 
   5. ƒXƒeƒbƒv 1 ‚Å vimtutor ‚ðI—¹‚µ‚½ê‡‚Í vimtutor ‚ðÄ“x‹N“®‚µAˆÈ‰º‚Ì
      —v–ñ‚֐i‚݂܂µ‚傤B
 
   6. ˆÈã‚̃Xƒeƒbƒv‚ð“Ç‚ñ‚Å—‰ð‚µ‚½ã‚Å‚±‚ê‚ðŽÀs‚µ‚Ü‚µ‚傤B
-  
+
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 				ƒŒƒbƒXƒ“ 1 —v–ñ
 
@@ -558,11 +558,12 @@
 
   1. ˆÈ‰º‚Ì ---> ‚ÆŽ¦‚³‚ꂽs‚ɃJ[ƒ\ƒ‹‚ðˆÚ“®‚µ‚Ü‚µ‚傤B
 
-  2. :s/thee/the <ENTER> ‚ƃ^ƒCƒv‚µ‚Ü‚µ‚傤B‚±‚̃Rƒ}ƒ“ƒh‚Í‚»‚̍s‚ōŏ‰‚ÉŒ©
-     ‚‚©‚Á‚½‚à‚̂ɂ¾‚¯s‚È‚í‚ê‚邱‚ƂɋC‚ð‚‚¯‚Ü‚µ‚傤B
+  2. :s/thee/the <ENTER> ‚ƃ^ƒCƒv‚µ‚Ü‚µ‚傤B‚±‚̃Rƒ}ƒ“ƒh‚Í‚»‚̍s‚ōŏ‰‚ÉŒ©‚Â
+     ‚©‚Á‚½‚à‚̂ɂ¾‚¯s‚í‚ê‚邱‚ƂɋC‚ð‚‚¯‚Ü‚µ‚傤B
 
-  3. ‚Å‚Í :s/thee/the/g	‚ƃ^ƒCƒv‚µ‚Ü‚µ‚傤Bs‘S‘Ì‚ð’uŠ·‚·‚邱‚Æ‚ðˆÓ–¡‚µ‚Ü‚·B
-     ‚±‚̕ύX‚Í‚»‚̍s‚ÅŒ©‚‚©‚Á‚½‘S‚Ä‚Ì‰ÓŠ‚É‘Î‚µ‚čs‚È‚í‚ê‚Ü‚·B
+  3. ‚Å‚Í :s/thee/the/g ‚ƃ^ƒCƒv‚µ‚Ü‚µ‚傤B’ljÁ‚µ‚½ g ƒtƒ‰ƒO‚͍s‘S‘Ì‚ð’uŠ·‚·
+     ‚邱‚Æ‚ðˆÓ–¡‚µ‚Ü‚·B‚±‚̕ύX‚Í‚»‚̍s‚ÅŒ©‚‚©‚Á‚½‘S‚Ä‚Ì‰ÓŠ‚É‘Î‚µ‚čs‚í‚ê
+     ‚Ü‚·B
 
 ---> thee best time to see thee flowers is in thee spring.
 
@@ -638,8 +639,8 @@
 NOTE: ‚±‚±‚Å Vim ‚ðI—¹‚µAƒtƒ@ƒCƒ‹–¼ TEST ‚Æ‹¤‚É‹N“®‚·‚邯A•Û‘¶‚µ‚½Žž‚Ì
      ƒ`ƒ…[ƒgƒŠƒAƒ‹‚Ì•¡»‚ª‚Å‚«ã‚ª‚é‚Í‚¸‚Å‚·B
 
-  5. ‚³‚ç‚ɁAŽŸ‚̂悤‚Ƀ^ƒCƒv‚µ‚ătƒ@ƒCƒ‹‚ðÁ‚µ‚Ü‚µ‚傤(MS-DOS):  :!del TEST
-                                               ‚à‚µ‚­‚Í(Unix):    :!rm TEST
+  5. ‚³‚ç‚ɁAŽŸ‚̂悤‚Ƀ^ƒCƒv‚µ‚ătƒ@ƒCƒ‹‚ðÁ‚µ‚Ü‚µ‚傤(Windows):  :!del TEST
+                                               ‚à‚µ‚­‚Í(Unix):     :!rm TEST
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -696,7 +697,7 @@
   1.  :!command  ‚É‚æ‚Á‚Ä ŠO•”ƒRƒ}ƒ“ƒh‚ðŽÀs‚µ‚Ü‚·B
 
      ‚æ‚­Žg‚¤—á:
-	 (MS-DOS)	  (Unix)
+	 (Windows)	  (Unix)
 	  :!dir		   :!ls		   -  ƒfƒBƒŒƒNƒgƒŠ“à‚̈ꗗ‚ðŒ©‚éB
 	  :!del FILENAME   :!rm FILENAME   -  ƒtƒ@ƒCƒ‹‚ðíœ‚·‚éB
 
@@ -718,7 +719,7 @@
 
     ** o ‚ðƒ^ƒCƒv‚·‚邯AƒJ[ƒ\ƒ‹‚̉º‚̍s‚ªŠJ‚«A‘}“üƒ‚[ƒh‚É“ü‚è‚Ü‚· **
 
-  1. ˆÈ‰º‚Ì ---> ‚ÆŽ¦‚³‚ꂽs‚ɃJ[ƒ\ƒ‹‚ðˆÚ“®‚µ‚Ü‚µ‚傤B
+  1. ˆÈ‰º‚Ì ---> ‚ÆŽ¦‚³‚ꂽÅ‰‚̍s‚ɃJ[ƒ\ƒ‹‚ðˆÚ“®‚µ‚Ü‚µ‚傤B
 
   2. o (¬•¶Žš) ‚ðƒ^ƒCƒv‚µ‚āAƒJ[ƒ\ƒ‹‚̉º‚̍s‚ðŠJ‚«A‘}“üƒ‚[ƒh‚É“ü‚è‚Ü‚·B
 
@@ -741,7 +742,7 @@
 
       ** ƒJ[ƒ\ƒ‹‚ÌŽŸ‚̈ʒu‚©‚çƒeƒLƒXƒg‚ð’ljÁ‚·‚é‚É‚Í a ‚ƃ^ƒCƒv‚µ‚Ü‚· **
 
-  1. ƒJ[ƒ\ƒ‹‚ð ---> ‚ÅŽ¦‚³‚ꂽs‚ÖˆÚ“®‚µ‚Ü‚µ‚傤B
+  1. ƒJ[ƒ\ƒ‹‚ð ---> ‚ÅŽ¦‚³‚ꂽÅ‰‚̍s‚ÖˆÚ“®‚µ‚Ü‚µ‚傤B
 
   2. e ‚ð‰Ÿ‚µ‚Ä li ‚̏I’[•”‚܂ŃJ[ƒ\ƒ‹‚ðˆÚ“®‚µ‚Ü‚·B
 
@@ -751,7 +752,7 @@
      ‚µ‚Ü‚·B
 
   5. e ‚ðŽg‚Á‚ÄŽŸ‚Ì•sŠ®‘S‚È’PŒê‚ÖˆÚ“®‚µAƒXƒeƒbƒv 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 @@
      ** ƒeƒLƒXƒg‚̃Rƒs[‚ɂ̓IƒyƒŒ[ƒ^ y ‚ðAƒy[ƒXƒg‚É‚Í p ‚ðŽg‚¢‚Ü‚· **
 
   1. ---> ‚ÆŽ¦‚³‚ꂽs‚ÖˆÚ“®‚µAƒJ[ƒ\ƒ‹‚ð "a)" ‚ÌŒã‚É’u‚¢‚Ä‚¨‚«‚Ü‚·B
-  
+
   2. v ‚ŃrƒWƒ…ƒAƒ‹ƒ‚[ƒh‚ðŠJŽn‚µA"first" ‚ÌŽè‘O‚܂ŃJ[ƒ\ƒ‹‚ðˆÚ“®‚µ‚Ü‚·B
-  
+
   3. y ‚ðƒ^ƒCƒv‚µ‚Ä‹­’²•\ަ‚³‚ꂽƒeƒLƒXƒg‚ð yank (ƒRƒs[)‚µ‚Ü‚·B
 
   4. ŽŸ‚̍s‚̍s––‚܂ŃJ[ƒ\ƒ‹‚ðˆÚ“®‚µ‚Ü‚·:  j$
@@ -810,7 +811,7 @@
 
   ** ŒŸõ‚â’uŠ·‚ÌÛ‚É‘å•¶Žš/¬•¶Žš‚𖳎‹‚·‚é‚ɂ́AƒIƒvƒVƒ‡ƒ“‚ðÝ’肵‚Ü‚· **
 
-  1. ŽŸ‚Ì—l‚É“ü—Í‚µ‚Ä 'ignore' ‚ðŒŸõ‚µ‚Ü‚µ‚傤:  /ignore  <ENTER>
+  1. ŽŸ‚Ì—l‚É“ü—Í‚µ‚Ä 'ignore' ‚ðŒŸõ‚µ‚Ü‚µ‚傤:  /ignore <ENTER>
      n ‚ð‰Ÿ‚µ‚ĉ½“x‚©ŒŸõ‚ðŒJ‚è•Ô‚µ‚Ü‚·B
 
   2. ŽŸ‚Ì—l‚É“ü—Í‚µ‚Ä 'ic' (Ignore Case ‚Ì—ª) ƒIƒvƒVƒ‡ƒ“‚ðÝ’肵‚Ü‚·:  :set ic
@@ -820,13 +821,13 @@
 
   4. 'hlsearch' ‚Æ 'incsearch' ƒIƒvƒVƒ‡ƒ“‚ðÝ’肵‚Ü‚µ‚傤:  :set hls is
 
-  5. ŒŸõƒRƒ}ƒ“ƒh‚ðÄ“ü—Í‚µ‚āA‰½‚ª‹N‚±‚é‚©Œ©‚Ă݂܂µ‚傤:  /ignore  <ENTER>
+  5. ŒŸõƒRƒ}ƒ“ƒh‚ðÄ“ü—Í‚µ‚āA‰½‚ª‹N‚±‚é‚©Œ©‚Ă݂܂µ‚傤:  /ignore <ENTER>
 
   6. ‘å•¶Žš¬•¶Žš‚Ì‹æ•ʂ𖳌ø‚É‚·‚é‚ɂ͎Ÿ‚Ì—l‚É“ü—Í‚µ‚Ü‚·:  :set noic
 
-NOTE: ƒ}ƒbƒ`‚Ì‹­’²•\ަ‚ð‚â‚ß‚é‚ɂ͎Ÿ‚Ì—l‚É“ü—Í‚µ‚Ü‚·: :nohlsearch
+NOTE: ƒ}ƒbƒ`‚Ì‹­’²•\ަ‚ð‚â‚ß‚é‚ɂ͎Ÿ‚Ì—l‚É“ü—Í‚µ‚Ü‚·:  :nohlsearch
 NOTE: 1‚‚̌ŸõƒRƒ}ƒ“ƒh‚¾‚¯‘å•¶Žš¬•¶Žš‚Ì‹æ•Ê‚ð‚â‚ß‚½‚¢‚È‚ç‚΁AƒtƒŒ[ƒY‚É \c
-      ‚ðŽg—p‚µ‚Ü‚·:  /ignore\c  <ENTER>
+      ‚ðŽg—p‚µ‚Ü‚·:  /ignore\c <ENTER>
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 				ƒŒƒbƒXƒ“ 6 —v–ñ
 
@@ -843,12 +844,12 @@
   5. ‘å•¶Žš‚Ì R ‚ðƒ^ƒCƒv‚·‚邯’uŠ·ƒ‚[ƒh‚É“ü‚èA<ESC>‚ð‰Ÿ‚·‚Æ”²‚¯‚éB
 
   6. ":set xxx" ‚ƃ^ƒCƒv‚·‚邯ƒIƒvƒVƒ‡ƒ“ "xxx" ‚ªÝ’肳‚ê‚éB
-  	'ic' 'ignorecase'	ŒŸõŽž‚É‘å•¶Žš¬•¶Žš‚Ì‹æ•Ê‚µ‚È‚¢
+	'ic' 'ignorecase'	ŒŸõŽž‚É‘å•¶Žš¬•¶Žš‚Ì‹æ•Ê‚µ‚È‚¢
 	'is' 'incsearch'	ŒŸõƒtƒŒ[ƒY‚É•”•ªƒ}ƒbƒ`‚µ‚Ä‚¢‚é•”•ª‚ð•\ަ‚·‚é
 	'hls' 'hlsearch'	ƒ}ƒbƒ`‚·‚é‚·‚×‚ð‹­’²•\ަ‚·‚é
      ’·‚¢•ûA’Z‚¢•ûA‚Ç‚¿‚ç‚̃IƒvƒVƒ‡ƒ“–¼‚Å‚àŽg—p‚Å‚«‚Ü‚·B
 
-  7. "no" ‚ð•t—^‚µAƒIƒvƒVƒ‡ƒ“‚𖳌ø‚É‚µ‚Ü‚·:  :set noic
+  7. ƒIƒvƒVƒ‡ƒ“‚𖳌ø‚É‚·‚é‚É‚Í "no" ‚ð•t—^‚µ‚Ü‚·:  :set noic
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 		    ƒŒƒbƒXƒ“ 7.1: ƒIƒ“ƒ‰ƒCƒ“ƒwƒ‹ƒvƒRƒ}ƒ“ƒh
@@ -884,7 +885,7 @@
 
   1. "vimrc" ƒtƒ@ƒCƒ‹‚̕ҏW‚ðŠJŽn‚·‚éB‚±‚ê‚̓VƒXƒeƒ€‚Ɉˑ¶‚µ‚Ü‚·B
 	:edit ~/.vimrc			UNIX Œü‚¯
-	:edit $VIM/_vimrc		MS-Windows Œü‚¯
+	:edit $VIM/_vimrc		Windows Œü‚¯
 
   2. ‚±‚±‚ŃTƒ“ƒvƒ‹‚Ì "vimrc" ‚ð“ǂݍž‚݂܂·B
 	:read $VIMRUNTIME/vimrc_example.vim
@@ -910,7 +911,7 @@
 
   4. CTRL-D ‚ð‰Ÿ‚·‚Æ Vim ‚Í "e" ‚©‚çŽn‚Ü‚éƒRƒ}ƒ“ƒh‚̈ꗗ‚ð•\ަ‚µ‚Ü‚·B
 
-  5. <TAB> ‚ð‰Ÿ‚·‚Æ Vim ‚Í ":edit" ‚Æ‚¢‚¤ƒRƒ}ƒ“ƒh–¼‚ð•⊮‚µ‚Ü‚·B
+  5. d<TAB> ‚ƃ^ƒCƒv‚·‚邯 Vim ‚Í ":edit" ‚Æ‚¢‚¤ƒRƒ}ƒ“ƒh–¼‚ð•⊮‚µ‚Ü‚·B
 
   6. ‚³‚ç‚ɋ󔒂ƁAŠù‘¶‚̃tƒ@ƒCƒ‹–¼‚ÌŽn‚Ü‚è‚ð‰Á‚¦‚Ü‚·:  :edit FIL
 
@@ -923,7 +924,7 @@
 			       ƒŒƒbƒXƒ“ 7 —v–ñ
 
 
-  1. ƒwƒ‹ƒvƒEƒBƒ“ƒhƒE‚ðŠJ‚­‚É‚Í :help ‚Æ‚·‚é‚© <F1> ‚à‚µ‚­‚Í <Help> ‚ð‰Ÿ‚·B
+  1. ƒwƒ‹ƒvƒEƒBƒ“ƒhƒE‚ðŠJ‚­‚É‚Í :help ‚Æ‚·‚é‚© <F1> ‚à‚µ‚­‚Í <HELP> ‚ð‰Ÿ‚·B
 
   2. ƒRƒ}ƒ“ƒh(cmd)‚̃wƒ‹ƒv‚ðŒŸõ‚·‚é‚É‚Í :help cmd ‚ƃ^ƒCƒv‚·‚éB
 
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 @@
      ません。
 
   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 @@
 
   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: ここで Vim を終了し、ファイル名 TEST と共に起動すると、保存した時の
      チュートリアルの複製ができ上がるはずです。
 
-  5. さらに、次のようにタイプしてファイルを消しましょう(MS-DOS):  :!del TEST
-                                               もしくは(Unix):    :!rm TEST
+  5. さらに、次のようにタイプしてファイルを消しましょう(Windows):  :!del TEST
+                                               もしくは(Unix):     :!rm TEST
 
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -696,7 +697,7 @@
   1.  :!command  によって 外部コマンドを実行します。
 
      よく使う例:
-	 (MS-DOS)	  (Unix)
+	 (Windows)	  (Unix)
 	  :!dir		   :!ls		   -  ディレクトリ内の一覧を見る。
 	  :!del FILENAME   :!rm FILENAME   -  ファイルを削除する。
 
@@ -718,7 +719,7 @@
 
     ** o をタイプすると、カーソルの下の行が開き、挿入モードに入ります **
 
-  1. 以下の ---> と示された行にカーソルを移動しましょう。
+  1. 以下の ---> と示された最初の行にカーソルを移動しましょう。
 
   2. o (小文字) をタイプして、カーソルの下の行を開き、挿入モードに入ります。
 
@@ -741,7 +742,7 @@
 
       ** カーソルの次の位置からテキストを追加するには a とタイプします **
 
-  1. カーソルを ---> で示された行へ移動しましょう。
+  1. カーソルを ---> で示された最初の行へ移動しましょう。
 
   2. e を押して li の終端部までカーソルを移動します。
 
@@ -751,7 +752,7 @@
      します。
 
   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 @@
      ** テキストのコピーにはオペレータ y を、ペーストには p を使います **
 
   1. ---> と示された行へ移動し、カーソルを "a)" の後に置いておきます。
-  
+
   2. v でビジュアルモードを開始し、"first" の手前までカーソルを移動します。
-  
+
   3. y をタイプして強調表示されたテキストを yank (コピー)します。
 
   4. 次の行の行末までカーソルを移動します:  j$
@@ -810,7 +811,7 @@
 
   ** 検索や置換の際に大文字/小文字を無視するには、オプションを設定します **
 
-  1. 次の様に入力して 'ignore' を検索しましょう:  /ignore  <ENTER>
+  1. 次の様に入力して 'ignore' を検索しましょう:  /ignore <ENTER>
      n を押して何度か検索を繰り返します。
 
   2. 次の様に入力して 'ic' (Ignore Case の略) オプションを設定します:  :set ic
@@ -820,13 +821,13 @@
 
   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 @@
   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 @@
 
   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 @@
 
   4. CTRL-D を押すと Vim は "e" から始まるコマンドの一覧を表示します。
 
-  5. <TAB> を押すと Vim は ":edit" というコマンド名を補完します。
+  5. d<TAB> とタイプすると Vim は ":edit" というコマンド名を補完します。
 
   6. さらに空白と、既存のファイル名の始まりを加えます:  :edit FIL
 
@@ -923,7 +924,7 @@
 			       レッスン 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
similarity index 100%
rename from runtime/tutor/tutor.lv
rename to runtime/tutor/tutor.lv.utf-8
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 @@
   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 @@
   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 @@
   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 @@
 " 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"