diff --git a/plugins/osx/functions/manp b/plugins/osx/functions/manp
new file mode 100644
index 0000000..35c1d95
--- /dev/null
+++ b/plugins/osx/functions/manp
@@ -0,0 +1,14 @@
+# Open man pages in Preview.
+function manp() {
+  local page
+  if (( $# > 0 )); then
+    for page in "$@"; do
+      man -t "$page" | open -f -a Preview
+    done
+  else
+    print 'What manual page do you want?' >&2
+  fi
+}
+compdef _man manp
+manp "$@"
+
diff --git a/plugins/osx/init.zsh b/plugins/osx/init.zsh
index f85b679..73b20e3 100644
--- a/plugins/osx/init.zsh
+++ b/plugins/osx/init.zsh
@@ -11,13 +11,8 @@ function ql() {
   (( $# > 0 )) && qlmanage -p "$@" &> /dev/null
 }
 
-# Open man pages in Preview.
-function manp() {
-  (( $# > 0 )) && man -t "$@" | open -f -a Preview
-}
-compdef _man manp
-
 # Delete .DS_Store and __MACOSX directories.
 function rm-osx-cruft() {
   find "${@:-$PWD}" \( -type f -name '.DS_Store' \) -o \( -type d -name '__MACOSX' \) -print0 | xargs rm -rf
 }
+