# Vim Tip: Open Parent Folder in Finder


A common task I find myself repeating when editing files is opening the
enclosing folder of the current file in Finder. Many IDEs and Mac apps call this
feature "Reveal in Finder".

Now that I'm trying to do more of my text editing in vim, I wanted to setup a
shortcut to do this. Here's what I came up with:

```vim
" ~/.vimrc
command! -nargs=1 Silent execute ':silent !'.<q-args> | execute ':redraw!'
nmap <Leader>o :Silent open %:h<cr>
```

The first line sets up a `Silent` command that executes a CLI command silently,
without changing what's currently being displayed or showing the stdout of the
command[^1].

The important bit is on the second line: `open <PATH>` opens the provided path
in Finder[^2]. In vim, `%` refers to the path of the current buffer. Adding `:h`
tells vim to use the "head" of the path -- that is, the enclosing directory. So,
`%:h` expands to the directory of the current file. You can try this out with
`:echo expand("%:h")`.

Put together, I can now type `,o` (I have `,` as my leader key, but the default
is `\`), and the folder of the current file is opened in a new Finder window.

[^1]:

    To see what the default behavior is, try running `:!echo foo`. vim pops you
    over to a separate window (?) that shows the stdout of the command. Since I
    don't care about the output of `open`, this trick allows us to circumvent
    the transition to that other view.

[^2]:

    `open` is actually a pretty general commend -- it can be used to "open" any
    file. For example, `open somevideo.mov` will open that video file in
    whatever your default media player is. On Linux, the equivalent is
    `xdg-open`.

