it-swarm.com.de

iTerm2: Zeile löschen?

Ich versuche zu kartieren ⌘+Delete (Backspace) zum Löschen an den Anfang der Zeile (wie es in Browsern und Texteditoren funktioniert) in iTerm2 und ich bin nicht in der Lage, eine Arbeit zu finden Escape-Code dafür. Ich habe versucht 1K (^[1K) basierend auf dem, was ich gelesen habe in Wikipedia . Es wird nur ein "K" gedruckt.

Edit: Ich habe gefunden Ctrl+U. Jetzt erfahren Sie, wie Sie es abbilden können. Vielleicht Hex-Code 21 (U ist der 21. Buchstabe), also 0x15?

60
Steven Lu

Ich habe es verstanden. Ich habe keine Ahnung, warum Hex-Code-Mappings in iTerm2 die zugehörigen Ctrl + -Tastenzuordnungen erzeugen, aber sie tun dies. Keine Ahnung, was 0x00 bedeutet, da es A nicht wie erwartet zugeordnet ist. (Auch wenn ich glaube, dass Unix seine eigenen Konventionen in Bezug auf die Behandlung von Null-Bytes hat - wir haben beispielsweise xargs ein null-Byte-Begrenzungsformat von find akzeptiert - es wäre nett, wenn wir dies mit iTerm2 an einen Hotkey binden könnten) 

Ich konnte feststellen, dass Strg + U fast genau die Aufgabe erfüllt, die ich möchte (es löscht die gesamte Zeile, anstatt nur das zu löschen, was sich vor dem Cursor befindet, aber was auch immer ... Strg + Y als Bonus kann alles zurückbringen). Dann habe ich neugierig gesehen, dass ich Hexcodes 0x1 und 0x5 auf ^A und ^E für meine Cmd + Left und Cmd + Right zugeordnet habe ... also 0x15 ist für ^U!

91
Steven Lu

Mapping hex code 0x15 to  + ←Delete In den meisten Shells wird die gesamte Zeile gelöscht (Inhalt links und rechts vom Cursor). Während manchmal nicht so kompatibel, finde ich das Mapping:

+←Delete So senden Sie Hex-Codes:

0x18 0x7f

führt die gewünschte Funktionalität aus. Wenn Sie ZSH ausführen, müssen Sie wahrscheinlich auch Folgendes zu Ihrer .zshrc-Datei hinzufügen:

$ echo 'bindkey "^X\\x7f" backward-kill-line' >> ~/.zshrc

standardmäßig ordnet ZSH backward-kill-line nichts zu.

Ich habe eine umfassende Anleitung zum Hinzufügen der meisten Standard-Tastenkombinationen von OSX zu Ihrem Terminal geschrieben hier

27
Travis

Ich hoffe, dass Ihnen dies helfen kann http://felipecsl.com/blog/2012/06/05/protip-delete-words-on-iterm2-mac-osx/

map ⌥ <- Löschen, um Hex-Codes zu senden: 0x1B 0x08

Ich hatte einen Test dafür, und es ist richtig. 


18.09.2013 Update

dies löscht ein Wort, keine Zeile.

9
JZAU

In OSX sind ⌥ + ⌫ und ⌘ + the die Abkürzungen zum Löschen eines Wortes bzw. zum Löschen einer Zeile. ⌘ + ← und ⌘ + → dienen zum Anfang und zum Ende von Zeilen. Standardmäßig ist iTerm2 nicht auf diese Weise konfiguriert, und es gibt viele irreführende Anleitungen online. Folgendes habe ich auf meinem Rechner gefunden.

  1. Öffnen Sie die Voreinstellungen (⌘ +,) und wechseln Sie zur Registerkarte Schlüssel.
  2. Fügen Sie einen globalen Tastenkürzel hinzu, und geben Sie einfach Ihre Tastenkombination ein
  3. Wählen Sie in der Dropdown-Liste Aktion die Option Hex-Code senden aus 

Die Hex-Codes für ...

  1. Ein Wort löschen: 0x17.
  2. Eine Zeile löschen: 0x15.
  3. Zum Anfang der Zeile gehen: 0x01.
  4. Zum Ende der Zeile wechseln: 0x05 ..__ Öffnen Sie einfach eine neue Registerkarte, und es sollte funktionieren!

Hier ist ein Screenshot zur Verdeutlichung: alt text

6
Ryan Efendy

Wie angegeben, löscht ^U die Zeile. Sie können den Befehl einfach mit Better Touch Tool neu zuordnen.

Es hat auch tolle Funktionen für die Automatisierung, Maus-, Pad- und Tastaturbelegung. Enthält auch eine Fensterfunktion für intelligente Ränder.

1
Fabricio PH

Für Mac OS haben die meisten Editoren die gemeinsame Tastenkombination + Delete: zum Start der Zeile löschen, in iTerm2 können Sie zu dieser Tastenkonfiguration wechseln

 enter image description here

0
Shawn Wang