Welchen Editor kann ich als einfache vi / vim-Alternative verwenden?


17

Ich bin ein Windows-Benutzer, der dank WSL zu Ubuntu Bash kommt . Jetzt muss ich einige Dateien bearbeiten und ich hasse Vi wirklich. Muss ich mich nur darum kümmern, oder gibt es eine einfachere Alternative?

Die Funktionen, die ich suche, sind:

  • CLI-basiert
  • einfach zu bedienen (Eingabe und Bearbeitung sollten ähnlich wie im Editor sein)
  • einfache Bearbeitungsmöglichkeiten reichen aus

Ich werde versuchen, Vim zu meistern, aber ich muss jetzt eine schnelle Bearbeitung vornehmen!


Es ist Ansichtssache. Anfänger verwenden nano howtogeek.com/howto/42980/… . vim (vi verbessert) hat eine gewisse Lernkurve, ist aber sehr leistungsfähig - Siehe linux.com/learn/vim-101-beginners-guide-vim oder irgendwelche vim-Anleitungen oder das vim-Tutorial, vimtutor (in vim enthalten)
Panther

Bitte beachten Sie, dass diese Frage möglicherweise als ziemlich meinungsbasiert geschlossen wird. Vielleicht möchten Sie es umformulieren, um es den Regeln der Website anzupassen (z. B. was kann ich als Alternative zu vim verwenden?)
Andrea Lazzarotto

3
Abstimmung zum Abschluss als meinungsbasierte Frage. Tipp: Beginnen Sie mit Nano und wechseln Sie später mit kleinen Schritten zu Vim. Es wird sich langfristig auszahlen, da vim grundsätzlich auf jedem Linux-System läuft
Sergiy Kolodyazhnyy

1
Nach meinem Kommentar ist der aktuelle Titel noch umstritten und könnte zum Abschluss führen. Die Leute könnten vim selbst als "gut" betrachten, und das ist subjektiv. Darf ich vorschlagen, stattdessen das Wort "einfacher" zu verwenden? Das Festlegen einiger gewünschter Funktionen könnte dabei helfen, die Frage einzugrenzen.
Andrea Lazzarotto

2
@Jos wir sprechen über WSL, wo das Ausführen von GUI-Programmen durchgeführt werden kann, aber nicht trivial ist. Auch für GUI-Editoren würde die Frage nicht existieren, da sie alle einfacher sind als vim.
Andrea Lazzarotto

Antworten:


24

Wenn Sie nach einem alternativen Editor suchen, sind Sie nicht allein. Grundsätzlich ist das Leben zu kurz , um es zu lernen, viund ich sage, dies ist ein Softwareentwickler für den Lebensunterhalt. Sie sollten jedoch lernen, wie man es beendet, da dies für einen von 20.000 Programmierern ein Problem darstellt . Es lohnt sich möglicherweise, auch einige grundlegende Anhänge- / Einfügeoperationen durchzuführen, da Sie auf einigen hartnäckigen Servern keinen anderen Editor finden.

Nun ist die Antwort auf Ihre Frage wahrscheinlich nano.

Wenn Sie ein automatisiertes Erstellungsskript gitausführen, andere Befehle verwenden oder ausführen, werden diese möglicherweise geöffnet, vimohne dass Sie dies wünschen. Sie können dies verhindern, indem Sie Folgendes ausführen, bevor Sie fortfahren:

export EDITOR=nano

1
Vielen Dank! Extrapunkt für den EDITORTipp
sebagomez

3
"Grundsätzlich ist das Leben zu kurz, um vi zu lernen". Keine Notwendigkeit, das ganze Leben zu verbringen, obwohl man kann, wenn sie vim lieben. Ich habe 2 Stunden damit verbracht, mir ein gutes Tutorial auf YouTube anzuschauen, und habe einfach weiter die Grundlagen geübt, die ich aus dem Video gelernt habe. Jetzt sind 70% aller meiner Antworten auf Ask Ubuntu in vim geschrieben.
Sergiy Kolodyazhnyy

7
Über "das Leben ist zu kurz" dachte ich, dass dieser Aufsatz einen guten Punkt hatte. Eines der größten (künstlichen) Hindernisse beim Erlernen von Vim ist die falsche Voraussetzung, dass Sie sofort ein "Hardcore" -Nutzer werden müssen. Das tust du nicht. Benutze die Pfeiltasten. Verwenden Sie die GUI-Verknüpfungen zum Kopieren / Einfügen. Im Einfügemodus abhängen. Ignorieren Sie Tabs und Register sowie Schnickschnack (vorerst). In Vim ist der Einstieg in die Nano-Funktionalität relativ schnell und Sie können erweiterte Funktionen später nach Bedarf langsam hinzufügen.
RM

