annotate runtime/doc/os_win32.txt @ 819:23f82b5d2814 v7.0c10

updated for version 7.0c10
author vimboss
date Wed, 05 Apr 2006 20:41:53 +0000
parents 9f345c48220b
children 6675076019ae
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
1 *os_win32.txt* For Vim version 7.0c. Last change: 2006 Apr 02
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
2
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
3
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
4 VIM REFERENCE MANUAL by George Reilly
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
5
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
6
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
7 *win32* *Win32* *MS-Windows*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
8 This file documents the idiosyncrasies of the Win32 version of Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
9
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
10 The Win32 version of Vim works on both Windows NT and Windows 95. There are
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
11 both console and GUI versions. There is GUI version for use in the Win32s
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
12 subsystem in Windows 3.1[1]. You can also use the 32-bit DOS version of Vim
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
13 instead. See |os_msdos.txt|.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
14
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
15 1. Known problems |win32-problems|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
16 2. Startup |win32-startup|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
17 3. Restore screen contents |win32-restore|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
18 4. Using the mouse |win32-mouse|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
19 5. Running under Windows 3.1 |win32-win3.1|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
20 6. Win32 mini FAQ |win32-faq|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
21
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
22 Additionally, there are a number of common Win32 and DOS items:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
23 File locations |dos-locations|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
24 Using backslashes |dos-backslash|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
25 Standard mappings |dos-standard-mappings|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
26 Screen output and colors |dos-colors|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
27 File formats |dos-file-formats|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
28 :cd command |dos-:cd|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
29 Interrupting |dos-CTRL-Break|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
30 Temp files |dos-temp-files|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
31 Shell option default |dos-shell|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
32
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
33 Win32 GUI |gui-w32|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
34
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
35 Credits:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
36 The Win32 version was written by George V. Reilly <george@reilly.org>.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
37 The original Windows NT port was done by Roger Knobbe <RogerK@wonderware.com>.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
38 The GUI version was made by George V. Reilly and Robert Webb.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
39
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
40 For compiling see "src/INSTALL.pc". *win32-compiling*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
41
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
42 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
43 1. Known problems *windows95* *win32-problems*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
44
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
45 There are a few known problems with running in a console on Windows 95. As
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
46 far as we know, this is the same in Windows 98 and Windows ME.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
47
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
48 Comments from somebody working at Microsoft: "Win95 console support has always
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
49 been and will always be flaky".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
50 1. Dead key support doesn't work.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
51 2. Resizing the window with ":set columns=nn lines=nn" works, but executing
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
52 external commands MAY CAUSE THE SYSTEM TO HANG OR CRASH.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
53 3. Screen updating is slow, unless you change 'columns' or 'lines' to a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
54 non-DOS value. But then the second problem applies!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
55
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
56 If this bothers you, use the 32 bit MS-DOS version or the Win32 GUI version.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
57
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
58 When doing file name completion, Vim also finds matches for the short file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
59 name. But Vim will still find and use the corresponding long file name. For
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
60 example, if you have the long file name "this_is_a_test" with the short file
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
61 name "this_i~1", the command ":e *1" will start editing "this_is_a_test".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
62
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
63 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
64 2. Startup *win32-startup*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
65
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
66 Current directory *win32-curdir*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
67
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
68 If Vim is started with a single file name argument, and it has a full path
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
69 (starts with "x:\"), Vim assumes it was started from the file explorer and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
70 will set the current directory to where that file is. To avoid this when
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
71 typing a command to start Vim, use a forward slash instead of a backslash.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
72 Example: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
73
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
74 vim c:\text\files\foo.txt
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
75
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
76 Will change to the "C:\text\files" directory. >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
77
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
78 vim c:/text\files\foo.txt
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
79
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
80 Will use the current directory.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
81
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
82
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
83 Term option *win32-term*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
84
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
85 The only kind of terminal type that the Win32 version of Vim understands is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
86 "win32", which is built-in. If you set 'term' to anything else, you will
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
87 probably get very strange behavior from Vim. Therefore Vim does not obtain
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
88 the default value of 'term' from the environment variable "TERM".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
89
819
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
90 $PATH *win32-PATH*
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
91
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
92 The directory of the Vim executable is appended to $PATH. This is mostly to
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
93 make "!xxd' work, as it is in the Tools menu. And it also means that when
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
94 executable() returns 1 the executable can actually be executed.
23f82b5d2814 updated for version 7.0c10
vimboss
parents: 810
diff changeset
95
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
96 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
97 3. Restore screen contents *win32-restore*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
98
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
99 When 'restorescreen' is set (which is the default), Vim will restore the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
100 original contents of the console when exiting or when executing external
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
101 commands. If you don't want this, use ":set nors". |'restorescreen'|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
102
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
103 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
104 4. Using the mouse *win32-mouse*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
105
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
106 The Win32 version of Vim supports using the mouse. If you have a two-button
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
107 mouse, the middle button can be emulated by pressing both left and right
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
108 buttons simultaneously - but note that in the Win32 GUI, if you have the right
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
109 mouse button pop-up menu enabled (see 'mouse'), you should err on the side of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
110 pressing the left button first. |mouse-using|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
111
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
112 When the mouse doesn't work, try disabling the "Quick Edit Mode" feature of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
113 the console.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
114
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
115 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
116 5. Running under Windows 3.1 *win32-win3.1*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
117
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
118 *win32s* *windows-3.1*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
119 There is a special version of Gvim that runs under Windows 3.1 and 3.11. You
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
120 need the gvim.exe that was compiled with Visual C++ 4.1.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
121
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
122 To run the Win32 version under Windows 3.1, you need to install Win32s. You
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
123 might have it already from another Win32 application which you have installed.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
124 If Vim doesn't seem to be running properly, get the latest version: 1.30c.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
125 You can find it at:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
126
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
127 http://support.microsoft.com/download/support/mslfiles/pw1118.exe
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
128
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
129 (Microsoft moved it again, we don't know where it is now :-( ).
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
130
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
131 The reason for having two versions of gvim.exe is that the Win32s version was
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
132 compiled with VC++ 4.1. This is the last version of VC++ that supports Win32s
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
133 programs. VC++ 5.0 is better, so that one was used for the Win32 version.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
134 Apart from that, there is no difference between the programs. If you are in a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
135 mixed environment, you can use the gvim.exe for Win32s on both.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
136
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
137 The Win32s version works the same way as the Win32 version under 95/NT. When
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
138 running under Win32s the following differences apply:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
139 - You cannot use long file names, because Windows 3.1 doesn't support them!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
140 - When executing an external command, it doesn't return an exit code. After
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
141 doing ":make" you have to do ":cn" yourself.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
142
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
143 ==============================================================================
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
144 6. Win32 mini FAQ *win32-faq*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
145
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
146 Q. Why does the Win32 version of Vim update the screen so slowly on Windows 95?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
147 A. The support for Win32 console mode applications is very buggy in Win95.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
148 For some unknown reason, the screen updates very slowly when Vim is run at
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
149 one of the standard resolutions (80x25, 80x43, or 80x50) and the 16-bit DOS
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
150 version updates the screen much more quickly than the Win32 version.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
151 However, if the screen is set to some other resolution, such as by ":set
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
152 columns=100" or ":set lines=40", screen updating becomes about as fast as
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
153 it is with the 16-bit version.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
154
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
155 WARNING: Changing 'columns' may make Windows 95 crash while updating the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
156 window (complaints --> Microsoft). Since this mostly works, this has not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
157 been disabled, but be careful with changing 'columns'.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
158
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
159 Changing the screen resolution makes updates faster, but it brings
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
160 additional problems. External commands (e.g., ":!dir") can cause Vim to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
161 freeze when the screen is set to a non-standard resolution, particularly
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
162 when 'columns' is not equal to 80. It is not possible for Vim to reliably
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
163 set the screen resolution back to the value it had upon startup before
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
164 running external commands, so if you change the number of 'lines' or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
165 'columns', be very, very careful. In fact, Vim will not allow you to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
166 execute external commands when 'columns' is not equal to 80, because it is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
167 so likely to freeze up afterwards.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
168
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
169 None of the above applies on Windows NT. Screen updates are fast, no
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
170 matter how many 'lines' or 'columns' the window has, and external commands
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
171 do not cause Vim to freeze.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
172
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
173 Q. So if the Win32 version updates the screen so slowly on Windows 95 and the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
174 16-bit DOS version updates the screen quickly, why would I want to run the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
175 Win32 version?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
176 A. Firstly, the Win32 version isn't that slow, especially when the screen is
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
177 set to some non-standard number of 'lines' or 'columns'. Secondly, the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
178 16-bit DOS version has some severe limitations: It can't do big changes and
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
179 it doesn't know about long file names. The Win32 version doesn't have these
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
180 limitations and it's faster overall (the same is true for the 32-bit DJGPP
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
181 DOS version of Vim). The Win32 version is smarter about handling the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
182 screen, the mouse, and the keyboard than the DJGPP version is.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
183
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
184 Q. And what about the 16-bit DOS version versus the Win32 version on NT?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
185 A. There are no good reasons to run the 16-bit DOS version on NT. The Win32
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
186 version updates the screen just as fast as the 16-bit version does when
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
187 running on NT. All of the above disadvantages apply. Finally, DOS
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
188 applications can take a long time to start up and will run more slowly. On
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
189 non-Intel NT platforms, the DOS version is almost unusably slow, because it
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
190 runs on top of an 80x86 emulator.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
191
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
192 Q. How do I change the font?
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
193 A. In the GUI version, you can use the 'guifont' option. Example: >
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
194 :set guifont=Lucida_Console:h15:cDEFAULT
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
195 < In the console version, you need to set the font of the console itself.
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
196 You cannot do this from within Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
197
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
198 Q. When I change the size of the console window with ':set lines=xx' or
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
199 similar, the font changes! (Win95)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
200 A. You have the console font set to 'Auto' in Vim's (or your MS-DOS prompt's)
237
73354c21f1e4 updated for version 7.0066
vimboss
parents: 22
diff changeset
201 properties. This makes W95 guess (badly!) what font is best. Set an explicit
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
202 font instead.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
203
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
204 Q. Why can't I paste into Vim when running Windows 95?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
205 A. In the properties dialog box for the MS-DOS window, go to "MS-DOS
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
206 Prompt/Misc/Fast pasting" and make sure that it is NOT checked. You should
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
207 also do ":set paste" in Vim to avoid unexpected effects. |'paste'|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
208
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
209 Q. How do I type dead keys on Windows 95, in the console version?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
210 (A dead key is an accent key, such as acute, grave, or umlaut, that doesn't
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
211 produce a character by itself, but when followed by another key, produces
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
212 an accented character, such as a-acute, e-grave, u-umlaut, n-tilde, and so
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
213 on. Very useful for most European languages. English-language keyboard
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
214 layouts don't use dead keys, as far as we know.)
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
215 A. You don't. The console mode input routines simply do not work correctly in
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
216 Windows 95, and I have not been able to work around them. In the words
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
217 of a senior developer at Microsoft:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
218 Win95 console support has always been and will always be flaky.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
219
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
220 The flakiness is unavoidable because we are stuck between the world of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
221 MS-DOS keyboard TSRs like KEYB (which wants to cook the data;
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
222 important for international) and the world of Win32.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
223
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
224 So keys that don't "exist" in MS-DOS land (like dead keys) have a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
225 very tenuous existence in Win32 console land. Keys that act
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
226 differently between MS-DOS land and Win32 console land (like
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
227 capslock) will act flaky.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
228
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
229 Don't even _mention_ the problems with multiple language keyboard
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
230 layouts...
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
231
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
232 You may be able to fashion some sort of workaround with the digraphs
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
233 mechanism. |digraphs|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
234
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
235 The best solution is to use the Win32 GUI version gvim.exe. Alternatively,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
236 you can try one of the DOS versions of Vim where dead keys reportedly do
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
237 work.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
238
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
239 Q. How do I type dead keys on Windows NT?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
240 A. Dead keys work on NT 3.51. Just type them as you would in any other
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
241 application.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
242 On NT 4.0, you need to make sure that the default locale (set in the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
243 Keyboard part of the Control Panel) is the same as the currently active
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
244 locale. Otherwise the NT code will get confused and crash! This is a NT
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
245 4.0 problem, not really a Vim problem.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
246
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
247 Q. I'm using Vim to edit a symbolically linked file on a Unix NFS file server.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
248 When I write the file, Vim does not "write through" the symlink. Instead,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
249 it deletes the symbolic link and creates a new file in its place. Why?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
250 A. On Unix, Vim is prepared for links (symbolic or hard). A backup copy of
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
251 the original file is made and then the original file is overwritten. This
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
252 assures that all properties of the file remain the same. On non-Unix
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
253 systems, the original file is renamed and a new file is written. Only the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
254 protection bits are set like the original file. However, this doesn't work
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
255 properly when working on an NFS-mounted file system where links and other
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
256 things exist. The only way to fix this in the current version is not
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
257 making a backup file, by ":set nobackup nowritebackup" |'writebackup'|
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
258
22
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
259 Q. I'm using Vim to edit a file on a Unix file server through Samba. When I
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
260 write the file, the owner of the file is changed. Why?
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
261 A. When writing a file Vim renames the original file, this is a backup (in
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
262 case writing the file fails halfway). Then the file is written as a new
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
263 file. Samba then gives it the default owner for the file system, which may
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
264 differ from the original owner.
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
265 To avoid this set the 'backupcopy' option to "yes". Vim will then make a
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
266 copy of the file for the backup, and overwrite the original file. The
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
267 owner isn't changed then.
cc049b00ee70 updated for version 7.0014
vimboss
parents: 7
diff changeset
268
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
269 Q. How do I get to see the output of ":make" while it's running?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
270 A. Basically what you need is to put a tee program that will copy its input
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
271 (the output from make) to both stdout and to the errorfile. You can find a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
272 copy of tee (and a number of other GNU tools tools) at
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
273 http://gnuwin32.sourceforge.net or http://unxutils.sourceforge.net
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
274 Alternatively, try the more recent Cygnus version of the GNU tools at
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
275 http://www.cygwin.com Other Unix-style tools for Win32 are listed at
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
276 http://directory.google.com/Top/Computers/Software/Operating_Systems/Unix/Win32/
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
277 When you do get a copy of tee, you'll need to add >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
278 :set shellpipe=\|\ tee
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
279 < to your _vimrc.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
280
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
281 Q. I'm storing files on a remote machine that works with VisionFS, and files
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
282 disappear!
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
283 A. VisionFS can't handle certain dot (.) three letter extension file names.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
284 SCO declares this behavior required for backwards compatibility with 16bit
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
285 DOS/Windows environments. The two commands below demonstrate the behavior:
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
286 >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
287 echo Hello > file.bat~
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
288 dir > file.bat
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
289 <
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
290 The result is that the "dir" command updates the "file.bat~" file, instead
237
73354c21f1e4 updated for version 7.0066
vimboss
parents: 22
diff changeset
291 of creating a new "file.bat" file. This same behavior is exhibited in Vim
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
292 when editing an existing file named "foo.bat" because the default behavior
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
293 of Vim is to create a temporary file with a '~' character appended to the
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
294 name. When the file is written, it winds up being deleted.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
295
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
296 Solution: Add this command to your _vimrc file: >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
297 :set backupext=.temporary
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
298
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
299 Q. How do I change the blink rate of the cursor?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
300 A. You can't! This is a limitation of the NT console. NT 5.0 is reported to
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
301 be able to set the blink rate for all console windows at the same time.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
302
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
303 *:!start*
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
304 Q. How can I run an external command or program asynchronously?
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
305 A. When using :! to run an external command, you can run it with "start": >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
306 :!start winfile.exe<CR>
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
307 < Using "start" stops Vim switching to another screen, opening a new console,
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
308 or waiting for the program to complete; it indicates that you are running a
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
309 program that does not effect the files you are editing. Programs begun
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
310 with :!start do not get passed Vim's open file handles, which means they do
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
311 not have to be closed before Vim.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
312 To avoid this special treatment, use ":! start".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
313
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
314 Q. I'm using Win32s, and when I try to run an external command like "make",
237
73354c21f1e4 updated for version 7.0066
vimboss
parents: 22
diff changeset
315 Vim doesn't wait for it to finish! Help!
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
316 A. The problem is that a 32-bit application (Vim) can't get notification from
237
73354c21f1e4 updated for version 7.0066
vimboss
parents: 22
diff changeset
317 Windows that a 16-bit application (your DOS session) has finished. Vim
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
318 includes a work-around for this, but you must set up your DOS commands to
237
73354c21f1e4 updated for version 7.0066
vimboss
parents: 22
diff changeset
319 run in a window, not full-screen. Unfortunately the default when you
73354c21f1e4 updated for version 7.0066
vimboss
parents: 22
diff changeset
320 install Windows is full-screen. To change this:
73354c21f1e4 updated for version 7.0066
vimboss
parents: 22
diff changeset
321 1) Start PIF editor (in the Main program group).
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
322 2) Open the file "_DEFAULT.PIF" in your Windows directory.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
323 3) Changes the display option from "Full Screen" to "Windowed".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
324 4) Save and exit.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
325
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
326 To test, start Vim and type >
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
327 :!dir C:\<CR>".
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
328 < You should see a DOS box window appear briefly with the directory listing.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
329
237
73354c21f1e4 updated for version 7.0066
vimboss
parents: 22
diff changeset
330 Q. I use Vim under Win32s and NT. In NT, I can define the console to default to
73354c21f1e4 updated for version 7.0066
vimboss
parents: 22
diff changeset
331 50 lines, so that I get a 80x50 shell when I ':sh'. Can I do the same in
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
332 W3.1x, or am I stuck with 80x25?
237
73354c21f1e4 updated for version 7.0066
vimboss
parents: 22
diff changeset
333 A. Edit SYSTEM.INI and add 'ScreenLines=50' to the [NonWindowsApp] section. DOS
7
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
334 prompts and external DOS commands will now run in a 50-line window.
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
335
3fc0f57ecb91 updated for version 7.0001
vimboss
parents:
diff changeset
336 vim:tw=78:fo=tcq2:ts=8:ft=help:norl: