#+TITLE: Nano configuration #+setupfile: headers #+OPTIONS: auto-id:t #+HTML_HEAD_EXTRA: #+HTML_HEAD_EXTRA: #+HTML_HEAD_EXTRA: #+PROPERTY: header-args :tangle ~/.config/nano/nanorc #+STARTUP: content * Table of Contents :TOC_4_gh:noexport: :PROPERTIES: :CUSTOM_ID: Table_of_Contents-fcfed7b6 :END: - [[#introduction][Introduction]] - [[#configuration][Configuration]] - [[#keys-behavior][Keys behavior]] - [[#search][Search]] - [[#visual-settings][Visual settings]] - [[#whitespace-settings][Whitespace settings]] - [[#included-configuration-file][Included configuration file]] * Introduction :PROPERTIES: :CUSTOM_ID: Introduction-7e535842 :END: I nowadays rarely use Nano as a text editor, since I mainly rely on Emacs for all sorts of tasks, including quick file editing. However, at times, Emacs won’t work or won’t be available, and I therefore need a lightweight, fast and reliable text editor: Nano. And despite Nano being a simple piece of software, it does offer some customization I cannot refuse. Here is how I configured it: * Configuration :PROPERTIES: :CUSTOM_ID: Configuration-b55668a7 :END: When saving a file, create a backup file by adding a tilde (=~=) to the file's name. And make and keep not just one backup file, but make and keep a uniquely numbered one every time a file is saved — when backups are enabled with =set backup= or =--backup= or =-B=. The uniquely numbered files are stored in the directory =~/.cache/nano/backups/=. #+BEGIN_SRC conf set backup set backupdir /home/phundrak/.cache/nano/backups/ #+END_SRC Save a file by default in Unix format. This overrides nano's default behavior of saving a file in the format that it had. (This option has no effect when you also use =set noconvert=.) #+BEGIN_SRC conf set unix #+END_SRC ** Keys behavior :PROPERTIES: :CUSTOM_ID: Configuration-Keys_behavior-c665fa36 :END: Make the Home key smarter. When Home is pressed anywhere but at the very beginning of non-whitespace characters on a line, the cursor will jump to that beginning (either forwards or backwards). If the cursor is already at that position, it will jump to the true beginning of the line. #+BEGIN_SRC conf set smarthome #+END_SRC ** Search :PROPERTIES: :CUSTOM_ID: Configuration-Search-6e458076 :END: Do case-unsensitive searches by default. #+BEGIN_SRC conf unset casesensitive #+END_SRC Do regular-expression searches by default. Regular expressions in =nano= are of the extended type (ERE). #+BEGIN_SRC conf set regexp #+END_SRC ** Visual settings :PROPERTIES: :CUSTOM_ID: Configuration-Visual_settings-9952f2ae :END: Use bold instead of reverse video for the title bar, status bar, key combos, function tags, line numbers, and selected text. This can be overridden by setting the options =titlecolor=, =statuscolor=, =keycolor=, =functioncolor=, =numbercolor=, and =selectedcolor=. #+BEGIN_SRC conf set boldtext #+END_SRC Enable soft line wrapping for easier viewing of very long lines. #+BEGIN_SRC conf set softwrap #+END_SRC When soft line wrapping is enabled, make it wrap lines at blank characters (tabs and spaces) instead of always at the edge of the screen. #+BEGIN_SRC conf set atblanks #+END_SRC Display line numbers to the left of the text area. #+BEGIN_SRC conf set linenumbers #+END_SRC Constantly display the cursor position in the status bar. This overrides the option =quickblank=. #+BEGIN_SRC conf set constantshow #+END_SRC ** Whitespace settings :PROPERTIES: :CUSTOM_ID: Configuration-Whitespace_settings-8cef9cd7 :END: Convert typed tabs to spaces. Sue me. #+BEGIN_SRC conf set tabstospaces #+END_SRC Use a tab size of a certain amount of columns. The value of number must be greater than 0. The default value is 8. #+BEGIN_SRC conf set tabsize 2 #+END_SRC Automatically indent a newly created line to the same number of tabs and/or spaces as the previous line (or as the next line if the previous line is the beginning of a paragraph). #+BEGIN_SRC conf set autoindent #+END_SRC Remove trailing whitespace from wrapped lines when automatic hard-wrapping occurs or when text is justified. #+BEGIN_SRC conf set trimblanks #+END_SRC ** Included configuration file :PROPERTIES: :CUSTOM_ID: Configuration-Included_configuration_file-70b0f35b :END: Nano gives the opportunity to include some files located elsewhere. This is why I added [[https://github.com/scopatz/nanorc][this repo]] as a submodule of my dotfiles so I can access a lot of them at the same time. Since the submodule is cloned in =~/.config/nanorc=, we can add only one line to include all of the =.nanorc= files. #+BEGIN_SRC conf include ~/.config/nano/nano-syntax/*.nanorc #+END_SRC