blob: 0bf197d6d585981fa3a033ce67ecdbe7672b3ee8 [file] [log] [blame]
Christian Brabandt8b97ca62024-11-14 21:12:38 +01001*os_mac.txt* For Vim version 9.1. Last change: 2024 Nov 14
Bram Moolenaar071d4272004-06-13 20:20:40 +00002
3
4 VIM REFERENCE MANUAL by Bram Moolenaar et al.
5
6
7 *mac* *Mac* *macintosh* *Macintosh*
8
9This file documents the particularities of the Macintosh version of Vim.
10
11NOTE: This file is a bit outdated. You might find more useful info here:
Bram Moolenaar89cb5e02004-07-19 20:55:54 +000012 http://macvim.org/
Bram Moolenaar071d4272004-06-13 20:20:40 +000013
141. Filename Convention |mac-filename|
Bram Moolenaare0720cb2017-03-29 13:48:40 +0200152. .vimrc and .vim files |mac-vimfile|
163. Standard mappings |mac-standard-mappings|
174. FAQ |mac-faq|
185. Known Lack |mac-lack|
196. Mac Bug Report |mac-bug|
207. Compiling Vim |mac-compile|
Bram Moolenaar0635ee62017-04-28 20:32:33 +0200218. The darwin feature |mac-darwin-feature|
Bram Moolenaar071d4272004-06-13 20:20:40 +000022
23There was a Mac port for version 3.0 of Vim. Here are the first few lines
24from the old file:
25
26VIM Release Notes
27Initial Macintosh release, VIM version 3.0
2819 October 1994
29
30Eric Fischer
31<enf1@midway.uchicago.edu>, <eric@jcp.uchicago.edu>, <etaoin@uchicago.edu>
325759 N. Guilford Ave
33Indianapolis IN 46220 USA
34
35==============================================================================
361. Filename Convention *mac-filename*
37
Bram Moolenaar4ea8fe12006-03-09 22:32:39 +000038Starting with Vim version 7 you can just use the unix path separators with
39Vim. In order to determine if the specified filename is relative to the
40current folder or absolute (i.e. relative to the "Desktop"), the following
41algorithm is used:
Bram Moolenaar071d4272004-06-13 20:20:40 +000042
43 If the path start by a "/", the path is absolute
44 If the path start by a ":", the path is relative
45 If the path doesn't start by neither a "/" nor ":",
46 and a ":" is found before a "/" then the path is absolute
47>
48 :e /HD/text
49 :e HD:text
50< Edit the file "text" of the disk "HD" >
51 :e :src:main.c
52 :e src/main.c
53< Edit the file "main.c" in the folder "src" in the current folder >
54 :e os_mac.c
55< Edit the file "os_mac.c" in the current folder.
56
57You can use the |$VIM| and |$VIMRUNTIME| variable. >
58
59 :so $VIMRUNTIME:syntax:syntax.vim
60
61==============================================================================
622. .vimrc and .vim files *mac-vimfile*
63
Bram Moolenaar4ea8fe12006-03-09 22:32:39 +000064It is recommended to use Unix style line separators for Vim scripts, thus a
65single newline character.
66
67When starting up Vim will load the $VIMRUNTIME/macmap.vim script to define
68default command-key mappings.
69
70On older systems files starting with a dot "." are discouraged, thus the rc
71files are named "vimrc" or "_vimrc" and "gvimrc" or "_gvimrc". These files
72can be in any format (mac, dos or unix). Vim can handle any file format when
73the |'nocompatible'| option is set, otherwise it will only handle mac format
Bram Moolenaar071d4272004-06-13 20:20:40 +000074files.
75
76==============================================================================
Bram Moolenaare0720cb2017-03-29 13:48:40 +0200773. Standard mappings *mac-standard-mappings*
78
79The following mappings are available for cut/copy/paste from/to clipboard.
80
81key Normal Visual Insert Description ~
82Command-v "*P "-d"*P <C-R>* paste text *<D-v>*
83Command-c "*y copy Visual text *<D-c>*
84Command-x "*d cut Visual text *<D-x>*
85Backspace "*d cut Visual text
86
87==============================================================================
884. Mac FAQ *mac-faq*
Bram Moolenaar071d4272004-06-13 20:20:40 +000089
Bram Moolenaar3991dab2006-03-27 17:01:56 +000090On the internet: http://macvim.org/OSX/index.php#FAQ
91
Bram Moolenaar071d4272004-06-13 20:20:40 +000092Q: I can't enter non-ASCII character in Apple Terminal.
93A: Under Window Settings, Emulation, make sure that "Escape non-ASCII
94 characters" is not checked.
95
Bram Moolenaar1cd871b2004-12-19 22:46:22 +000096Q: How do I start the GUI from the command line?
97A: Assuming that Vim.app is located in /Applications:
98 open /Applications/Vim.app
99 Or:
Bram Moolenaarc9b4b052006-04-30 18:54:39 +0000100 /Applications/Vim.app/Contents/MacOS/Vim -g {arguments}
Bram Moolenaar1cd871b2004-12-19 22:46:22 +0000101
Bram Moolenaare2f98b92006-03-29 21:18:24 +0000102Q: How can I set $PATH to something reasonable when I start Vim.app from the
103 GUI or with open?
104A: The following trick works with most shells. Put it in your vimrc file.
105 This is included in the system vimrc file included with the binaries
106 distributed at macvim.org . >
107 let s:path = system("echo echo VIMPATH'${PATH}' | $SHELL -l")
108 let $PATH = matchstr(s:path, 'VIMPATH\zs.\{-}\ze\n')
109
Bram Moolenaar071d4272004-06-13 20:20:40 +0000110==============================================================================
Bram Moolenaare0720cb2017-03-29 13:48:40 +02001115. Mac Lack *mac-lack*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000112
Bram Moolenaar69a7cb42004-06-20 12:51:53 +0000113In a terminal CTRL-^ needs to be entered as Shift-Control-6. CTRL-@ as
114Shift-Control-2.
Bram Moolenaar071d4272004-06-13 20:20:40 +0000115
116==============================================================================
Bram Moolenaare0720cb2017-03-29 13:48:40 +02001176. Mac Bug Report *mac-bug*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000118
119When reporting any Mac specific bug or feature change, please use the vim-mac
120maillist |vim-mac|. However, you need to be subscribed. An alternative is to
Christian Brabandt8b97ca62024-11-14 21:12:38 +0100121report issues either directly at the Vim github repository:
Bram Moolenaar071d4272004-06-13 20:20:40 +0000122
Christian Brabandt8b97ca62024-11-14 21:12:38 +0100123https://github.com/vim/vim/issues
124
125or for MacVim specific issues, you may report those over here:
126
127https://github.com/macvim-dev/macvim/issues
Bram Moolenaar071d4272004-06-13 20:20:40 +0000128
129==============================================================================
Bram Moolenaare0720cb2017-03-29 13:48:40 +02001307. Compiling Vim *mac-compile*
Bram Moolenaar071d4272004-06-13 20:20:40 +0000131
132See the file "src/INSTALLmac.txt" that comes with the source files.
133
Bram Moolenaar0635ee62017-04-28 20:32:33 +0200134==============================================================================
1358. The Darwin Feature *mac-darwin-feature*
136
137If you have a Mac that isn't very old, you will be running OS X, also called
138Darwin. The last pre-Darwin OS was Mac OS 9. The darwin feature makes Vim
139use Darwin-specific properties.
140
141What is accomplished with this feature is two-fold:
142
143- Make Vim interoperable with the system clipboard.
144- Incorporate into Vim a converter module that bridges the gap between some
145 character encodings specific to the platform and those known to Vim.
146
147Needless to say, both are not to be missed for any decent text editor to work
148nicely with other applications running on the same desktop environment.
149
150As Vim is not an application dedicated only to macOS, we need an extra feature
151to add in order for it to offer the same user experience that our users on
152other platforms enjoy to people on macOS.
153
154For brevity, the feature is referred to as "darwin" to signify it one of the
155Vim features that are specific to that particular platform.
156
157The feature is a configuration option. Accordingly, whether it is enabled or
158not is determined at build time; once it is selected to be enabled, it is
159compiled in and hence cannot be disabled at runtime.
160
161The feature is enabled by default. For most macOS users, that should be
162sufficient unless they have specific needs mentioned briefly below.
163
164If you want to disable it, pass `--disable-darwin` to the configure script: >
165
166 ./configure --disable-darwin <other options>
167
168and then run `make` to build Vim. The order of the options doesn't matter.
169
170To make sure at runtime whether or not the darwin feature is compiled in, you
Bram Moolenaard0573012017-10-28 21:11:06 +0200171can use `has('osxdarwin')` which returns 1 if the feature is compiled in; 0
Bram Moolenaar40962ec2018-01-28 22:47:25 +0100172otherwise. For backward compatibility, you can still use `macunix` instead of
Bram Moolenaard0573012017-10-28 21:11:06 +0200173`osxdarwin`.
Bram Moolenaar0635ee62017-04-28 20:32:33 +0200174
175Notable use cases where `--disable-darwin` is turned out to be useful are:
176
177- When you want to use |x11-selection| instead of the system clipboard.
178- When you want to use |x11-clientserver|.
179
180Since both have to make use of X11 inter-client communication for them to work
181properly, and since the communication mechanism can come into conflict with
182the system clipboard, the darwin feature should be disabled to prevent Vim
183from hanging at runtime.
184
Bram Moolenaar071d4272004-06-13 20:20:40 +0000185
Bram Moolenaar91f84f62018-07-29 15:07:52 +0200186 vim:tw=78:ts=8:noet:ft=help:norl: