Files
nix-config/modules/packages/nano.org
T

67 lines
1.9 KiB
Org Mode
Raw Normal View History

2026-10-03 09:56:48 +02:00
#+title: Nano
#+setupfile: ../headers
* Nano
I mostly live in Emacs, but I still want a sane fallback editor for
quick edits over SSH. Here’s the =nixos.nano= module.
#+begin_src nix :tangle yes
{
flake.modules.nixos.nano = {
programs.nano = {
<<enable-nano>>
<<syntax-highlight>>
<<nanorc>>
};
};
}
#+end_src
** Enabling Nano
#+name: enable-nano
#+begin_src nix
enable = true;
#+end_src
** Configuration
First of all, let’s enable syntax highlighting. Nothing fancy here,
the basics are enough.
#+name: syntax-highlight
#+begin_src nix
syntaxHighlight = true;
#+end_src
A handful of =nanorc= settings make it behave a bit more like a modern
editor.
#+name: nanorc-settings
| Setting | Why |
|-------------+-------------------------------------------------------------------|
| =tabsize 2= | Two spaces per tab, matching how I indent code |
| =autoindent= | Keep a new line at the same indentation as the one above it |
| =atblanks= | Let soft-wrapped lines indent to match the line above, blanks too |
| =linenumbers= | Show line numbers in the margin |
| =smarthome= | Make Home jump to the first non-blank character, not column 0 |
| =softwrap= | Wrap long lines visually instead of running them off-screen |
#+name: make-nanorc
#+begin_src emacs-lisp :exports none :var settings=nanorc-settings :cache yes
(mapconcat (lambda (setting)
(concat "set " (s-chop-prefix "=" (s-chop-suffix "=" (car setting)))))
settings
"\n")
#+end_src
#+RESULTS[6aaf0a64a52e9d9f15f39ce4396583cec8896c58]: make-nanorc
: set tabsize 2
: set autoindent
: set atblanks
: set linenumbers
: set smarthome
: set softwrap
#+name: nanorc
#+begin_src nix
nanorc = ''
<<make-nanorc()>>
'';
#+end_src