mirror of
https://github.com/neovim/neovim.git
synced 2024-12-25 13:45:15 -07:00
207 lines
8.6 KiB
Plaintext
207 lines
8.6 KiB
Plaintext
*os_win32.txt* Nvim
|
|
|
|
|
|
VIM REFERENCE MANUAL by George Reilly
|
|
|
|
|
|
*win32* *Win32* *MS-Windows*
|
|
This file documents the idiosyncrasies of the Win32 version of Vim.
|
|
|
|
The Win32 version of Vim works on Windows XP, Vista and Windows 7.
|
|
There are both console and GUI versions.
|
|
|
|
The 32 bit version also runs on 64 bit MS-Windows systems.
|
|
|
|
1. Known problems |win32-problems|
|
|
2. Startup |win32-startup|
|
|
3. Using the mouse |win32-mouse|
|
|
4. Win32 mini FAQ |win32-faq|
|
|
|
|
Additionally, there are a number of common Win32 and DOS items:
|
|
File locations |dos-locations|
|
|
Using backslashes |dos-backslash|
|
|
Standard mappings |dos-standard-mappings|
|
|
Screen output and colors |dos-colors|
|
|
File formats |dos-file-formats|
|
|
:cd command |dos-:cd|
|
|
Interrupting |dos-CTRL-Break|
|
|
Temp files |dos-temp-files|
|
|
Shell option default |dos-shell|
|
|
|
|
Win32 GUI |gui-w32|
|
|
|
|
Credits:
|
|
The Win32 version was written by George V. Reilly <george@reilly.org>.
|
|
The GUI version was made by George V. Reilly and Robert Webb.
|
|
|
|
==============================================================================
|
|
1. Known problems *win32-problems*
|
|
|
|
When doing file name completion, Vim also finds matches for the short file
|
|
name. But Vim will still find and use the corresponding long file name. For
|
|
example, if you have the long file name "this_is_a_test" with the short file
|
|
name "this_i~1", the command ":e *1" will start editing "this_is_a_test".
|
|
|
|
==============================================================================
|
|
2. Startup *win32-startup*
|
|
|
|
Current directory *win32-curdir*
|
|
|
|
If Vim is started with a single file name argument, and it has a full path
|
|
(starts with "x:\"), Vim assumes it was started from the file explorer and
|
|
will set the current directory to where that file is. To avoid this when
|
|
typing a command to start Vim, use a forward slash instead of a backslash.
|
|
Example: >
|
|
|
|
vim c:\text\files\foo.txt
|
|
|
|
Will change to the "C:\text\files" directory. >
|
|
|
|
vim c:/text\files\foo.txt
|
|
|
|
Will use the current directory.
|
|
|
|
|
|
Term option *win32-term*
|
|
|
|
The only kind of terminal type that the Win32 version of Vim understands is
|
|
"win32", which is built-in. If you set 'term' to anything else, you will
|
|
probably get very strange behavior from Vim. Therefore Vim does not obtain
|
|
the default value of 'term' from the environment variable "TERM".
|
|
|
|
$PATH *win32-PATH*
|
|
|
|
The directory of the Vim executable is appended to $PATH. This is mostly to
|
|
make "!xxd" work, as it is in the Tools menu. And it also means that when
|
|
executable() returns 1 the executable can actually be executed.
|
|
|
|
Quotes in file names *win32-quotes*
|
|
|
|
Quotes inside a file name (or any other command line argument) can be escaped
|
|
with a backslash. E.g. >
|
|
vim -c "echo 'foo\"bar'"
|
|
|
|
Alternatively use three quotes to get one: >
|
|
vim -c "echo 'foo"""bar'"
|
|
|
|
The quotation rules are:
|
|
|
|
1. A `"` starts quotation.
|
|
2. Another `"` or `""` ends quotation. If the quotation ends with `""`, a `"`
|
|
is produced at the end of the quoted string.
|
|
|
|
Examples, with [] around an argument:
|
|
"foo" -> [foo]
|
|
"foo"" -> [foo"]
|
|
"foo"bar -> [foobar]
|
|
"foo" bar -> [foo], [bar]
|
|
"foo""bar -> [foo"bar]
|
|
"foo"" bar -> [foo"], [bar]
|
|
"foo"""bar" -> [foo"bar]
|
|
|
|
|
|
==============================================================================
|
|
3. Using the mouse *win32-mouse*
|
|
|
|
The Win32 version of Vim supports using the mouse. If you have a two-button
|
|
mouse, the middle button can be emulated by pressing both left and right
|
|
buttons simultaneously - but note that in the Win32 GUI, if you have the right
|
|
mouse button pop-up menu enabled (see 'mouse'), you should err on the side of
|
|
pressing the left button first. |mouse-using|
|
|
|
|
When the mouse doesn't work, try disabling the "Quick Edit Mode" feature of
|
|
the console.
|
|
|
|
==============================================================================
|
|
4. Win32 mini FAQ *win32-faq*
|
|
|
|
Q. How do I change the font?
|
|
A. In the GUI version, you can use the 'guifont' option. Example: >
|
|
:set guifont=Lucida_Console:h15:cDEFAULT
|
|
< In the console version, you need to set the font of the console itself.
|
|
You cannot do this from within Vim.
|
|
|
|
Q. I'm using Vim to edit a symbolically linked file on a Unix NFS file server.
|
|
When I write the file, Vim does not "write through" the symlink. Instead,
|
|
it deletes the symbolic link and creates a new file in its place. Why?
|
|
A. On Unix, Vim is prepared for links (symbolic or hard). A backup copy of
|
|
the original file is made and then the original file is overwritten. This
|
|
assures that all properties of the file remain the same. On non-Unix
|
|
systems, the original file is renamed and a new file is written. Only the
|
|
protection bits are set like the original file. However, this doesn't work
|
|
properly when working on an NFS-mounted file system where links and other
|
|
things exist. The only way to fix this in the current version is not
|
|
making a backup file, by ":set nobackup nowritebackup" |'writebackup'|
|
|
|
|
Q. I'm using Vim to edit a file on a Unix file server through Samba. When I
|
|
write the file, the owner of the file is changed. Why?
|
|
A. When writing a file Vim renames the original file, this is a backup (in
|
|
case writing the file fails halfway). Then the file is written as a new
|
|
file. Samba then gives it the default owner for the file system, which may
|
|
differ from the original owner.
|
|
To avoid this set the 'backupcopy' option to "yes". Vim will then make a
|
|
copy of the file for the backup, and overwrite the original file. The
|
|
owner isn't changed then.
|
|
|
|
Q. How do I get to see the output of ":make" while it's running?
|
|
A. Basically what you need is to put a tee program that will copy its input
|
|
(the output from make) to both stdout and to the errorfile. You can find a
|
|
copy of tee (and a number of other GNU tools) at
|
|
http://gnuwin32.sourceforge.net or http://unxutils.sourceforge.net
|
|
Alternatively, try the more recent Cygnus version of the GNU tools at
|
|
http://www.cygwin.com Other Unix-style tools for Win32 are listed at
|
|
http://directory.google.com/Top/Computers/Software/Operating_Systems/Unix/Win32/
|
|
When you do get a copy of tee, you'll need to add >
|
|
:set shellpipe=\|\ tee
|
|
< to your _vimrc.
|
|
|
|
*:!start*
|
|
Q. How can I run an external command or program asynchronously?
|
|
A. When using :! to run an external command, you can run it with "start": >
|
|
:!start winfile.exe<CR>
|
|
< Using "start" stops Vim switching to another screen, opening a new console,
|
|
or waiting for the program to complete; it indicates that you are running a
|
|
program that does not affect the files you are editing. Programs begun
|
|
with :!start do not get passed Vim's open file handles, which means they do
|
|
not have to be closed before Vim.
|
|
To avoid this special treatment, use ":! start".
|
|
There are two optional arguments (see the next Q):
|
|
/min the window will be minimized
|
|
/b no console window will be opened
|
|
You can use only one of these flags at a time. A second one will be
|
|
treated as the start of the command.
|
|
|
|
Q. How do I avoid getting a window for programs that I run asynchronously?
|
|
A. You have two possible solutions depending on what you want:
|
|
1) You may use the /min flag in order to run program in a minimized state
|
|
with no other changes. It will work equally for console and GUI
|
|
applications.
|
|
2) You can use the /b flag to run console applications without creating a
|
|
console window for them (GUI applications are not affected). But you
|
|
should use this flag only if the application you run doesn't require any
|
|
input. Otherwise it will get an EOF error because its input stream
|
|
(stdin) would be redirected to \\.\NUL (stdout and stderr too).
|
|
|
|
Example for a console application, run Exuberant ctags: >
|
|
:!start /min ctags -R .
|
|
< When it has finished you should see file named "tags" in your current
|
|
directory. You should notice the window title blinking on your taskbar.
|
|
This is more noticeable for commands that take longer.
|
|
Now delete the "tags" file and run this command: >
|
|
:!start /b ctags -R .
|
|
< You should have the same "tags" file, but this time there will be no
|
|
blinking on the taskbar.
|
|
Example for a GUI application: >
|
|
:!start /min notepad
|
|
:!start /b notepad
|
|
< The first command runs notepad minimized and the second one runs it
|
|
normally.
|
|
|
|
*windows-icon*
|
|
Q. I don't like the Vim icon, can I change it?
|
|
A. Yes, place your favorite icon in bitmaps/vim.ico in a directory of
|
|
'runtimepath'. For example ~/vimfiles/bitmaps/vim.ico.
|
|
|
|
|
|
vim:tw=78:fo=tcq2:ts=8:ft=help:norl:
|