Nano

Siehe auch

GNU nano (Nano’s ANOther editor) ist ein einfacher, schneller und bedienfreundlicher Konsolen-Editor. Gegenüber Vim ist die Lernkurve flach; Tastaturkürzel werden am unteren Bildschirmrand eingeblendet. Für den Administrator-Alltag (Konfigurationsdateien ändern, Log-Einträge notieren, kleinere Skript-Edits) ist Nano eine solide Wahl - für umfangreichere Edit-Sitzungen und wiederkehrende Bearbeitungen bleibt Vim die bessere Option.

Historisch entstand Nano als freie Alternative zum Pine-Editor pico; die heutige Code-Basis ist ein Neuschrieb unter GPL-3.0 und nicht mehr mit dem ursprünglichen tip-/pico-Code verwandt.

Begriffe

Cutbuffer

Puffer für ausgeschnittene bzw. kopierte Inhalte. Mehrfaches Ctrl+K ohne Bewegung dazwischen hängt an den bestehenden Cutbuffer an; jede Positionsänderung leert ihn beim nächsten Schnitt. Fungiert damit als kleiner Zwischenspeicher.

nanorc

Konfigurationssprache von Nano. Systemweit unter /etc/nanorc, pro Benutzer unter ~/.nanorc bzw. ~/.config/nano/nanorc. Syntax set <option> [wert] sowie Syntax-Highlighting via syntax / color. Reference: man 5 nanorc.

Rebinding

Zuordnung eigener Tasten zu Funktionen, z.B. bind ^Q exit main für Ctrl+Q als Beenden. Nützlich, wenn man sich von anderen Editoren an bestimmte Shortcuts gewöhnt hat.

Softwrap

Visueller Zeilenumbruch ohne neue Zeile in der Datei. Unterscheidet Nano vom Hard-Wrap, bei dem ein tatsächliches Newline eingefügt wird.

../_images/nano.png

Nano in Aktion

Installation

Auf RHEL 8+ ist Nano in den Standard-Repos, auf einer „Minimal“-Installation aber nicht standardmässig dabei:

dnf --assumeyes install nano

Deinstallation:

dnf --assumeyes remove nano

Verwendung

Die wichtigsten Tastaturkürzel:

Ctrl + x oder F2

Nano beenden. Das Speichern geänderter Dateien mit y und Enter bestätigen.

Ctrl + o oder F3

Datei speichern.

Ctrl + w oder F6

Suche nach einer Zeichenfolge. Alt + w springt zum nächsten Treffer.

Ctrl + c oder F11

Aktuelle Position anzeigen (Zeilennummer, Spaltennummer).

Ctrl + _

Sprung zu einer bestimmten Zeile.

Ctrl + t

Sprung zu Zeile und Spalte.

Ctrl + w, dann Ctrl + y

Sprung zur ersten Zeile der Datei.

Ctrl + w, dann Ctrl + v

Sprung zur letzten Zeile der Datei.

Ctrl + k oder F9

Ausschneiden. Ohne Markierung wird die aktuelle Zeile ausgeschnitten (Cutbuffer).

Ctrl + u

Einfügen / Undo.

Alt + t

Löscht alles von der Cursorposition bis zum Dateiende.

Alt + p

Whitespaces ein- / ausblenden.

Alt + y

Syntax-Highlighting ein- / ausschalten.

Block-Operationen und Auswahl

Nano hat keinen Multi-Cursor-Modus wie moderne GUI-Editoren (VS Code, Sublime Text), aber einige wenig bekannte Block-Funktionen, die für Admin-Alltag reichen.

Alt + a oder Ctrl + 6

Markierung starten (Mark Set). Ab hier wird mit den Pfeiltasten eine Selektion aufgezogen. Gleiche Tastenkombination beendet die Markierung.

Alt + }

Markierten Block um eine Ebene einrücken. Ohne Markierung wird nur die aktuelle Zeile eingerückt. Die Tab-Breite richtet sich nach tabsize in der nanorc.