@RM GUI-Verknüpfungen?
Andrea Lazzarotto

1
@Sergiy vim ist sinnvoll, wenn Sie erweiterte Funktionen verwenden möchten. Wenn ich vim so verwenden würde, wie ich nano verwende, würde ich nano einfach weiter verwenden (tatsächlich ... ich verwende vim, wenn ich mich auf einem Server befinde, auf dem ich keine Software hinzufügen kann, wie auf einem Client-Computer).
Andrea Lazzarotto

11

Es ist Ansichtssache.

Anfänger verwenden Nano .

vim ("vi enhanced") hat eine gewisse Lernkurve, ist aber sehr leistungsfähig. In dieser Anleitung für Anfänger finden Sie Informationen zu vim oder anderen vim-Anleitungen oder das vim-Tutorial vimtutor(im Lieferumfang von vim enthalten).

Im Moment empfehle ich Nano

nano -B /path/to/file/to/edit

-B erstellt eine Sicherungskopie

Befehle werden mit der Steuertaste ausgegeben und am unteren Rand des Editorfensters aufgelistet.

Eine Anleitung zum Hervorheben von Syntaxen finden Sie unter: Wie aktiviere ich das Hervorheben von Syntaxen in Nano?

Nano

emacsist eine Alternative zu sowohl vimund nanound hat auch viele Vorteile. emacsist komplexer als nano. Sie können Emacs Tour sehen .

Der Vollständigkeit halber können vim + -Themen wie Zenburn sehr hilfreich sein

Zenburn


2
Nicht nur Anfänger, sondern grundsätzlich alle Menschen, die nicht in die Vim-vs-Emacs-Kriege einsteigen wollen. : P
Andrea Lazzarotto

1
+1 Ich würde auch mit Nano gehen, auch für lange Zeit Benutzer vi sieht aus wie ein alter Mist
xavier_fakerat

Um fair zu sein, können Sie vim thematisieren und eine .vimrc geht einen weiten Weg. Vim und Emacs haben erweiterte Funktionen, die in Nano nicht verfügbar sind. Es ist jedoch eine Verschwendung, wenn Sie die erweiterten Funktionen nicht verwenden. Für schnelle Grundbearbeitungen benutze ich Nano, obwohl ich insgesamt ein Fanboi bin. kippura.org/zenburnpage
Panther

1
Lernen vi/vim. :) Es ist auf jedem nix Gerät. :) Basics sind nicht so schwer.
Flüchtling

3
"Emacs ist komplexer als Nano." Dies könnte die Untertreibung des Jahres sein.
Daniel Jour

3

als Windows Poweruser, nach dem Versuch , vimund nanoich fand heraus , dass ich weise etwas dazwischen, Komplexität benötigen. Also versuchte ich es mit Ohrfeigen und es war das, wonach ich suchte.

Schlagbild

slap ist ein Sublime-ähnlicher terminalbasierter Texteditor, mit dem die Bearbeitung über das Terminal vereinfacht werden soll.


Installation:

curl -sL https://raw.githubusercontent.com/slap-editor/slap/master/install.sh | sh

1
Sie haben vergessen, das Hauptverkaufsargument zu erwähnen: erstklassige Mausunterstützung (auch über eine SSH-Verbindung)
blueray

2

Warst du jemals frustriert, dass dein Texteditor nicht getan hat, was du wolltest? Wütend, dass Sie sich nicht erinnern können ...

  • ... wie finde ich Hilfe?
  • ... was bedeutet wq?
  • ... eines der kleinen Sprüche, die Sie als Student gelesen haben?

Eine kleine, mutige Welt erwartet Sie!

Lassen Sie mich, während wir uns für unsere bevorzugten Texteditoren mit geringem Gewicht aussprechen, eXcellent, winzig und schnell xo(exofrills) empfehlen .

Es handelt sich um eine einzelne Python 3-Datei, die die Syntaxhervorhebung durch Pygments gut unterstützt (auch wenn dies bei Nicht-Python-Dateien nicht der Fall ist):

Bildbeschreibung hier eingeben

Es hat auch extrem einfache und nützliche Tastenkombinationen, die leicht und nach Herzenslust geändert werden können:

Bildbeschreibung hier eingeben

