Nano-ähnlicher Terminal-Texteditor mit Unterstützung für Undo/Redo, Softwrap

Ich suche einen leichten Texteditor, der im Terminal läuft. Ich verwende derzeit nano2.2.6, bin aber etwas unzufrieden damit (insbesondere mit der Tatsache, dass es kein funktionierendes Undo/Redo hat).

Must-Haves:

  1. Fähigkeit, im Terminal zu laufen.
  2. Schnelle Startzeit. Wenn es viel langsamer nanoist, kann es nicht verwendet werden.
  3. Einfache Anpassung von Tabulatoren/Einzügen.
  4. Syntaxhervorhebung für die wichtigsten Sprachen.
  5. Rückgängig/Wiederherstellen-Funktion.
  6. Kann nicht modal sein ( vimist out, es sei denn, es gibt eine Möglichkeit, es mit Tastenkombinationen anstelle von Modi zu verwenden.)
  7. Anpassbare Tastenkombinationen für allgemeine Aufgaben.
  8. Frei.
  9. Funktioniert unter OSX.
  10. Unterstützt weiche Zeilenumbrüche (lange Zeilen werden optisch umgebrochen, aber nicht mit Zeilenumbrüchen).

Schön zu haben:

  1. Fähigkeit, es anstelle eines Pagers zu verwenden (dh less).
  2. Fähigkeit zur intelligenten Einrückung.
  3. Plattformübergreifend.
  4. Möglichkeit zur Installation über MacPorts.
  5. Möglichkeit, ausgefallenere IDE-ähnliche Bearbeitungen für Code durchzuführen:Geben Sie hier die Bildbeschreibung ein

Ich werde den Editor hauptsächlich zum Bearbeiten von Shell-Skripten verwenden, aber ich könnte ihn auch zum Java-Codieren, Schreiben von Markdown, Schreiben von HTML/Javascript usw. verwenden.

Hinweis: Ich habe es versucht emacs, und es erfüllt diese beiden Anforderungen für mich nicht:

  1. Schnelle Startzeit. Wenn es viel langsamer nanoist, kann es nicht verwendet werden.
  2. Einfache Anpassung von Tabulatoren/Einzügen.
Hast du versucht, Emacs mit zu starten emacs -q? Ist es immer noch langsam?
@Timmy, ja das habe ich probiert. Das ist mir noch viel zu langsam. Vielleicht mache ich etwas falsch, aber ich habe eine Menge Dinge versucht, um zu beschleunigen emacs, und keines hat es bis zur Startzeit von nano geschafft.

Antworten (7)

VIM

( vimist aus, es sei denn, es gibt eine Möglichkeit, es mit Tastenkombinationen anstelle von Modi zu verwenden.)

Lustigerweise wurde mir klar, dass vimdas die Antwort ist, als ich wirklich darüber nachdachte.

vimhat alle "must haves" und "nice to haves":

  1. Fähigkeit, im Terminal zu laufen.
  2. Schnelle Startzeit. Wenn es viel langsamer als Nano ist, kann es nicht verwendet werden.
  3. Relativ einfache Anpassung von Tabulatoren/Einzügen.
  4. Syntaxhervorhebung für die wichtigsten Sprachen.
  5. Rückgängig/Wiederherstellen-Funktion.
  6. Kann nicht modal sein (vim ist out, es sei denn, es gibt eine Möglichkeit, es mit Tastenkombinationen anstelle von Modi zu verwenden.)
  7. Anpassbare Tastenkombinationen für allgemeine Aufgaben.

