Double Click File in macOS to Open in Neovim
I have been using Neovim in a dedicated Alacritty for exactly a year.
Took me a long time to come to it, but I recently sought to fix one issue — I can’t double click on a file to open it in Neovim.
There are 3 components to getting this to work:
- Neovim can start a server that listens on a named pipe
- Automator can be used to make an app, which can then be configured as the file handler.
- I use Alacritty as a dedicated app for using Neovim
There are a few steps to do it:
- Always start Neovim with server listening on a named pipe:
nvim --listen ~/nvim-server.pipe
- Write a script (I use ruby, and call it
open-in-nvim
) that opens a given filename:
#!/usr/bin/env ruby
arg = ARGV[0]
if arg.nil?
arg = STDIN.read.lines[0]&.chomp
end
`/opt/homebrew/bin/nvim --server ~/nvim-server.pipe --remote-send "<ESC>:tabe #{arg}<CR>"`
`open -a Alacritty`
-
In Automator, create a new
Application
, addRun Shell Script
, and makePass input
asto stdin
and paste the absolute path to theopen-in-nvim
script. Save the application asopen-in-nvim.app
-
Click on a file with the file types you want (
.md
and.swift
for me) and pressCmd+i
(Get Info)
and changeOpen with:
to beopen-in-nvim.app
. Remember to clickChange All…
.
Now double clicking files with that extension will open the file in Neovim and switch to it/Alacritty.