So there is a Mac side and an Ubuntu side to my personality, what can I say. And when on my Mac, when it comes to sftp clients Cyberduck is cute, and cool and everything, but being me I just like Fugu more. Like that “Commander” split window look.
One of the things I like about it is the Command-J remote file editing which is quick and snappy. However, the preferences don’t allow you to specify ad-hoc editors. So how do I get my beloved MacVim to work with remote file editing (making the combination of Fugu + MacVim a nifty IDE or at least environment I can think in)?
Searching led me to part of the answer, good old jessie wrote about this back in 2006 at http://www.jessiemihalik.com/articles/2006/08/16/customizing-the-editor-in-fugu/
However, specifying /Applications/MacVim.app didn’t work for me; instead I said for it to be invoked as a binary at /usr/bin/Vim.
Steps I took:
- Locate Fugu in Applications in Finder in Application.
- Right-click and select Show Package Contents
- Go to Contents > Resources
- Edit the file ODBEditors.plist with your favorite editor, he he.
- The “vim” entry is useless anyway, so just modify it to show the following:
<dict>
<key>ODBEditorBundleID</key>
<string>-</string>
<key>ODBEditorLaunchStyle</key>
<integer>1</integer>
<key>ODBEditorName</key>
<string>MacVim</string>
<key>ODBEditorPath</key>
<string>/usr/bin/Vim</string>
</dict>
ODBEditorLaunchStyle has to be “1” and not “0”.
And very important the ODBEditorPath
Voilá! Editing remote files now works, snappily copying down the file and allowing you to edit it, and have the option of uploading after saving your work.
Only one little fly in the ointment: no syntax coloring on remote files even though my local .vimrc calls for it. I fixed that by adding the following line to /usr/share/vim/vimrc:
syntax on
I could now benefit from all my vim customizing (see my recent Simple Vim plugin management for Javascript development article) while effortlessly editing remote files. Cool! Why bother copying them to my laptop if they are versioned with Git!