Ich war besorgt über Nr. 6 und Nr. 7, aber es stellt sich heraus, dass Sie im Einfügemodus beginnenvim und die Tastenkombinationen für den Einfügemodus anpassen können. Darüber vimhinaus verfügt es über eine erstaunlich nützliche Ctrl+ oVerknüpfung, mit der Sie einen einzelnen Befehl im Einfügemodus ausführen können. Durch die Kombination dieser beiden können Sie modale vimBefehle nanoähnlichen Tastaturkürzeln zuordnen (z . B. inoremap <C-u> <C-o>P " map vim paste to nano's [Ctrl]+[u] paste keyboard shortcut).

  1. Frei.
  2. Funktioniert unter OSX.
  3. Unterstützt weiche Zeilenumbrüche (lange Zeilen werden optisch umgebrochen, aber nicht mit Zeilenumbrüchen) .

Schön zu haben:

  1. Fähigkeit, es anstelle eines Pagers (dh weniger) zu verwenden.
  2. Fähigkeit zur intelligenten Einrückung.
  3. Plattformübergreifend.
  4. Möglichkeit zur Installation über MacPorts.
  • macvim
  1. Möglichkeit, ausgefallenere IDE-ähnliche Bearbeitungen für Code durchzuführen.*

Darüber vimhinaus hat es eine erstaunliche Dokumentation von vielen Programmierern (verdammt, es hat sogar eine eigene SE-Site ), jede Menge Funktionen und ist sehr anpassbar. Ich empfehle dringend, so zu hacken vim, wenn Sie ähnliche Anforderungen haben. Für Experten mag es wie ein Sakrileg erscheinen vim, aber es passt perfekt zu meinen Anforderungen.

* Ich weiß nicht, ob es die in der Frage gezeigte Funktion hat, aber es hat sicherlich viele IDE-ähnliche Bearbeitungsfunktionen.

Emacs

Fähigkeit, im Terminal zu laufen.

emacsclient -nw

Wenn Sie das möchten, weil Sie Dateien auf einem Remote-Rechner bearbeiten, auf dem Sie über SSH angemeldet sind, gibt es einen anderen Weg: Öffnen Sie die Remote-Dateien in Ihrer lokalen Emacs-Sitzung . Um Dateien zu bearbeiten, auf die über SSH zugegriffen wird, geben Sie hostname.example.com:/path/to/filebeim Öffnen der Datei ein. Weitere Informationen zur erweiterten Verwendung finden Sie im Handbuch.

Schnelle Startzeit. Wenn es viel langsamer als Nano ist, kann es nicht verwendet werden.

Das machen Sie falsch: Jedes Mal, wenn Sie eine Datei bearbeiten, starten Sie eine neue Instanz von Emacs. Emacs wurde so konzipiert, dass Sie Emacs ein für alle Mal starten und wenn Sie eine Datei öffnen möchten, öffnen Sie sie in der laufenden Instanz. Aufruf emacsclient -nwzum Starten einer Schnittstelle zum bereits laufenden Emacs im aktuellen Terminal. Entweder emacs --daemonals Teil Ihres Sitzungsstarts ausführen oder ausführen emacsclient -a '' -nw …, um emacsclient anzuweisen, Emacs zu starten, wenn es noch nicht gestartet ist.

Einfache Anpassung von Tabulatoren/Einzügen.

Emacs hat viele Funktionen, um Einrückungen einzurichten . Die erweiterte Anpassung hängt in der Regel von der Sprache ab. Ich hatte noch nie Probleme, Emacs dazu zu bringen, der Einrückung zu folgen. „Einfach“ ist subjektiv, aber wenn Sie etwas tun, das überhaupt mit jedem Editor da draußen möglich ist, bezweifle ich, dass es in Emacs schwierig sein wird – höchstens, wenn es sich um einen sehr ungewöhnlichen Stil handelt, der nicht unterstützt wird die Box durch Setzen einiger Variablen, sollten Sie in der Lage sein, mit ein paar Zeilen Elisp Hilfe zu bekommen , es richtig zu machen.

Syntaxhervorhebung für die wichtigsten Sprachen.

Emacs gibt ihm den seltsamen Namen font lock .

Rückgängig/Wiederherstellen-Funktion.

Sicher . Standardmäßig gibt es kein „Wiederherstellen“, aber Sie können einen Undo-Vorgang rückgängig machen. Es gibt Pakete, die eine vertrautere Rückgängig/Wiederherstellen-Oberfläche , Undo-Bäume usw. bereitstellen.

Kann nicht modal sein (vim ist out, es sei denn, es gibt eine Möglichkeit, es mit Tastenkombinationen anstelle von Modi zu verwenden.)

Emacs kann Vi emulieren , aber Sie müssen es nicht tun.

Anpassbare Tastenkombinationen für allgemeine Aufgaben.

Natürlich . Und Makros und so weiter.

Frei.

Ein Aushängeschild der GNU- Bewegung. Genug gesagt.

Funktioniert unter OSX.

Emacs für Mac OS X , Aquamacs usw.

Unterstützt weiche Zeilenumbrüche (lange Zeilen werden optisch umgebrochen, aber nicht mit Zeilenumbrüchen).

Visueller Linienmodus

Fähigkeit, es anstelle eines Pagers (dh weniger) zu verwenden.

Es wurde mehr als einmal gemacht . Das habe ich nie versucht. Was Sie stattdessen tun können, ist, Shell-Befehle innerhalb von Emacs auszuführen, wodurch Sie kostenlos paging können. Emacs hat auch eine native Möglichkeit, Manpages zu lesen, im Internet zu surfen usw.

Fähigkeit zur intelligenten Einrückung.

Siehe Einrückung oben. Emacs kann so konfiguriert werden, dass es in verschiedenen Situationen oder auf Anfrage automatisch einrückt; Dies hängt in der Regel vom Dateityp ab, daher werde ich nicht ins Detail gehen.

Plattformübergreifend.

Unix, OSX native (siehe auch OSX oben), Windows , MS-DOS , Android iOS über Cydia und einige mehr.

Möglichkeit zur Installation über MacPorts.

Prüfen

Möglichkeit, ausgefallenere IDE-ähnliche Bearbeitungen für Code durchzuführen:

Sofort einsatzbereit erhalten Sie Einrückung, Syntaxhervorhebung, Identifikatorsuche und Faltung. Es gibt viele zusätzliche Pakete, die zusätzliche Funktionen bieten; CEDET ist ein guter Anfang.

mcedit

mceditist ein plattformübergreifender und voll ausgestatteter Texteditor, der im Lieferumfang von Midnight Commander enthalten ist .

  1. Es kann im Terminal mit dem Befehl mceditoder durch Drücken von F4in Midnight Commander ausgeführt werden
  2. Hat eine schnelle Startzeit
  3. Anpassbare Registerkartengröße. Durch Ändern der Variable editor_tab_spacingin der Konfigurationsdatei ( ~/.config/mc/ini)
  4. Syntaxhervorhebung für viele Sprachen, zu finden im OptionsMenü
  5. Rückgängig/Wiederherstellen-Funktion
  6. Nicht modal, verwendet Tastenkombinationen
  7. Kann Makros aufzeichnen und speichern und einfache Befehle wiederholen. Ich glaube nicht, dass Sie die ursprünglichen Tastenbelegungen anpassen können, aber Sie könnten neue erstellen und sie stattdessen verwenden.
  8. Kostenlos (GNU)
  9. Funktioniert unter OSX
  10. Unterstützt Zeilenumbruch. Anpassbar mit den Variablen editor_word_wrap_line_length, editor_option_typewriter_wrapundwrap_mode

Bearbeiten:

Wie in den Kommentaren besprochen, fügt der Zeilenumbruch Unterbrechungen hinzu, sodass die Anforderung eines weichen Zeilenumbruchs nicht erfüllt wird. Der mitgelieferte Viewer mcviewunterstützt diese Art des Umbruchs, jedoch ohne Bearbeitungsfunktionen.

ne macht viel davon.

Dinge, bei denen ich mir sicher bin:

  1. Läuft im Terminal
  2. Springt fast sofort an
  3. Vollständig anpassbare Tastenkombinationen
  4. Optionales Rückgängigmachen/Wiederherstellen
  5. Frei
  6. Wird auf OS X kompiliert, und ich wäre nicht überrascht, wenn es auf MacPorts verfügbar wäre

Nicht sicher:

  • Einfache Anpassung von Tabulatoren/Einzügen
  • Wie es mit Zeilenumbrüchen umgeht
  • Verfügt über anpassbare Syntaxhervorhebung, ist sich aber nicht sicher, ob dies standardmäßig der Fall ist
Es sieht so aus , als newürde "Softwrapping" nicht unterstützt . Es scheint jedoch eine Möglichkeit zu geben, Tabulatoren und Einrückungen anzupassen ( Ctrl+ f: TabSize , um es auf der verlinkten Seite zu finden ).

JOE

joehat alle "must haves" außer Softwrapping (soweit ich weiß):

Must-Haves:

  1. Möglichkeit zur Ausführung im Terminal (und über MacPorts).
  2. Schnelle Startzeit. Wenn es viel langsamer nanoist, kann es nicht verwendet werden.
  3. Einfache Anpassung von Tabulatoren/Einrückungen.
  4. Syntaxhervorhebung für die wichtigsten Sprachen.
  5. Rückgängig/Wiederherstellen-Funktion.
  1. Es ist nicht modal.
  1. Anpassbare Tastenkombinationen für allgemeine Aufgaben.
  • Es hat tatsächlich einen nano-ähnlichen Modus mit bekannten Tastenkombinationen, indem es joemit dem alternativen jpicoBefehl beginnt.
  1. Frei.
  2. Funktioniert unter OSX.
  • joeist plattformübergreifend.
  1. Unterstützt weiche Zeilenumbrüche (lange Zeilen werden optisch umgebrochen, aber nicht mit Zeilenumbrüchen).

joeist eigentlich sehr nett und ich empfehle es jedem, der eine vollwertigere Version von will nano(solange Sie sich nicht für Softwrapping interessieren).

2018 lautet die Antwort auf diese Frage: Nano! Es erfüllt alle Kriterien. Es ist jetzt (September 2018) in Version 3.0, sie haben die Funktionalität und die Codebasis weiter verbessert und tun dies weiterhin! Neben Undo hat es jetzt auch Key Macro Recording. Für meine Verwendung (und es klingt auch wie die Verwendung von OP) müssen viele Tastenkombinationen neu definiert und die Standardeinstellungen geändert werden, aber tun Sie dies in ~/.nanorc oder global in /etc/nanorc und Bob ist Ihr Onkel für die kommenden Jahre ...!

Ich habe gerade entdeckt, dass Nano eine weiche Verpackung hat. Ich verwende derzeit jed (ehemals ne, aber es kommt mit UTF-8 nicht gut zurecht), und jed ist sehr leistungsfähig, aber wenn Sie "set softwrap" in Ihre ~/.nanorc einfügen, können Sie Softwrap (und Definieren Sie die meisten Tasten neu und stellen Sie viele andere Optionen ein!). Ich werde nie wieder zu Nano zurückkehren, aber bei einer Neuinstallation ist es oft enthalten. Ich installiere noch ne weil es kaum Konfiguration braucht. Leider erfordert jed eine Menge Konfiguration für mich (ebenso wie joe).