Besseres Terminalprogramm für Snow Leopard (OS X)

2

Kennt jemand ein besseres Terminalprogramm für Schneeleoparden, das die Textbearbeitung ermöglicht? (dh zu einem bestimmten Charakter springen, ohne die Pfeile einzeln benutzen zu müssen) etc ..? Vielen Dank!

UPDATE: Entschuldigung, ich wollte einen Befehl aktualisieren, der bereits geschrieben wurde. Sagen wir, ich wollte so etwas tun script/generate migration add_field_to_something. Ich habe das geschrieben und Rails hat eine Migration generiert. Jetzt entscheide ich mich, diese Migration loszuwerden, weil ich einen Fehler gemacht habe. Dazu muss ich schreiben script/destroy migration add_field_to_something. Im Moment habe ich drei Möglichkeiten: 1) Schreiben Sie den gesamten Befehl von Anfang bis Ende. 2) Drücken Sie die Aufwärtstaste, um den letzten Befehl zu reproduzieren, und dann den Pfeil nach links, bis ich zum Wort komme. generateLöschen und schreiben Sie dann destroyoder 3) Kopieren Sie den letzten Befehl in TextEdit, wählen Sie ihn mit der Maus aus (oder überspringen Sie Wörter mit Befehl + Pfeil nach links, um eine schnellere Auswahl zu erzielen - im Terminal nicht möglich) und ersetzen Sie den Befehl durch das WortdestroyKopieren Sie dann zurück zum Terminal. Meine Frage ist - gibt es ein Terminalprogramm, das das Bearbeiten mit der Maus / das Überspringen von Wörtern wie in TextEdit (dh mit Befehl + Pfeil nach links) ermöglicht, um Zeit zu sparen?

Vielen Dank!

Yuval
quelle

Antworten:

3

Suchen Sie einen Editor oder ein Terminalprogramm? Ein Terminal-Emulator ist von einem Editor getrennt und unterstützt den Mauszeiger nicht.

BEARBEITEN

Danke fürs klarstellen. Sie könnten an der zsh-Shell interessiert sein, die eine Reihe von Tastaturkürzeln zum Bewegen des Cursors enthält:

  • Alt-A - An den Zeilenanfang gehen
  • Alt-E - Gehen Sie zum Ende der Zeile
  • Alt-F - Ein Wort vorwärts gehen
  • Alt-B - Ein Wort rückwärts gehen

Außerdem verfügt bash, die Standardshell, über Tastaturkürzel, mit denen Sie an den Anfang und das Ende der Zeile springen können:

  • Ctrl-A - An den Zeilenanfang gehen
  • Ctrl-E - Gehen Sie zum Ende der Zeile
pkaeding
quelle
1
Beachten Sie, dass die Standard-Shell, bash, auch Emacs und vi-Cursorbewegungen unterstützt, z. B. Strg-A für Zeilenanfang und Strg-E für Zeilenende.
Paul R
@Paul R Danke, ich habe die Antwort so bearbeitet, dass sie die von Ihnen erwähnten Bash-Verknüpfungen enthält.
pkaeding
@ Paul: Es ist schade, Bash nicht für MF und Mb erlaubt ...
Brian Postow
3
Es tut. Auf dem Mac ist es Option-F und Option-B - aber stellen Sie sicher, dass in den Terminal-Einstellungen "Option als Metaschlüssel verwenden" aktiviert ist.
Doug Harris
@doug! Oh, ausgezeichnet, danke! Das wollte ich schon lange!
Brian Postow
4

Es gibt eine Menge, die Sie mit der Befehlszeilenbearbeitung in bashder Standard-Shell tun können . Beachten Sie, dass dies unabhängig davon ist, welches Terminal-Programm verwendet wird. Es gibt viele Informationen dazu im Abschnitt " Befehlszeilenbearbeitung" der Bash-Dokumentation oder sehen Sie sich diesen Screencast an .

Aktualisieren Laut meinem Kommentar zu einer anderen Antwort können Sie Mf (Option + F) und Mb (Option + B) verwenden, um wortweise vorwärts und rückwärts zu gehen. Der von mir verlinkte Screencast zeigt, wie das geht. Außerdem wird das Durchsuchen des Befehlsverlaufs mit Cr (etwas, das ich noch nie ausprobiert hatte) erläutert.

