Skip to content

Commit 2f157c9

Browse files
committed
Update gui_w32.txt and os_win32.txt
1 parent 841d8af commit 2f157c9

File tree

4 files changed

+114
-86
lines changed

4 files changed

+114
-86
lines changed

doc/gui_w32.jax

Lines changed: 2 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
*gui_w32.txt* For Vim バージョン 8.0. Last change: 2014 Dec 20
1+
*gui_w32.txt* For Vim バージョン 8.0. Last change: 2017 Oct 27
22

33

44
VIMリファレンスマニュアル by Bram Moolenaar
@@ -387,37 +387,7 @@ Win32 GUI版ではMotifの「切取メニュー」をエミュレートする。
387387
==============================================================================
388388
7. コマンドライン引数 *gui-w32-cmdargs*
389389

390-
パラメーターの中のコマンドラインの分析は MS Windows で標準化されていない。
391-
GVim はコマンドラインの分析のロジックを提供しなければならない。このロジック
392-
はVimをコンパイルするのに使われたシステムが提供するロジックとは異なるだろう。
393-
この違いはダブルクォート(")の使い方が一般的でないのと関係する。
394-
引数の "C:\My Music\freude.txt" と "+/Sch\"iller" は同じように扱われる。引数
395-
"+/Sch""iller" はgvimやvim、それがどのようにコンパイルされたかによって、扱い
396-
が変わる。
397-
398-
ルール:
399-
a) パラメーターは表示可能文字である
400-
b) パラメーターはスペースで区切られている
401-
c) ダブルクォートで囲めばパラメーターにスペースを含むことができる
402-
d) バックスラッシュ(\)が一つ以上の後に続くダブルクォート(")は特別な文
403-
字である。バックスラッシュの数を半分に割って小数を切捨てた数に意味が
404-
ある。奇数ならバックスラッシュはスペースやタブの効果を変える。偶数な
405-
らバックスラッシュはリテラルのダブルクォートを作る。
406-
407-
つまり:
408-
" は特別なダブルクォート
409-
\" はリテラルのダブルクォート
410-
\\" はリテラルのバックスラッシュと特別なダブルクォート
411-
\\\" はリテラルのバックスラッシュとリテラルのダブルクォート
412-
\\\\" はリテラルのバックスラッシュ二つと特別なダブルクォート
413-
\\\\\" はリテラルのバックスラッシュ二つとリテラルのダブルクォート
414-
etc.
415-
416-
例: >
417-
gvim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"
418-
419-
は "C:\My Music\freude" を開き、次のコマンドを実行する: >
420-
set ignorecase; /"foo\ and /bar\"
390+
コマンドライン引数はコンソール版と同じ挙動となる。|win32-cmdargs| を参照。
421391

422392
==============================================================================
423393
8. その他色々 *gui-w32-various*

doc/os_win32.jax

Lines changed: 56 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
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
22

33

44
VIMリファレンスマニュアル by George Reilly
@@ -81,10 +81,45 @@ Vim 実行ファイルのディレクトリが $PATH に追加される。これ
8181
executable() が 1 を返すときは実際にその実行ファイルが実行可能であるように
8282
なる。
8383

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+
ラッシュでエスケープできる。例。 >
88123
vim -c "echo 'foo\"bar'"
89124
90125
その代わりにクォートを3つ使う事もできる: >
@@ -94,9 +129,9 @@ executable() が 1 を返すときは実際にその実行ファイルが実行
94129

95130
1. 一つの `"` はクォートの始まり。
96131
2. 他の `"``""` はクォートの終わり。もしクォートが `""` で終わっているなら
97-
`"` はクォートされた文字列の終わりとして処理される
132+
クォートされた文字列の終わりに `"` が生成される
98133

99-
例えば引数を1つずつを [] で囲った場合:
134+
例えば、引数を1つずつ [] で囲った場合:
100135
"foo" -> [foo]
101136
"foo"" -> [foo"]
102137
"foo"bar -> [foobar]
@@ -135,7 +170,7 @@ Windows 95/98/ME のサポートはパッチ 8.0.0029 にて削除された。
135170
6. Windows 3.1での使用 *win32-win3.1*
136171

137172
*win32s* *windows-3.1* *gui-w32s*
138-
これらは Windows 3.1 や 3.11 上で実行される Gvim の特別なバージョンであった
173+
かつて Windows 3.1 や 3.11 上で動作する gvim の特別なバージョンがあった
139174
パッチ 7.4.1363 にてサポートは削除された。
140175

141176
==============================================================================
@@ -214,10 +249,19 @@ A. できない! これはNTコンソールの制限である。NT 5.0では
214249
ドウに対して、同時に点滅頻度を設定できるようになるといわれている。
215250

216251
*:!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は他のスクリーンに切り替えたり、新しいコンソールを開い
221265
たり、プログラムが終了するまで待ったりしなくなる; つまり、走らせるプログラ
222266
ムは編集中のファイルに何の影響も与えない。:!startで始まったプログラムは、
223267
Vimの開いたファイルハンドルを受け渡されないため、Vimより早く終了する必要は

en/gui_w32.txt

Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
*gui_w32.txt* For Vim version 8.0. Last change: 2014 Dec 20
1+
*gui_w32.txt* For Vim version 8.0. Last change: 2017 Oct 27
22

33

44
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -382,38 +382,8 @@ Note that a menu that starts with ']' will not be displayed.
382382
==============================================================================
383383
7. Command line arguments *gui-w32-cmdargs*
384384

