You could add any (or all) of the following key bindings to your init.el
to have most of the ⌘ key commands working as a macOS user would expect...
(setq mac-option-modifier 'meta
mac-command-modifier 'super
mac-right-option-modifier 'none))
(global-set-key (kbd "s-c") 'kill-ring-save)
(global-set-key (kbd "s-v") 'yank)
(global-set-key (kbd "s-x") 'kill-region)
(global-set-key (kbd "s-a") 'mark-whole-buffer)
(global-set-key (kbd "s-z") 'undo)
(global-set-key (kbd "s-f") 'isearch-forward)
(global-set-key (kbd "s-g") 'isearch-repeat-forward)
(global-set-key (kbd "s-o") 'find-file)
(global-set-key (kbd "s-o") 'mac-open-file)
(global-set-key (kbd "s-n") 'find-file)
(global-set-key (kbd "s-s") 'save-buffer)
(global-set-key (kbd "s-S") 'mac-save-file-as)
(global-set-key (kbd "s-p") 'mac-preview) ; requires mac-preview
(global-set-key (kbd "s-w") 'kill-buffer)
(global-set-key (kbd "s-m") 'iconify-frame)
(global-set-key (kbd "s-q") 'save-buffers-kill-emacs)
(global-set-key (kbd "s-.") 'keyboard-quit)
(global-set-key (kbd "s-l") 'goto-line)
(global-set-key (kbd "s-k") 'kill-buffer)
(global-set-key (kbd "s-<up>") 'beginning-of-buffer)
(global-set-key (kbd "s-<down>") 'end-of-buffer)
(global-set-key (kbd "s-<left>") 'beginning-of-line)
(global-set-key (kbd "s-<right>") 'end-of-line)
(global-set-key [(meta down)] 'forward-paragraph)
(global-set-key [(meta up)] 'backward-paragraph)
For a mac like open & save interface you might also need these applescript wrappers...
(defun mac-open-file ()
(interactive)
(let ((file (do-applescript "POSIX path of (choose file)")))
(if (> (length file) 3)
(setq file
(substring file 1 (- (length file) 1))))
(if (and (not (equal file "")) (file-readable-p file))
(find-file file))))
(defun mac-save-file-as ()
(interactive)
(let ((file (do-applescript "POSIX path of (choose file name with prompt \"Save As...\")")))
(if (> (length file) 3)
(setq file
(substring file 1 (- (length file) 1))))
(if (not (equal file ""))
(write-file file))))
the key map is based on the following...
⌘ + O — Open an existing file into an Emacs buffer
⌘ + W — Discard (kill) current buffer
⌘ + S — Save current buffer into its file
⌘ + ⇧ (Shift) + S — Write current buffer into another file
⌘ + I — Display current file/directory in a Finder window
⌘ + P — Print current buffer
⌘ + Q — Quit
⌘ + Z — Undo
⌘ + ⇧ (Shift) + Z — Redo
⌘ + X — Cut
⌘ + C — Copy
⌘ + V — Paste
⌘ + A — Select All
⌘ + F — Search for a string
⌘ + ⌥ (Option) + F — Advanced Search (M-x occur)
⌘ + G — Search forward for a string
⌘ + ⇧ (Shift) + G — Search backward for a string
⌘ + L — Go to Line
⌘ + T — Show/Hide the font panel
⌘ + M — Minimize the window
⌘ + ` — Move to a different visible window (frame)
⌘ + ⇧ (Shift) + N — Make a new window (frame)
⌘ + ⇧ (Shift) + W — Close window (frame)
⌘ + ? — Show help files (M-x info)
⌘ + / — Same as ⌘ + ?
⌘ + . — Interrupt operation
⌘ + ↑ — Move point to the beginning of the buffer
⌘ + ↓ — Move point to the end of the buffer
⌘ + ← — Move point to beginning of current line
⌘ + → — Move point to end of current line
⌘ + Click — Open URL with a browser
⌃ (Control) + Click — Show contextual menu
⇧ (Shift) + Click — Select region
cua-mode
("Common User Access" mode, so you can use some standard keybindings for cut and paste).