Doug Harris
quelle
1
"Beachten Sie, dass dies unabhängig davon ist, welches Terminalprogramm verwendet wird." technisch falsch: wenn das terminal dumm genug ist, hindert es sie daran, viele dinge zu tun. Dies ist nicht so selten, wie man denkt.
o0 '.
@ Lo'oris: wahr, aber Macs Terminal.app ist nicht so dumm ...
Brian Postow
Ich stimme sowohl Lo'oris als auch Brian Postow zu. Halten Sie sich an Terminal.app und Sie sollten keine Probleme haben (und achten Sie darauf, diesen Screencast zu sehen - ich kenne die Person, die es gemacht hat, aber es ist schön gemacht)
Doug Harris
3

In der Shell gibt es eine Vielzahl von Tipps und Tricks, die mit Tastenkombinationen und Befehlen der Shell genauso schnell behoben werden können.

Wenn Sie beispielsweise die zsh-Shell und Ihr Beispielszenario verwenden, haben Sie die vierte Option:

zsh% script/generate migration add_field_to_something

Hoppla! Das wollte ich nicht. Lass mich das tippen ...

zsh% script/destroy !*

Fest! Das !*bedeutet: Verwenden Sie alle Parameter aus dem vorherigen Befehl .

Alternativ hätten Sie auch Folgendes eingeben können:

zsh% r generate=destroy

Der rBefehl bedeutet Ersetzen im vorherigen Befehl. Der vorherige Befehl würde also ausgeführt, wobei " generate" durch " destroy" ersetzt wird .

Ich denke, was ich sage, ist, dass Programmierer faul sind. Sehr faul. Sie haben sich Hunderte von Verknüpfungen und Tricks für die automatische Vervollständigung ausgedacht, um diese Jobs schnell und einfach zu gestalten. Wenn Sie erst einmal gelernt haben, wie eine Shell verwendet und optimiert wird, werden Sie möglicherweise feststellen, dass das "Korrigieren" von Befehlen mithilfe der Mausauswahl möglicherweise nicht die effizienteste Methode ist.

PS.

Viele Rails-Entwickler haben auch eine Alias-Datei erstellt ~/.zsh, die von ihren aufgerufen wird .zshrc.

alias sg='script/generate'

Das spart also noch mehr Tastenanschläge. script/destroyMöglicherweise möchten Sie keinen Alias ​​erstellen, um versehentliche Aufrufe zu vermeiden. ;-)

Ghoppe
quelle
2

Ich bevorzuge iTerm für Terminaloperationen in OSX. http://iterm.sourceforge.net/

Das Terminal ermöglicht die Interaktion mit der Maus (über Standard-XMouse) und hat viele Schnickschnack, die das Standard-Terminal nicht hat.

Mutant
quelle
Gibt es eine Möglichkeit, mit der Maus zum Bearbeiten in eine Befehlszeile zu klicken? Ich habe es versucht und sehe nicht wie.
Doug Harris
1

Eine andere Möglichkeit ist die Verwendung des Emacs-Shell-Modus. Wenn Sie mit Emacs vertraut sind, können Sie den Mx-Shell-Modus eingeben. Dadurch erhalten Sie eine normale Eingabeaufforderung. Sie können alle normalen Emacs-Bearbeitungsbefehle verwenden.

EINE WARNUNG, da der Aufwärtspfeil (oder Cp) den Cursor tatsächlich eine Zeile nach oben bewegt, müssen Sie Mp und Mn verwenden, um die vorherigen und nächsten Befehle abzurufen ...

Soweit ich weiß, hat vim vielleicht einen ähnlichen Modus, aber ich glaube fest an den Emacs-Kult, also ...

Brian Postow
quelle
Empfohlen, weil es eine gute Lösung für andere Sektenmitglieder (wie mich) oder für diejenigen ist, die die Emacs-Lernkurve erklimmen möchten. Dies ist ein Grund mehr, sich uns anzuschließen. Ich denke nicht, dass dies allein einen Wechsel zu Emacs rechtfertigen würde.
Doug Harris
@Doug Oh, klar nicht. Ich meine, es ist im Grunde ein Beweis dafür, dass Emacs ein Betriebssystem ist, kein Editor, aber ja ... B-)
Brian Postow
1

Verwenden Sie vi als Editor (export EDITOR = vi) und stellen Sie Ihre Shell auf den vi-Modus ein (set -o vi). Danach sind Sie goldrichtig. Wenn Sie sich an die große Zeile erinnern möchten, die Sie hatten, drücken Sie die Esc-Taste und den Schrägstrich, um eine Suche in Ihrem Befehlsverlauf zu starten. Geben Sie die ersten Zeichen ein, die Sie eingegeben haben. Durchfahren Sie sie, indem Sie das vordere Leerzeichen drücken und dann eintreten. Genießen.

John
quelle