Andere Eigenschaften:

  • Weniger als 850 Codezeilen in einer einzigen Datei!
  • Satzstellung markieren!
  • Matching und Ersetzen von regulären Ausdrücken!
  • Caching des Suchverlaufs!
  • WTFPL lizensiert!
  • Vollständig anpassbar!
  • Beginnen Sie an Orten außerhalb des Ursprungs!
  • Springe zwischen den Wörtern einer Zeile!
  • Springe zu einer beliebigen Stelle in der Datei!
  • Ganze Datei einfügen!
  • Anfängerfreundlich - vielleicht sind Sie neu in Worten!
  • Text kopieren und einfügen!
  • Zeilen- und Spaltenstatus!
  • Nur eine Zeile Nicht-Text-Bearbeitungsraum!
  • Sowohl Speichern als auch Laden!

Die Python3-Quelle befindet sich auf github , und Sie können sie einfacher installieren, indem Sie Folgendes verwenden:

sudo apt install python3-pip
sudo pip3 install exofrills 

exofrills: Ihr Text wurde bearbeitet ... aber Sie haben immer noch Hunger.

Haftungsausschluss: Ich bin in keiner Weise mit dem exofrills-Projekt verbunden.


1
Das sieht sehr ordentlich aus, +1 von mir. Obwohl diese Menge an Ausrufezeichen störend ist. : P
Andrea Lazzarotto

0

Ich kann zwar nicht leugnen, dass ich am Anfang zu sehr mit vi zu kämpfen hatte, aber ich denke, man kann argumentieren, dass vi eigentlich sehr einfach zu erlernen ist. (Als ich anfing, Unix zu verwenden, hatte ich die Wahl zwischen vi und emacs, also war ich zu der Zeit ein sehr einfacher Zeileneditor, den ich bereits durch das Lesen früher Unix-Lehrbücher gelernt hatte.) Ich verwende vi täglich, aber wahrscheinlich Verwenden Sie nur eine sehr kleine Teilmenge seiner Funktionen.

Hier ist zunächst ein Argument für die Verwendung von vi: vi ist auf allen Systemen vorhanden, verwendet nur sehr wenige Ressourcen und kann über instabile und langsame Verbindungen verwendet werden, bei denen andere Editoren möglicherweise fehlschlagen oder langsam und unbrauchbar sind. Oder in Situationen, in denen das System kaputt ist und die Pfeiltasten nicht richtig interpretiert werden (z. B. falsche Terminfo-Einstellungen). So kann vi verwendet werden, um die zum Problem führenden Konfigurationsdateien zu reparieren, ohne vom Problem betroffen zu sein.

Und so lernen Sie eine nützliche Teilmenge von vi kennen: Erstens: Stellen Sie sich vi nicht mehr als interaktiven Terminal-GUI-Editor vor und betrachten Sie ihn als Programmiersprache für die Bearbeitung von Textdateien. Am Anfang stand "vi" für den virtuellen Modus, und vi hat ein nicht visuelles Gegenstück ex, was ein guter Anfang ist. Geben Sie an der Shell-Eingabeaufforderung ex ein (ich verwende ¬, um return darzustellen):

$ ex¬
Entering Ex mode.  Type "visual" to go to Normal mode.
:

Drücken Sie jetzt die Eingabetaste.

:¬
E749: empty buffer
:

Also, lassen Sie uns etwas hineinstecken. Geben Sie "a¬" ein und geben Sie eine Textzeile und dann einen Punkt in einer Zeile ein:

:a¬
Hello World¬
.¬
:

Das war der Befehl zum Anhängen. Einfach, kurz und mnemonisch. Aber es wäre schön zu sehen, was sich im Puffer befindet:

:%p¬
Hello World
:

Das war natürlich der Druckbefehl, p. % Ist eine Abkürzung für den Zeilenbereich. Vor jedem Befehl kann eine Zeilennummer oder ein Bereich stehen, für den der Befehl gelten soll. % bedeutet "alle Zeilen". $ steht für die letzte Zeile und ein Punkt für die aktuelle Zeile. Eine Zahl bedeutet diese bestimmte Zeile. Ein Bereich wird mit n, m geschrieben und eine Zahl kann addiert oder subtrahiert werden. + 1, $ - 1 bedeuten von der nächsten bis zur vorletzten Zeile. Ein Befehl, der nur aus einer Zeilennummer besteht, geht zu dieser Zeile. Hier ist die verbleibende kleine Teilmenge der Befehle, die ich verwende:

:1i¬
this text is inserted before line 1.¬
.¬
:

:w /tmp/filename¬
"/tmp/filename" [New] 2L, 49C written
:

