1
- *os_win32.txt* For Vim バージョン 8.0. Last change: 2016 Oct 12
1
+ *os_win32.txt* For Vim バージョン 8.0. Last change: 2017 Mar 21
2
2
3
3
4
4
VIMリファレンスマニュアル by George Reilly
@@ -81,10 +81,45 @@ Vim 実行ファイルのディレクトリが $PATH に追加される。これ
81
81
executable() が 1 を返すときは実際にその実行ファイルが実行可能であるように
82
82
なる。
83
83
84
- ファイル名のクォート *win32-quotes*
85
-
86
- ファイル名の中のクォート(もしくは他のコマンドコマンド引数)はバックスラッシュで
87
- エスケープできる。例。 >
84
+ コマンドライン引数 *win32-cmdargs*
85
+
86
+ コマンドラインからパラメーターへの解析は MS Windows で標準化されていない。
87
+ Vim と gvim はかつては(7.4.432以前)、それをパースするために異なるロジックを用
88
+ いており、さらにどのコンパイラでコンパイルしたかにも依存していた。現在では Vim
89
+ も gvim も CommandLineToArgvW() Win32 API を使用しており、どちらも同じように動
90
+ 作する。
91
+
92
+ 基本的なルール: *win32-backslashes*
93
+ a) パラメーターは表示可能文字である
94
+ b) パラメーターはスペースで区切られている
95
+ c) ダブルクォートで囲めばパラメーターにスペースを含むことができる
96
+ d) バックスラッシュ(\)が一つ以上の後に続くダブルクォート(")は特別な文
97
+ 字である。バックスラッシュの数を半分に割って小数を切捨てた数に意味が
98
+ ある。奇数ならバックスラッシュはスペースやタブの効果を変える。偶数な
99
+ らバックスラッシュはリテラルのダブルクォートを作る。
100
+
101
+ つまり:
102
+ " は特別なダブルクォート
103
+ \" はリテラルのダブルクォート
104
+ \\" はリテラルのバックスラッシュと特別なダブルクォート
105
+ \\\" はリテラルのバックスラッシュとリテラルのダブルクォート
106
+ \\\\" はリテラルのバックスラッシュ二つと特別なダブルクォート
107
+ \\\\\" はリテラルのバックスラッシュ二つとリテラルのダブルクォート
108
+ etc.
109
+
110
+ 例: >
111
+ gvim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"
112
+
113
+ は "C:\My Music\freude" を開き、次のコマンドを実行する: >
114
+ set ignorecase; /"foo\ and /bar\"
115
+
116
+ これらのルールは CommandLineToArgvW API のリファレンスにも記載されている:
117
+ https://msdn.microsoft.com/en-us/library/windows/desktop/bb776391.aspx
118
+
119
+ *win32-quotes*
120
+ クォートには追加のルールがある(これらはちゃんとドキュメント化されていない)。
121
+ 前述の通り、ファイル名(もしくは他のコマンドライン引数)の中のクォートはバックス
122
+ ラッシュでエスケープできる。例。 >
88
123
vim -c "echo 'foo\"bar'"
89
124
90
125
その代わりにクォートを3つ使う事もできる: >
@@ -94,9 +129,9 @@ executable() が 1 を返すときは実際にその実行ファイルが実行
94
129
95
130
1. 一つの `" ` はクォートの始まり。
96
131
2. 他の `" ` や `" " ` はクォートの終わり。もしクォートが `" " ` で終わっているなら
97
- `" ` はクォートされた文字列の終わりとして処理される 。
132
+ クォートされた文字列の終わりに `" ` が生成される 。
98
133
99
- 例えば引数を1つずつを [] で囲った場合:
134
+ 例えば、引数を1つずつ [] で囲った場合:
100
135
"foo" -> [foo]
101
136
"foo"" -> [foo"]
102
137
"foo"bar -> [foobar]
@@ -135,7 +170,7 @@ Windows 95/98/ME のサポートはパッチ 8.0.0029 にて削除された。
135
170
6. Windows 3.1での使用 *win32-win3.1*
136
171
137
172
*win32s* *windows-3.1* *gui-w32s*
138
- これらは Windows 3.1 や 3.11 上で実行される Gvim の特別なバージョンであった 。
173
+ かつて Windows 3.1 や 3.11 上で動作する gvim の特別なバージョンがあった 。
139
174
パッチ 7.4.1363 にてサポートは削除された。
140
175
141
176
==============================================================================
@@ -214,10 +249,19 @@ A. できない! これはNTコンソールの制限である。NT 5.0では
214
249
ドウに対して、同時に点滅頻度を設定できるようになるといわれている。
215
250
216
251
*:!start*
217
- Q. 非同期的に外部コマンドやプログラムを実行するにはどうしたらよいか?
218
- A. :!を使って外部コマンドを実行している場合、"start" と共に実行できる: >
219
- :!start winfile.exe<CR>
220
- < "start" を使うと、Vimは他のスクリーンに切り替えたり、新しいコンソールを開い
252
+ Q. 非同期的に外部コマンドやプログラムを実行したり、ドキュメントや URL を既定の
253
+ プログラムで開くにはどうしたらよいか?
254
+ A. :!を使って外部コマンドを実行している場合、"start" と共に実行できる。例えば
255
+ notepad を起動するには: >
256
+ :!start notepad
257
+ < 既定のイメージビューワーで "image.jpg" を開くには: >
258
+ :!start image.jpg
259
+ < 現在のファイルのフォルダーを Windows エクスプローラーで開くには: >
260
+ :!start %:h
261
+ < 既定のブラウザーで Vim のホームページを開くには: >
262
+ :!start http://www.vim.org/
263
+ <
264
+ "start" を使うと、Vimは他のスクリーンに切り替えたり、新しいコンソールを開い
221
265
たり、プログラムが終了するまで待ったりしなくなる; つまり、走らせるプログラ
222
266
ムは編集中のファイルに何の影響も与えない。:!startで始まったプログラムは、
223
267
Vimの開いたファイルハンドルを受け渡されないため、Vimより早く終了する必要は
0 commit comments