Alt + {

Markierten Block um eine Ebene ausrücken.

Alt + 6

Markierten Block kopieren (Copy). Ohne Markierung wird die aktuelle Zeile kopiert.

Ctrl + k

Markierten Block ausschneiden. Ohne Markierung wird die aktuelle Zeile ausgeschnitten.

Ctrl + u

Einfügen (Uncut) aus dem Cutbuffer - fungiert bei Bedarf auch als mehrfaches „Einfügen“, da der Cutbuffer seinen Inhalt behält.

Ctrl + \ oder Alt + r

Suchen und Ersetzen. Nano fragt nacheinander nach Such- und Ersatz-Text; pro Treffer wählt y ersetzen, n überspringen, a alle übrigen ersetzen. So lassen sich systemweite Änderungen (der klassische „Multi-Cursor“-Anwendungsfall) abdecken.

Alt + u

Undo (seit nano 2.4).

Alt + e

Redo.

Alt + < / Alt + >

Zwischen mehreren geöffneten Buffern wechseln (nano file1 file2 file3 öffnet alle in Buffern; Ctrl + r, dann Alt + f liest eine weitere Datei in einen neuen Buffer).

Alt + n

Zeilennummern am linken Rand ein- / ausschalten. Dauerhaft per set linenumbers in der nanorc.

Alt + $

Soft-Wrap (Zeilenumbruch) ein- / ausschalten.

Alt + 3

Aktuelle Zeile oder markierten Block kommentieren / auskommentieren. Nano erkennt den Kommentarpräfix aus der Syntax-Datei (z.B. # bei Shell, // bei C). Seit Nano 2.9.

Alt + j

Ganzen Absatz „justifieren“ (umformattieren auf fill in der nanorc, Default 72 Zeichen). Die umgekehrte Operation (unjustify) ist direkt nach Alt + j mit Ctrl + u erreichbar.

Alt + ]

Zum korrespondierenden Klammerpaar springen (Bracket-Matching).

Start-Parameter

# open the file file.txt
nano file.txt

# open file.txt and jump to line 123
nano +123 file.txt

# open file.txt and jump to line 123, column 35
nano +123,35 file.txt

# scroll line by line instead of page by page
nano --smooth

# indent new lines like the previous one
nano --autoindent

# keep a backup copy (filename prefixed with ~) before saving
nano --backup

# set tab width to 4 spaces
nano --tabsize=4

# read-only mode
nano --view

Konfiguration

Start-Parameter lassen sich persistent in /etc/nanorc (systemweit) oder ~/.nanorc (pro Benutzer) ablegen. Nano muss dafür mit --enable-nanorc kompiliert sein - bei den RHEL- und Debian-Paketen ist das der Fall. Die aktuelle Build-Konfiguration zeigt nano --version.

/etc/nanorc
set autoindent
set backup
set const
set smooth
set tabsize 4

Syntax-Highlighting für einzelne Dateitypen liegt unter /usr/share/nano/*.nanorc. In der eigenen ~/.nanorc einzeln einbinden:

~/.nanorc
include "/usr/share/nano/sh.nanorc"
include "/usr/share/nano/yaml.nanorc"

Oder pauschal alle mitgelieferten Syntax-Dateien aktivieren:

~/.nanorc
include "/usr/share/nano/*.nanorc"

Eigene Tastenbelegung

Via bind in der nanorc lassen sich Nano-Funktionen auf eigene Tasten legen. Nützlich, wenn man vom Editor anderer Plattformen (z.B. Windows Ctrl + s für Save) kommt:

~/.nanorc
# Ctrl+S speichert (statt Ctrl+O)
bind ^S savefile main

# Ctrl+Q beendet
bind ^Q exit main

# Ctrl+F sucht (statt Ctrl+W)
bind ^F whereis all

Funktionsliste und Menü-Namen: man nanorc, Abschnitt „Rebinding Keys“.

Linuxfabrik-Baseline

Ein pragmatischer Minimalsatz an Optionen, der sich im Admin-Alltag bewährt hat:

/etc/nanorc
# convenience
set autoindent
set constantshow
set linenumbers
set mouse
set smarthome
set softwrap
set tabsize 4
set tabstospaces

# syntax highlighting for all shipped files
include "/usr/share/nano/*.nanorc"

Bedeutung (Auszug aus man 5 nanorc):

  • autoindent: übernimmt die Einrückung der vorherigen Zeile.

  • constantshow: zeigt Zeile/Spalte dauerhaft in der Status-Zeile.

  • linenumbers: Zeilennummern links.

  • mouse: Klicken setzt den Cursor; markieren mit gehaltener Maustaste.

  • smarthome: Home springt zuerst an den Textbeginn, erst beim zweiten Druck an den Zeilenanfang.

  • softwrap: visueller Umbruch ohne tatsächliches Newline.

  • tabstospaces: Tabs als Spaces einfügen - meist sinnvoll in Config-Dateien.