w schreibt alle (oder den gewählten Bereich von) Zeilen in eine Datei.

:1d¬

löscht Zeile 1.

:.s/Hello/Hello,/¬
Hello, World
:.s/$/!/¬
Hello, World!

s ersetzt einen regulären Ausdruck. Es ist gut, reguläre Ausdrücke zu kennen!

:q¬
E37: No write since last change (add ! to override)

q wird beendet. wq schreibt und beendet. q! verlässt das Programm, ohne etwas zu schreiben, und in ähnlicher Weise: w! erzwingt nach Möglichkeit einen Schreibvorgang in eine Datei.

Jetzt eine coole:

:p
Hello, World!
:.!tr a-z A-Z
:p
HELLO, WORLD!

! as a command filtert die Zeilen in einen Shell-Befehl.

Und schlussendlich:

:vi¬

Ruft den VISUAL-Modus auf. Lass dich nicht täuschen. Es sieht aus wie ein Editor, ist aber immer noch nur eine interaktive Programmierschale. Sie müssen sich nur die ganze Zeit den Puffer und ein paar weitere Befehle ansehen. Im visuellen Modus zeigt a: die Eingabeaufforderung: aus dem Ex-Modus. Die Pfeiltasten (wenn sie funktionieren) bewegen sich, und wenn nicht, dann tun sie es! h links, j runter, k rauf und l rechts. 0 bewegt sich zum ersten Zeichen und ^ (denke hier an Regex!) Zum ersten Nicht-Leerzeichen in der Zeile. $ (wieder Regex!) springt ans Zeilenende. Eingabe: 999 € geht natürlich zur Zeile 999, genau wie im Ex-Modus.

"i" wechselt in den Einfügemodus, in dem jetzt anstelle von Zeilen Zeichen eingefügt werden und statt ".¬" die Escape-Taste gedrückt wird. "I" fügt am Anfang "a" nach dem Zeichen unter dem Cursor und "A" nach dem Ende der aktuellen Zeile ein. Drücken Sie immer die Esc-Taste, wenn Sie den Text eingegeben haben. "x" löscht das Zeichen unter dem Cursor und "D" löscht vom Cursor bis zum Zeilenende. "Y" zieht die aktuelle Zeile zurück (kopiert sie) und "P" fügt sie wieder ein. ": pu" macht dasselbe, aber es kann eine Zeilennummer vorangestellt werden. ": ya" ist das ex-Äquivalent von "Y" und wiederum nützlich, um auf einen Zeilenbereich anzuwenden. Ich denke, es gibt auch einen Markierungsbefehl, aber ich gebe zu, dass ich mich nicht daran erinnere. Ich vermisse es nicht.

Das obige ist, was ich benutze, und ich weiß, dass ich wahrscheinlich kein sehr "effizienter" vi Benutzer bin. Andererseits nutze ich die Vielseitigkeit von ex, um beispielsweise Konfigurationsdateien per Skript zu bearbeiten. Müssen Sie Ihren Hostnamen foo.bar.com in einer Reihe von conf-Dateien in www.foobar.com ändern?

for file in conf/*
do (echo "%s/foo.bar.com/www.foobar.com/" ; echo "wq") |ex $file ; done

Ich versuche zu sagen, dass ich das Problem mit vi darin sehe, dass die Leute es als einen schwierigen Editor ansehen. Sie müssen lediglich Ihre Denkweise ein wenig ändern und es stattdessen als eine sehr einfache, aber auch sehr leistungsfähige interaktive Programmiersprache betrachten. Es ist so leistungsstark, dass Sie es selbst mit einer Teilmenge der verfügbaren Befehle optimal nutzen können - nicht nur als Editor, sondern auch als allgemeines, skriptfähiges Tool, das gut in den Rest von Unix integriert ist. Ich bezweifle, dass Nano all das tun würde - Emacs ... vielleicht.


3
Sorry aber ... das beantwortet die Frage nicht. OP bat um eine Alternative zu vim und die Antworten sollten das liefern.
Andrea Lazzarotto

1
Ich empfehle die Arbeit, die Sie in diese Antwort gesteckt haben, aber sie beantwortet die Frage nicht wirklich - ein Tutorial zu und Plug für Vim gehört überhaupt nicht hierher, aber auf Ihren Blog.
Katze

Diese Antwort ist genau der Grund, warum so viele Menschen nach einer Alternative zu den Viemacs fragen - je mehr wir sagen, dass sie unangenehm zu benutzen sind, desto mehr bestehen wir darauf, dass wir uns bemühen, sie zu benutzen.
Shukri Adams

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.