385-
Analysis of a command line into parameters is not standardised in MS Windows.
386-
Gvim has to provide logic to analyse a command line. This logic is likely to
387-
be different from the default logic provided by a compilation system used to
388-
build vim. The differences relate to unusual double quote (") usage.
389-
The arguments "C:\My Music\freude.txt" and "+/Sch\"iller" are handled in the
390-
same way. The argument "+/Sch""iller" may be handled different by gvim and
391-
vim, depending what it was compiled with.
392-
393-
The rules are:
394-
a) A parameter is a sequence of graphic characters.
395-
b) Parameters are separated by white space.
396-
c) A parameter can be enclosed in double quotes to include white space.
397-
d) A sequence of zero or more backslashes (\) and a double quote (")
398-
is special. The effective number of backslashes is halved, rounded
399-
down. An even number of backslashes reverses the acceptability of
400-
spaces and tabs, an odd number of backslashes produces a literal
401-
double quote.
402-
403-
So:
404-
" is a special double quote
405-
\" is a literal double quote
406-
\\" is a literal backslash and a special double quote
407-
\\\" is a literal backslash and a literal double quote
408-
\\\\" is 2 literal backslashes and a special double quote
409-
\\\\\" is 2 literal backslashes and a literal double quote
410-
etc.
411-
412-
Example: >
413-
gvim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"
414-
415-
opens "C:\My Music\freude" and executes the line mode commands: >
416-
set ignorecase; /"foo\ and /bar\"
385+
Command line arguments behave the same way as with the console application,
386+
see |win32-cmdargs|.
417387

418388
==============================================================================
419389
8. Various *gui-w32-various*

en/os_win32.txt

Lines changed: 53 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
*os_win32.txt* For Vim version 8.0. Last change: 2016 Oct 12
1+
*os_win32.txt* For Vim version 8.0. Last change: 2017 Mar 21
22

33

44
VIM REFERENCE MANUAL by George Reilly
@@ -81,10 +81,45 @@ The directory of the Vim executable is appended to $PATH. This is mostly to
8181
make "!xxd" work, as it is in the Tools menu. And it also means that when
8282
executable() returns 1 the executable can actually be executed.
8383

84-
Quotes in file names *win32-quotes*
84+
Command line arguments *win32-cmdargs*
85+
86+
Analysis of a command line into parameters is not standardised in MS Windows.
87+
Vim and gvim used to use different logic to parse it (before 7.4.432), and the
88+
logic was also depended on what it was compiled with. Now Vim and gvim both
89+
use the CommandLineToArgvW() Win32 API, so they behave in the same way.
90+
91+
The basic rules are: *win32-backslashes*
92+
a) A parameter is a sequence of graphic characters.
93+
b) Parameters are separated by white space.
94+
c) A parameter can be enclosed in double quotes to include white space.
95+
d) A sequence of zero or more backslashes (\) and a double quote (")
96+
is special. The effective number of backslashes is halved, rounded
97+
down. An even number of backslashes reverses the acceptability of
98+
spaces and tabs, an odd number of backslashes produces a literal
99+
double quote.
100+
101+
So:
102+
" is a special double quote
103+
\" is a literal double quote
104+
\\" is a literal backslash and a special double quote
105+
\\\" is a literal backslash and a literal double quote
106+
\\\\" is 2 literal backslashes and a special double quote
107+
\\\\\" is 2 literal backslashes and a literal double quote
108+
etc.
85109

86-
Quotes inside a file name (or any other command line argument) can be escaped
87-
with a backslash. E.g. >
110+
Example: >
111+
vim "C:\My Music\freude" +"set ignorecase" +/"\"foo\\" +\"bar\\\"
112+
113+
opens "C:\My Music\freude" and executes the line mode commands: >
114+
set ignorecase; /"foo\ and /bar\"
115+
116+
These rules are also described in the reference of the CommandLineToArgvW API:
117+
https://msdn.microsoft.com/en-us/library/windows/desktop/bb776391.aspx
118+
119+
*win32-quotes*
120+
There are additional rules for quotes (which are not well documented).
121+
As described above, quotes inside a file name (or any other command line
122+
argument) can be escaped with a backslash. E.g. >
88123
vim -c "echo 'foo\"bar'"
89124
90125
Alternatively use three quotes to get one: >
@@ -135,7 +170,7 @@ you will need to get a version older than that.
135170
6. Running under Windows 3.1 *win32-win3.1*
136171

137172
*win32s* *windows-3.1* *gui-w32s*
138-
There was a special version of Gvim that runs under Windows 3.1 and 3.11.
173+
There was a special version of gvim that runs under Windows 3.1 and 3.11.
139174
Support was removed in patch 7.4.1363.
140175

141176
==============================================================================
@@ -212,10 +247,19 @@ A. You can't! This is a limitation of the NT console. NT 5.0 is reported to
212247
be able to set the blink rate for all console windows at the same time.
213248

214249
*:!start*
215-
Q. How can I run an external command or program asynchronously?
216-
A. When using :! to run an external command, you can run it with "start": >
217-
:!start winfile.exe<CR>
218-
< Using "start" stops Vim switching to another screen, opening a new console,
250+
Q. How can I asynchronously run an external command or program, or open a
251+
document or URL with its default program?
252+
A. When using :! to run an external command, you can run it with "start". For
253+
example, to run notepad: >
254+
:!start notepad
255+
< To open "image.jpg" with the default image viewer: >
256+
:!start image.jpg
257+
< To open the folder of the current file in Windows Explorer: >
258+
:!start %:h
259+
< To open the Vim home page with the default browser: >
260+
:!start http://www.vim.org/
261+
<
262+
Using "start" stops Vim switching to another screen, opening a new console,
219263
or waiting for the program to complete; it indicates that you are running a
220264
program that does not affect the files you are editing. Programs begun
221265
with :!start do not get passed Vim's open file handles, which means they do

0 commit comments

Comments
 (0)