Ich suche einen leichten Texteditor, der im Terminal läuft. Ich verwende derzeit nano
2.2.6, bin aber etwas unzufrieden damit (insbesondere mit der Tatsache, dass es kein funktionierendes Undo/Redo hat).
Must-Haves:
nano
ist, kann es nicht verwendet werden.vim
ist out, es sei denn, es gibt eine Möglichkeit, es mit Tastenkombinationen anstelle von Modi zu verwenden.)Schön zu haben:
less
).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:
- Schnelle Startzeit. Wenn es viel langsamer
nano
ist, kann es nicht verwendet werden.- Einfache Anpassung von Tabulatoren/Einzügen.
(
vim
ist aus, es sei denn, es gibt eine Möglichkeit, es mit Tastenkombinationen anstelle von Modi zu verwenden.)
Lustigerweise wurde mir klar, dass vim
das die Antwort ist, als ich wirklich darüber nachdachte.
vim
hat alle "must haves" und "nice to haves":
- Fähigkeit, im Terminal zu laufen.
- Schnelle Startzeit. Wenn es viel langsamer als Nano ist, kann es nicht verwendet werden.
- Relativ einfache Anpassung von Tabulatoren/Einzügen.
- Syntaxhervorhebung für die wichtigsten Sprachen.
- Rückgängig/Wiederherstellen-Funktion.
- Kann nicht modal sein (vim ist out, es sei denn, es gibt eine Möglichkeit, es mit Tastenkombinationen anstelle von Modi zu verwenden.)
- 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 vim
hinaus 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 vim
Befehle nano
ähnlichen Tastaturkürzeln zuordnen (z . B. inoremap <C-u> <C-o>P " map vim paste to nano's [Ctrl]+[u] paste keyboard shortcut
).
- Frei.
- Funktioniert unter OSX.
- Unterstützt weiche Zeilenumbrüche (lange Zeilen werden optisch umgebrochen, aber nicht mit Zeilenumbrüchen) .
Schön zu haben:
- Fähigkeit, es anstelle eines Pagers (dh weniger) zu verwenden.
- Fähigkeit zur intelligenten Einrückung.
- Plattformübergreifend.
- Möglichkeit zur Installation über MacPorts.
macvim
- Möglichkeit, ausgefallenere IDE-ähnliche Bearbeitungen für Code durchzuführen.*
Darüber vim
hinaus 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.
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/file
beim Ö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 -nw
zum Starten einer Schnittstelle zum bereits laufenden Emacs im aktuellen Terminal. Entweder emacs --daemon
als 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).
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.
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
ist ein plattformübergreifender und voll ausgestatteter Texteditor, der im Lieferumfang von Midnight Commander enthalten ist .
mcedit
oder durch Drücken von F4in Midnight Commander ausgeführt werdeneditor_tab_spacing
in der Konfigurationsdatei ( ~/.config/mc/ini
)Options
Menüeditor_word_wrap_line_length
, editor_option_typewriter_wrap
undwrap_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 mcview
unterstützt diese Art des Umbruchs, jedoch ohne Bearbeitungsfunktionen.
ne macht viel davon.
Dinge, bei denen ich mir sicher bin:
Nicht sicher:
ne
wü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
hat alle "must haves" außer Softwrapping (soweit ich weiß):
Must-Haves:
- Möglichkeit zur Ausführung im Terminal (und über MacPorts).
- Schnelle Startzeit. Wenn es viel langsamer
nano
ist, kann es nicht verwendet werden.- Einfache Anpassung von Tabulatoren/Einrückungen.
- Syntaxhervorhebung für die wichtigsten Sprachen.
- Rückgängig/Wiederherstellen-Funktion.
- Anpassbare Tastenkombinationen für allgemeine Aufgaben.
nano
-ähnlichen Modus mit bekannten Tastenkombinationen, indem es joe
mit dem alternativen jpico
Befehl beginnt.
- Frei.
- Funktioniert unter OSX.
joe
ist plattformübergreifend.
Unterstützt weiche Zeilenumbrüche (lange Zeilen werden optisch umgebrochen, aber nicht mit Zeilenumbrüchen).
joe
ist 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).
Tymric
emacs -q
? Ist es immer noch langsam?stiemannkj1
emacs
, und keines hat es bis zur Startzeit von nano geschafft.