Nano
nano - Einfacher Test-Editor
Beschreibung
- nano - »Nano's ANOther editor«
- Inspiriert von Pico
- Ermöglicht die Bearbeitung von Dateien in einem Terminal bzw. auf der Konsole, auch ohne grafische Umgebung.
- Nano hat einen geringeren Funktionsumfang als z. B. VIM oder Emacs, ist dafür aber deutlich einfacher und intuitiver zu bedienen.
- Daher eignet sich Nano besonders für kleinere, schnelle Bearbeitungen oder für das Schreiben von kurzen Skripten.
Der Editor unterstützt u.a. Syntax-Hervorhebung für verschiedene Programmiersprachen, Undo/Redo Funktionalität, Mausunterstützung (sofern ein Grafikserver läuft), automatische Einrückung, Speichern von Dateien mit MS-DOS oder Mac Zeilenenden u.v.m.
- nano ist ein kleiner und freundlicher Editor
- Er kopiert das Aussehen und Verhalten von Pico, ist aber freie Software und implementiert verschiedene Funktionen, die Pico fehlen, wie: Öffnen mehrerer Dateien, zeilenweises Rollen, rückgängig machen und Wiederholen, farbige Syntaxhervorhebung, Zeilennummern und fließenden Umbruch überlanger Zeilen.
Wenn Sie in der Befehlszeile einen Dateinamen angeben, können Sie den Cursor in einer bestimmten Zeile platzieren, indem Sie die Zeilennummer mit einem Pluszeichen (+) dem Dateinamen voranstellen.
- Mit einem Komma können Sie sogar die gewünschte Spalte angeben.
- Der Cursor kann in die erste oder letzte Zeile des Vorkommens einer bestimmten Zeichenkette gesetzt werden, indem Sie diese Zeichenkette nach einem +/ oder +? dem Dateinamen voranstellen.
- Fügen Sie zusätzlich ein c und/oder r nach dem Pluszeichen ein, wird für die Zeichenkette Groß-/Kleinschreibung berücksichtigt genauer gesagt, die Zeichenkette als regulärer Ausdruck betrachtet.
- Diese Suchmodi können explizit deaktiviert werden, indem Sie Groß- statt Kleinschreibung verwenden: C und/oder R.
- Wenn die Zeichenkette Leerzeichen enthält, muss sie in Anführungszeichen gesetzt werden.
- Ein Beispiel, in dem eine Datei geöffnet und der Cursor beim ersten Vorkommen des Wortes »Foo« gesetzt werden soll:
$ nano +c/Foo Datei
Als Spezialfall: wird beim Aufruf anstatt eines Dateinamens ein Minuszeichen (-) angegeben, liest nano Daten aus der Standardeingabe.
Installation
# apt-get install nano
Aufruf
$ nano [Optionen] [[+Zeile[,Spalte]] Datei] … $ nano [Optionen] [[+[crCR](/|?)Zeichenkette] Datei] …
Optionen
Unix | GNU | Beschreibung |
---|---|---|
-A | --smarthome | macht die Pos1-Taste intelligenter.
|
-B | --backup | sichert beim Speichern einer Datei die vorherige Version mit dem Namen der aktuellen Datei, dem eine Tilde (~) angehängt wird. |
-C Verzeichnis | --backupdir=Verzeichnis | erstellt nicht nur eine Sicherungsdatei und behält diese, sondern erstellt eine eindeutig nummerierte Datei jedes Mal, wenn eine Datei gespeichert wird – sofern Sicherungen aktiviert sind (-B).
|
-D | --boldtext | verwendet für die Benutzeroberfläche Fettdruck anstelle von inversem Text.
|
-E | --tabstospaces | wandelt jeden eingegebenen Tabulator in Leerzeichen um, und zwar in die Anzahl der Leerzeichen, wie der Tabulator an dieser Position einnehmen würde. |
-F | --multibuffer | liest standardmäßig eine Datei in einen neuen Puffer ein. |
-G | --locking | aktiviert beim Bearbeiten von Dateien die Dateisperrung im Vim-Stil. |
-H | --historylog | speichert die letzten 100 Suchzeichenketten, Ersetzungszeichenketten und ausgeführten Befehle, so dass sie in späteren Sitzungen leicht wiederverwendet werden können. |
-I | --ignorercfiles |
übergeht sowohl die systemweite nanorc als auch die nanorc des Benutzers. |
-J Zahl | --guidestripe=Zahl | blendet einen Markierungsbalken in der angegebenen Spalte ein, anhand dessen Sie die Breite des Texts besser beurteilen können.
|
-K | --rawsequences | interpretiert Escape-Sequenzen direkt, anstatt sie durch ncurses übersetzen zu lassen.
|
-L | --nonewlines | fügt nicht automatisch einen Zeilenvorschub an, wenn ein Text nicht mit einem solchen endet. (Das kann dazu führen, dass Sie POSIX-inkompatible Textdateien speichern.) |
-M | --trimblanks | entfernt angehängten Leerraum beim automatischen harten Umbruch oder bei der Ausrichtung von Text vom Ende der Zeile. |
-N | --noconvert | deaktiviert die automatische Umwandlung von Dateien aus dem DOS/Mac-Format. |
-O | --bookstyle | fasst beim Ausrichten jede Zeile, die mit Leerraum beginnt, als Beginn eines Absatzes auf (außer wenn automatisches Einrücken aktiviert ist). |
-P | --positionlog | protokolliert für die 200 zuletzt bearbeiteten Dateien die letzte Position des Cursors und setzt ihn beim erneuten Öffnen der Datei wieder an diese Stelle. |
-Q "regulärer_Ausdruck" | --quotestr="regulärer_Ausdruck" |
legt den regulären Ausdruck für die Übereinstimmungsfindung für Zitate fest.
|
-R | --restricted | aktiviert den eingeschränkten Modus: Es wird nichts aus einer Datei gelesen oder in diese geschrieben, die nicht in der Befehlszeile übergeben wurde.
|
-S | --softwrap | zeigt Zeilen, die länger als die Bildschirmbreite sind, in mehreren Zeilen an (Sie können diesen fließenden Zeilenumbruch so einrichten, dass an Leerzeichen statt grob am Bildschirmrand umgebrochen wird, indem Sie auch --atblanks verwenden). (Die frühere kurze Option -$ ist nun als veraltet anzusehen.) |
-T Anzahl | --tabsize=Anzahl | setzt die Größe (Breite) von Tabulatoren auf die angegebene Anzahl Spalten.
|
-U | --quickblank | blendet die Statuszeile bereits nach einem Tastendruck anstelle von 20 aus.
|
-V | --version | gibt die Versionsnummer aus und beendet das Programm. |
-W | --wordbounds | erkennt Wortgrenzen anders, indem Interpunktionszeichen als Teil eines Wortes angesehen werden. |
-X "Zeichen" | --wordchars="Zeichen" |
gibt an, welche anderen Zeichen (neben den normalen alphanumerischen Zeichen) als Teil eines Wortes betrachtet werden sollen.
|
-Y Name | --syntax=Name | gibt den Namen der zu verwendenden Syntaxhervorhebung an.
|
-Z | --zap | bewirkt, dass durch Drücken einer unmodifizierten Rückschritt- oder Entf-Taste der markierte Bereich gelöscht wird (anstelle eines einzelnen Zeichens und ohne Auswirkung auf die Zwischenablage). |
-a | --atblanks | bricht bei aktiviertem fließendem Zeilenumbruch bei Leerräumen anstatt immer beim Erreichen des Bildschirmrandes um. |
-b | --breaklonglines | bricht die aktuelle Zeile automatisch hart um, wenn sie zu lang wird.
|
-c | --constantshow | zeigt die Cursorposition permanent in der Statuszeile an.
|
-d | --rebinddelete | interpretiert die Entf- und Rückschrittasten anders, so dass sowohl Rückschritt als auch Entf korrekt funktionieren.
|
-e | --emptyline | verwendet die Leerzeile unter der Titelleiste nicht und lässt diese leer. |
-f Datei | --rcfile=Datei | liest zum Setzen der Optionen für nano nur die angegebene Datei, anstatt sowohl die systemweite nanorc als auch die des Benutzers zu lesen. |
-g | --showcursor | macht den Cursor im Dateibrowser (indem er auf den hervorgehobenen Eintrag gesetzt wird) und im Hilfebetrachter sichtbar.
|
-h | --help | zeigt eine Zusammenfassung der verfügbaren Befehlszeilenoptionen an und beendet das Programm. |
-i | --autoindent | rückt eine neue Zeile automatisch um die gleiche Anzahl Tabulatoren und/oder Leerzeichen wie die vorhergehende Zeile ein (oder wie die nächste Zeile, wenn die vorhergehende Zeile der Anfang eines Absatzes ist). |
-j | --jumpyscrolling | rollt den Inhalt des Puffers um einen halben Bildschirminhalt statt um eine Zeile. |
-k | --cutfromcursor | bewirkt, dass der Befehl zum Ausschneiden von Text (normalerweise ^K) nur von der aktuellen Cursorposition bis zum Ende der Zeile anstatt die gesamte Zeile ausschneidet. |
-l | --linenumbers | Zeigt Zeilennummern links vom Textbereich an. (Jede Zeile mit einem Anker erhält außerdem eine Markierung im Randbereich.) |
-m | --mouse | aktiviert Mausunterstützung, falls dies auf Ihrem System verfügbar ist.
|
-n | --noread | fasst jeden in der Befehlszeile übergebenen Namen als neue Datei auf.
Es wird mit einem leeren Puffer begonnen und in die Pipe geschrieben, wenn der Benutzer die »Datei« speichert.
|
-o Verzeichnis | --operatingdir=Verzeichnis | legt das Verzeichnis fest, in dem gearbeitet werden soll.
|
-p | --preserve | erhält die Sequenzen XON und XOFF (^Q und ^S), so dass diese vom Terminal abgefangen werden. |
-q | --indicator | zeigt eine Bildlaufleiste am rechten Rand des Editorfensters an.
|
-r Anzahl | --fill=Anzahl | legt die gewünschte Breite für die Ausrichtung und den automatischen harten Zeilenumbruch auf die angegebene Anzahl Spalten fest.
|
-s "Programm [Argument …]" | --speller="Programm [Argument …]" |
gibt das für die Rechtschreibprüfung und -korrektur zu verwendende Programm an, welches statt der eingebauten Korrektur verwendet werden soll, die hunspell(1) oder spell(1) aufruft. |
-t | --saveonexit | speichert einen geänderten Puffer stets ohne Nachfrage (beim Beenden mit ^X). |
-u | --unix | speichert eine Datei standardmäßig im Unix-Format.
|
-v | --view | zeigt lediglich die Datei an und verhindert die Bearbeitung (schreibgeschützter Modus).
|
-w | --nowrap | bricht die aktuelle Zeile nicht automatisch hart um, wenn sie zu lang wird.
(--breaklonglines) – die zuletzt angegebene Option ist wirksam. |
-x | --nohelp | zeigt die zwei Hilfezeilen am unteren Rand des Bildschirms nicht an. |
-y | --afterends | bewirkt, dass »Strg+Pfeiltaste rechts« und »Strg+Entf« am Wortende anstatt am Wortanfang stoppt. |
-% | --stateflags | verwendet die obere rechte Ecke des Bildschirms zum Anzeigen einiger Statusindikatoren, wenn Folgendes aktiv ist: I bei automatischer Einrückung, M bei Markierungen, L bei hartem Umbruch überlanger Zeilen, R bei der Aufzeichnung eines Makros und S bei fließendem Zeilenumbruch.
|
-_ | --minibar | unterdrückt die Anzeige der Titelleiste und zeigt stattdessen am unteren Bildschirmrand im Bereich der Statuszeile Informationen zum aktuellen Puffer an.
|
-0 | --zero | verbirgt alle Elemente der Benutzerschnittstelle (Titelleiste, Statuszeile und Hilfezeilen) und verwendet alle Zeilen des Terminals für die Anzeige des Pufferinhalts.
|
-! | --magic | Wenn weder der Name noch die erste Zeile der Datei einen Hinweis liefert, wird versucht, die anwendbare Syntax mittels Libmagic zu bestimmen. |
Parameter
Umgebung
Rückgabewert
Anwendung
Bearbeitung
Eingabe von Text und Bewegen innerhalb einer Datei ist einfach: durch Eingabe der Buchstaben und Verwenden der normalen Cursortasten.
- Befehle können Sie mit der Strg-Taste (^) und den Alt- oder Metatasten (M-) eingeben.
- Die Eingabe ^K löscht die aktuelle Zeile und schreibt sie in die Zwischenablage.
- Mehrere aufeinander folgende Eingaben von ^K schreiben die gelöschten Zeilen zusammen in die Zwischenablage.
- Jede Bewegung des Cursors oder Eingabe eines anderen Befehls führt dazu, dass die nächste Eingabe von ^K die Zwischenablage überschreibt.
- Ein ^U fügt den aktuellen Inhalt der Zwischenablage an der aktuellen Cursorposition ein.
Wenn ein etwas genauerer Textteil ausgeschnitten oder kopiert werden soll, können Sie die Markierung mit ^6 beginnen, den Cursor zum gewünschten Ende bewegen (der markierte Text wird nun hervorgehoben) und dann mit ^K den Text ausschneiden oder mit M-6 in die Zwischenablage kopieren.
- Sie können den markierten Text auch mit ^O in einer Datei speichern oder mit ^T^T die Rechtschreibung prüfen lassen.
In einigen Terminals kann Text auch mit den Pfeiltasten bei gedrückt gehaltener Umschalttaste markiert werden.
- Wenn Sie außerdem die Strg- oder Alt-Taste gedrückt halten, wird dies beschleunigt.
- Durch jede Bewegung des Cursors ohne Gedrückthalten der Umschalttaste wird eine solche Auswahl abgebrochen.
Die zwei Zeilen am unteren Bildschirmrand zeigen einige wichtige Befehle; die eingebaute Hilfe (^G) listet alle verfügbaren Befehle auf.
- Die voreingestellten Tastaturschnellzugriffe können über eine Datei nanorc geändert werden, siehe nanorc(5).
Der Editor kann direkt im Terminal gestartet werden:
nano [OPTIONEN] [DATEI]
Gibt man keine Datei und keine Option an, öffnet sich ein leeres Editorfenster. Gibt man einen Dateinamen an, wird die entsprechende Datei direkt im Editorfenster geöffnet.
Tastenkürzel
einige Tastenkürzel | ||
Tasten
(beide Spalten sind gleichwertig) |
Aktion | |
Strg + G | F1 | Vollständige Liste der Tastenkürzel (M ("Meta") mit Alt oder Alt + ⇧ aufrufbar.) Hilfe anzeigen |
Strg + X | F2 | Datei schließen |
Strg + O | F3 | Datei speichern |
Strg + W | F6 | Suche |
Alt + W | F16 | Weitersuchen |
Alt + R | Strg + Alt Gr + ß | Suchen/Ersetzen |
Alt + ⇧ + Strg | Alt + 6 | Zeile (oder Markierung) in Zwischenablage kopieren |
Strg + K | F9 | Zeile (oder Markierung) ausschneiden und in Zwischenablage kopieren |
Strg + U | F10 | Inhalt der Zwischenablage einfügen |
Alt + A | Strg + 6 | Markierung beginnen/ Markierung aufheben |
Strg + A | Pos1 | Zum Zeilenanfang gehen |
Strg + E | Ende | Zum Zeilenende gehen |
Alt + Alt Gr + < | Alt + Alt Gr + ß | Zum Dateianfang gehen |
Alt + ⇧ + 7 | Alt + ⇧ + ß | Zum Dateiende gehen |
Alt + G | Strg + ⇧ + - | Zu einer bestimmten Zeile springen |
Alt + D | Dateistatistiken anzeigen | |
Strg + C | Aktuelle Cursorposition anzeigen | |
Alt + C | Aktuelle Cursorposition ständig anzeigen ein/aus | |
Alt + X | Hilfezeilen anzeigen ein/aus | |
Alt + O | Leerzeile unterhalb der Titelzeile ein/aus | |
Alt + Y | Syntaxhervorhebung ein/aus |
Konfiguration
Die systemweite Konfiguration von Nano ist in der Datei /etc/nanorc hinterlegt. Möchte man sich eine benutzerspezifische Konfiguration anlegen, kopiert man die Datei nach ~/.config/nano/nanorc (oder alternativ ~/.nanorc) und nimmt dort die gewünschten Änderungen vor. Die Datei ist ausführlich kommentiert, weitere Hilfe bekommt man auch beim Aufruf der man-Page von nanorc:
man nanorc
Syntaxhervorhebung
Nano bietet Syntaxhervorhebung für eine ganze Reihe von Programmiersprachen und Dateiformaten (wie JSON, XML). Die Dateien für die Syntaxhervorhebung sind im Verzeichnis /usr/share/nano abgelegt. Die Dateien haben die Endung .nanorc, der Dateiname vor dem Punkt sagt, für welche Sprache oder Dateiart die Syntaxhervorhebung definiert ist, also z. B. python.nanorc für Python oder json.nanorc für JSON-Dateien.
Standardmäßig ist die Hervorhebung für alle vorhandenen Formate bzw. Sprachen aktiviert. Das geschieht durch folgende Zeile in /etc/nanorc.
include "/usr/share/nano/*.nanorc"
Während der Arbeit mit nano kann durch Alt + Y die Syntaxhervorhebung ein- oder ausgeschaltet werden.
Farben der Syntaxhervorhebung anpassen
Um die Farben der Syntaxhervorhebung systemweit zu ändern, müssen die Einstellungen in /usr/share/nano/ geändert werden. Sollen sie für einen Benutzer geändert werden, kann die entsprechende Datei z. B. nach ~/.nano/ kopiert und angepasst werden.
Damit diese Anpassungen übernommen werden, muss die Datei bzw. das Verzeichnis in der lokalen (.)nanorc eingebunden sein
include "/$HOME/nano/*.nanorc"
Shellskripte unabhängig vom Dateinamen einfärben
Nano färbt von sich aus Shellscripte unabhängig vom Dateinamen ein, also auch wenn die Datei nicht auf *.sh
endet. Das funktioniert jedoch nur, wenn das Shellscript sich auch als solches ausgibt, also z. B. mit einem Shebang für Shellskripte beginnt. Wer sich für die genauen Regeln interessiert, kann diese in /usr/share/nano/sh.nanorc
nachlesen.
Wird ein Shellscript nicht als solches erkannt, so kann man mit folgendem Befehl die Einfärbung mit dem Schema "sh" erzwingen:
nano -Y sh [Datei]
Hinweis:
Selbstverständlich funktioniert das auch mit anderen Farbschemata, wie z. B. "html". Das ist aber nur selten nötig, da hier fast immer die Dateiendung zur Erkennung des Inhalts ausreicht.
Will man doch einmal eine Datei öffnen, ohne dass jegliche Syntaxhervorhebung angewandt wird (auch nicht das Schema "default"), so muss man nun Nano mit:
nano -Y none [DATEI]
starten, oder zur Laufzeit mit Alt + Y die Hervorhebung deaktivieren.
Anmerkungen
Die Option -z (--suspendable) wurde entfernt.
- Das Schieben in den Hintergrund ist standardmäßig aktiviert und ist über ^T^Z erreichbar.
- Falls Sie zum Schieben in den Hintergrund ein einfaches ^Z bevorzugen, fügen Sie bind ^Z suspend main zu Ihrer Nanorc hinzu.
Falls kein alternativer Befehl zur Rechtschreibprüfung in der Befehlszeile oder in einer der nanorc-Dateien angegeben ist, sucht nano in der Umgebungsvariable SPELL danach.
In einigen Fällen versucht nano, den Puffer in einer Notfalldatei zu speichern.
- Dies geschieht hauptsächlich dann, wenn nano ein SIGHUP oder SIGTERM empfängt oder der Speicher ausgeschöpft ist.
- Der Puffer wird in eine Datei namens nano.save geschrieben, falls für den Puffer noch kein Name vergeben wurde, oder die Endung .save wird zum aktuellen Dateinamen hinzugefügt.
- Falls eine Notfalldatei gleichen Namens im aktuellen Verzeichnis bereits existiert, wird außer der Endung .save eine Zahl hinzugefügt (zum Beispiel .save.1, damit sie eindeutig unterscheidbar wird.
- Im Mehrpuffer-Modus schreibt nano alle offenen Puffer in deren jeweilige Notfalldateien.
Umschaltungen
Unter den oben genannten Optionen können einige auch ein- und ausgeschaltet werden, wenn nano läuft.
- Beispielsweise schaltet M-L den harten Umbruch langer Zeilen, M-S den fließenden Umbruch, M-N die Anzeige der Zeilennummern, M-M die Verwendung der Maus, M-I die automatische Einrückung und M-X die Anzeige der Hilfezeilen ein oder aus.
- Am Ende des mit ^G angezeigten Hilfetexts finden Sie eine vollständige Liste.
Der Umschalter M-X ist speziell: Er funktioniert in allen Menüs, außer im Hilfebetrachter und im Linter.
- Alle anderen Umschalter funktionieren nur im Hauptmenü.
Problembehebung
Sollten die Definitionsdateien für die Syntaxhervorhebung, die in der nanorc eingetragen wurden, nicht oder nur teilweise erkannt werden, dann stört sich das Programm möglicherweise daran, dass "include"-Einträge in der globalen Konfigurationsdatei /etc/nanorc und der lokalen ~/.config/nano/nanorc vorhanden sind. Abhilfe schafft dann die Definitionsdateien in einer der beiden Dateien auzukommentieren.
Die Aufzeichnung und Wiedergabe von Tastaturmakros funktioniert nur in einem Terminalemulator fehlerfrei, jedoch nicht in einer Linux-Konsole (VT), da Letztere standardmäßig nicht zwischen modifizierten und unmodifizierten Pfeiltasten unterscheiden kann.
Bitte melden Sie alle andere Fehler, die sie entdecken, auf: https://savannah.gnu.org/bugs/?group=nano.
Wenn nano abstürzt, speichert es alle geänderten Puffer sicherheitshalber in Dateien mit der Endung .save.
- Falls es Ihnen gelingt, den Absturz zu reproduzieren und Sie einen Backtrace haben wollen, dann definieren Sie die Umgebungsvariable NANO_NOCATCH.
Konfiguration
Dateien
Wenn --rcfile angegeben ist, liest nano nur die angegebene Datei zum Setzen der Optionen, Syntaxhervorhebung und Tastenbindungen.
- Ohne diese Option wird nano zwei Konfigurationsdateien lesen: zuerst die nanorc des Systems (falls diese existiert) und danach die nanorc des Benutzers (falls diese existiert), entweder ~/.nanorc oder $XDG_CONFIG_HOME/nano/nanorc oder ~/.config/nano/nanorc, je nachdem, welche zuerst gefunden wird.
- Siehe nanorc(5)
für weitere Informationen zu den möglichen Inhalten dieser Dateien.
Siehe /usr/share/nano/ und /usr/share/nano/extra/ für die verfügbaren Definitionen der farblichen Syntaxhervorhebungen.
Anhang
Siehe auch
Dokumentation
/usr/share/doc/nano/
Man-Page
- nanorc(5)
Info-Pages
Links
Projekt
Weblinks
- https://wiki.ubuntuusers.de/Nano
- GitHub: serialhex/nano-highlight
- Sammlung ergänzender Konfigurationsdateien für Syntax-Highlighting