# Last updated March, 2022 for Apple silicon Macs | |
# Install Homebrew if you don't already have it: https://brew.sh | |
# install nano from homebrew | |
brew install nano | |
# update your nanorc file | |
echo 'include "/opt/homebrew/Cellar/nano/*/share/nano/*.nanorc"' >> ~/.nanorc | |
# close and re-open your terminal and you'll have syntax highlighting |
Thanks for the tips from the original post and the comments following.
Since Nano Editor v4.0 was released today, I made a bash script to simplify installation on the Mac, with syntax highlighting enabled.
https://gist.github.com/fevangelou/be744753730e86b8783fd481f311a7c9
Enjoy :)
I tried this but gets an error from nanorc
Cannot find directory
Include ~/.nanorc/Syntax
Even though it does exist! I tried every other possible way to write the include statement
What is wrong? I managed to find out after some digging and will answer this here in case other people have the same problem as me.
nano -V
are we running 4.0 or some old version of nano that comes with OSX?
sudo nano /etc/paths
does it look like this?
GNU nano 4.0 /etc/paths
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
~/Library/Python/2.7/bin/
then change the order and copy the row for /usr/local/bin to the top as such
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
~/Library/Python/2.7/bin/
Voila. now nano -V shows up as Vers 4.0 (use new terminal window). and all the syntax is loaded correctly.
Just installing from brew works perfectly here on 10.14.
Create a ~/.nanorc
file and paste the include
list above.
In your ~/.bash_profile
:
alias nano=./usr/local/bin/nano
Next time you open nano you should see the syntax highlighting
Updated .nanorc
file with latest syntaxes from brew
include /usr/local/share/nano/asm.nanorc
include /usr/local/share/nano/autoconf.nanorc
include /usr/local/share/nano/awk.nanorc
include /usr/local/share/nano/c.nanorc
include /usr/local/share/nano/changelog.nanorc
include /usr/local/share/nano/cmake.nanorc
include /usr/local/share/nano/css.nanorc
include /usr/local/share/nano/debian.nanorc
include /usr/local/share/nano/default.nanorc
include /usr/local/share/nano/elisp.nanorc
include /usr/local/share/nano/fortran.nanorc
include /usr/local/share/nano/gentoo.nanorc
include /usr/local/share/nano/go.nanorc
include /usr/local/share/nano/groff.nanorc
include /usr/local/share/nano/guile.nanorc
include /usr/local/share/nano/html.nanorc
include /usr/local/share/nano/java.nanorc
include /usr/local/share/nano/javascript.nanorc
include /usr/local/share/nano/json.nanorc
include /usr/local/share/nano/lua.nanorc
include /usr/local/share/nano/makefile.nanorc
include /usr/local/share/nano/man.nanorc
include /usr/local/share/nano/mgp.nanorc
include /usr/local/share/nano/mutt.nanorc
include /usr/local/share/nano/nanohelp.nanorc
include /usr/local/share/nano/nanorc.nanorc
include /usr/local/share/nano/nftables.nanorc
include /usr/local/share/nano/objc.nanorc
include /usr/local/share/nano/ocaml.nanorc
include /usr/local/share/nano/patch.nanorc
include /usr/local/share/nano/perl.nanorc
include /usr/local/share/nano/php.nanorc
include /usr/local/share/nano/po.nanorc
include /usr/local/share/nano/postgresql.nanorc
include /usr/local/share/nano/pov.nanorc
include /usr/local/share/nano/python.nanorc
include /usr/local/share/nano/ruby.nanorc
include /usr/local/share/nano/rust.nanorc
include /usr/local/share/nano/sh.nanorc
include /usr/local/share/nano/spec.nanorc
include /usr/local/share/nano/tcl.nanorc
include /usr/local/share/nano/tex.nanorc
include /usr/local/share/nano/texinfo.nanorc
include /usr/local/share/nano/xml.nanorc
@aurimasniekis thanks, I've updated the gist to reflect the new file list
My set-up on MacOS Catalina (10.15.7) with zsh
Install nano from homebrew
brew install nano
After it, I have two versions of nano:
$ ls /usr/local/bin/nano
/usr/local/bin/nano # installed from brew
$ ls /usr/bin/nano
/usr/bin/nano # original one
Create alias to nano installed from brew inside my zsh config file:
$ sudo vim /etc/zshrc
alias nano='/usr/local/bin/nano'
Create nanorc file and include which languages you want to highlight:
nano ~/.nanorc
nanorc: stable 2020.10.10, HEAD
Improved Nano Syntax Highlighting Files
https://github.com/scopatz/nanorc
brew install nanorc
include /usr/local/share/nanorc/Dockerfile.nanorc
include /usr/local/share/nanorc/Rnw.nanorc
include /usr/local/share/nanorc/apacheconf.nanorc
include /usr/local/share/nanorc/arduino.nanorc
include /usr/local/share/nanorc/asciidoc.nanorc
include /usr/local/share/nanorc/asm.nanorc
include /usr/local/share/nanorc/awk.nanorc
include /usr/local/share/nanorc/batch.nanorc
include /usr/local/share/nanorc/c.nanorc
include /usr/local/share/nanorc/clojure.nanorc
include /usr/local/share/nanorc/cmake.nanorc
include /usr/local/share/nanorc/coffeescript.nanorc
include /usr/local/share/nanorc/colortest.nanorc
include /usr/local/share/nanorc/conf.nanorc
include /usr/local/share/nanorc/conky.nanorc
include /usr/local/share/nanorc/creole.nanorc
include /usr/local/share/nanorc/csh.nanorc
include /usr/local/share/nanorc/csharp.nanorc
include /usr/local/share/nanorc/css.nanorc
include /usr/local/share/nanorc/csv.nanorc
include /usr/local/share/nanorc/cython.nanorc
include /usr/local/share/nanorc/dot.nanorc
include /usr/local/share/nanorc/dotenv.nanorc
include /usr/local/share/nanorc/elixir.nanorc
include /usr/local/share/nanorc/email.nanorc
include /usr/local/share/nanorc/erb.nanorc
include /usr/local/share/nanorc/etc-hosts.nanorc
include /usr/local/share/nanorc/fish.nanorc
include /usr/local/share/nanorc/fortran.nanorc
include /usr/local/share/nanorc/fsharp.nanorc
include /usr/local/share/nanorc/gemini.nanorc
include /usr/local/share/nanorc/genie.nanorc
include /usr/local/share/nanorc/gentoo.nanorc
include /usr/local/share/nanorc/git.nanorc
include /usr/local/share/nanorc/gitcommit.nanorc
include /usr/local/share/nanorc/glsl.nanorc
include /usr/local/share/nanorc/go.nanorc
include /usr/local/share/nanorc/gophermap.nanorc
include /usr/local/share/nanorc/gradle.nanorc
include /usr/local/share/nanorc/groff.nanorc
include /usr/local/share/nanorc/haml.nanorc
include /usr/local/share/nanorc/haskell.nanorc
include /usr/local/share/nanorc/hcl.nanorc
include /usr/local/share/nanorc/html.j2.nanorc
include /usr/local/share/nanorc/html.nanorc
include /usr/local/share/nanorc/i3.nanorc
include /usr/local/share/nanorc/ical.nanorc
include /usr/local/share/nanorc/ini.nanorc
include /usr/local/share/nanorc/inputrc.nanorc
include /usr/local/share/nanorc/jade.nanorc
include /usr/local/share/nanorc/java.nanorc
include /usr/local/share/nanorc/javascript.nanorc
include /usr/local/share/nanorc/js.nanorc
include /usr/local/share/nanorc/json.nanorc
include /usr/local/share/nanorc/keymap.nanorc
include /usr/local/share/nanorc/kickstart.nanorc
include /usr/local/share/nanorc/kotlin.nanorc
include /usr/local/share/nanorc/ledger.nanorc
include /usr/local/share/nanorc/lisp.nanorc
include /usr/local/share/nanorc/lua.nanorc
include /usr/local/share/nanorc/m3u.nanorc
include /usr/local/share/nanorc/makefile.nanorc
include /usr/local/share/nanorc/man.nanorc
include /usr/local/share/nanorc/markdown.nanorc
include /usr/local/share/nanorc/moonscript.nanorc
include /usr/local/share/nanorc/mpdconf.nanorc
include /usr/local/share/nanorc/mutt.nanorc
include /usr/local/share/nanorc/nanorc.nanorc
include /usr/local/share/nanorc/nginx.nanorc
include /usr/local/share/nanorc/nmap.nanorc
include /usr/local/share/nanorc/ocaml.nanorc
include /usr/local/share/nanorc/octave.nanorc
include /usr/local/share/nanorc/patch.nanorc
include /usr/local/share/nanorc/peg.nanorc
include /usr/local/share/nanorc/perl.nanorc
include /usr/local/share/nanorc/perl6.nanorc
include /usr/local/share/nanorc/php.nanorc
include /usr/local/share/nanorc/pkg-config.nanorc
include /usr/local/share/nanorc/pkgbuild.nanorc
include /usr/local/share/nanorc/po.nanorc
include /usr/local/share/nanorc/pov.nanorc
include /usr/local/share/nanorc/powershell.nanorc
include /usr/local/share/nanorc/privoxy.nanorc
include /usr/local/share/nanorc/prolog.nanorc
include /usr/local/share/nanorc/properties.nanorc
include /usr/local/share/nanorc/pug.nanorc
include /usr/local/share/nanorc/puppet.nanorc
include /usr/local/share/nanorc/python.nanorc
include /usr/local/share/nanorc/reST.nanorc
include /usr/local/share/nanorc/rpmspec.nanorc
include /usr/local/share/nanorc/ruby.nanorc
include /usr/local/share/nanorc/rust.nanorc
include /usr/local/share/nanorc/scala.nanorc
include /usr/local/share/nanorc/sed.nanorc
include /usr/local/share/nanorc/sh.nanorc
include /usr/local/share/nanorc/sieve.nanorc
include /usr/local/share/nanorc/sls.nanorc
include /usr/local/share/nanorc/sparql.nanorc
include /usr/local/share/nanorc/sql.nanorc
include /usr/local/share/nanorc/svn.nanorc
include /usr/local/share/nanorc/swift.nanorc
include /usr/local/share/nanorc/systemd.nanorc
include /usr/local/share/nanorc/tcl.nanorc
include /usr/local/share/nanorc/tex.nanorc
include /usr/local/share/nanorc/toml.nanorc
include /usr/local/share/nanorc/ts.nanorc
include /usr/local/share/nanorc/twig.nanorc
include /usr/local/share/nanorc/vala.nanorc
include /usr/local/share/nanorc/verilog.nanorc
include /usr/local/share/nanorc/vi.nanorc
include /usr/local/share/nanorc/x11basic.nanorc
include /usr/local/share/nanorc/xml.nanorc
include /usr/local/share/nanorc/xresources.nanorc
include /usr/local/share/nanorc/yaml.nanorc
include /usr/local/share/nanorc/yum.nanorc
include /usr/local/share/nanorc/zig.nanorc
include /usr/local/share/nanorc/zsh.nanorc
include /usr/local/share/nanorc/zshrc.nanorc
@docdyhr I've updated the gist with your new list of includes
thank you so much, worked perfectly for me on mac OS
Why does every file need to be listed? The following works for me:
brew install nano
echo 'include "/usr/local/share/nano/*.nanorc"' >> ~/.nanorc
+1 on @hacker1024 comment. single include with *.nanorc
works for me as well.
Thanks this worked! Is there any reason why the syntax highlighting only applies to nano
, not sudo nano
though?
Thanks this worked! Is there any reason why the syntax highlighting only applies to
nano
, notsudo nano
though?
In order to have it for sudo nano
you have to edit the .nanorc for the root user
@lorthirk That makes sense. Thanks for the help!
Why does every file need to be listed? The following works for me:
brew install nano echo 'include "/usr/local/share/nano/*.nanorc"' >> ~/.nanorc
This is nice! It works fine for me. Thank you!
Mac OSX Big Sur
nano version:5.8
brew install nano
echo 'include "/opt/homebrew/Cellar/nano/5.8/share/nano/*.nanorc"'>> ~/.nanorc
Thanks @secfb (above), it worked beautifully on an M1 Mac running Monterery & zsh.
I ran:
brew install nano
# Restart terminal
nano -V
# Note the version number
echo 'include "/opt/homebrew/Cellar/nano/NANO_VERSION_NUMBER/share/nano/*.nanorc"'>> ~/.nanorc
# EG: echo 'include "/opt/homebrew/Cellar/nano/5.9/share/nano/*.nanorc"'>> ~/.nanorc
Brew creates symlink so you don't need set nano version number:
echo 'include "/usr/local/share/nano/*.nanorc"' >> ~/.nanorc
or for Apple Silicon: echo 'include "/opt/homebrew/Cellar/nano/*/share/nano/*.nanorc"' >> ~/.nanorc
Brew creates symlink so you don't need set nano version number:
echo 'include "/usr/local/share/nano/*.nanorc"' >> ~/.nanorc
Thanks @tagplus5, updated the gist for Apple Silicon
or for Apple Silicon: echo 'include "/opt/homebrew/Cellar/nano//share/nano/.nanorc"' >> ~/.nanorc
Thanks! It's weird that you have to encode the wildcard for the version and you don't get a nice symlink like /usr/local/share/nano/
on Intel Macs. Hopefully there's only one version there at a time!
Brew creates symlink so you don't need set nano version number:
echo 'include "/usr/local/share/nano/*.nanorc"' >> ~/.nanorc
Thanks @tagplus5, updated the gist for Apple Silicon
This worked for me, brew install nano
and then this command. Thanks! (on M1 MBP)
for me what worked is
echo "include /opt/homebrew/Cellar/nano/6.3/share/nano/*.nanorc" >> ~/.nanorc
brew install nano
echo include "$(brew --prefix nano)/share/nano/*.nanorc" >> ~/.nanorc
or
brew install nano
brew install nanorc
echo include "$(brew --prefix nanorc)/share/nanorc/*.nanorc" >> ~/.nanorc
latest is:
echo "include /opt/homebrew/Cellar/nano/6.4/share/nano/*.nanorc" >> ~/.nanorc
For macOS Ventura:
brew install nano nanorc
echo "include /opt/homebrew/Cellar/nano/7.0/share/nano/*.nanorc" >> ~/.nanorc
Note you might want to take this opportunity to just start with a clean .nanorc if you've been upgrading nano and nanorc frequently.
mv ~/.nanorc ~/.nanorc.orig && echo "include /opt/homebrew/Cellar/nano/7.0/share/nano/*.nanorc" > ~/.nanorc
@x86txt: Replace the …/nano/7.0/share/…
part with …/nano/*/share/…
so you don't have to keep updating your .nanorc
file every time nano updates to a newer version.
Worked for me:
brew install nano nanorc
echo 'include "/usr/local/Cellar/nano/*/share/nano/*.nanorc"' >> ~/.nanorc
Doesn't work