web-dev-qa-db-fra.com

iTerm2: supprimer la ligne?

J'essaie de cartographier ⌘+Delete (retour arrière) à supprimer au début de la ligne (comme cela fonctionne dans les navigateurs et les éditeurs de texte) dans iTerm2 et je ne parviens pas à trouver un code d'échappement pour cela. J'ai essayé 1K (^[1K) basé sur ce que j'ai lu dans Wikipedia . Il imprime juste un "K".

Edit: j'ai trouvé Ctrl+U. Maintenant pour savoir comment le cartographier. Peut-être que le code Hex 21 (U étant la 21ème lettre), donc 0x15?

60
Steven Lu

J? ai compris. Je ne sais pas pourquoi les mappages de code hexadécimal dans iTerm2 produisent les mappages de touches Ctrl + associés, mais ils le font. Aucune idée de ce que 0x00 signifie non plus, car il n'est pas affecté à A comme on pourrait s'y attendre. (Bien que je pense que Unix a ses propres conventions concernant le traitement des octets nuls - nous avons par exemple xargs acceptant un format de délimitation des octets nuls de find par exemple - Il serait judicieux de le lier à un raccourci clavier avec iTerm2) 

J'ai pu constater que Ctrl + U accomplissait presque exactement la tâche que je souhaitais (il supprime la ligne entière au lieu de ne supprimer que ce qui précède le curseur, mais peu importe ... Ctrl + Y en bonus peut tout ramener). Puis, curieusement, j'ai vu que les codes hexadécimaux 0x1 et 0x5 étaient mappés sur ^A et ^E, respectivement, pour mes commandes Cmd + Left et Cmd + Right ... donc 0x15 correspond à ^U!

91
Steven Lu

Mappage du code hexadécimal 0x15 à  + ←Delete dans la plupart des shells, supprime la ligne entière (contenu à gauche et à droite du curseur). Bien que parfois pas aussi compatible, je trouve cette cartographie:

+←Delete envoyer des codes Hex:

0x18 0x7f

effectue la fonctionnalité désirée. Si vous utilisez ZSH, vous devrez probablement également ajouter ceci à votre fichier .zshrc:

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

comme par défaut, ZSH ne mappe pas backward-kill-line à quoi que ce soit.

J'ai écrit un guide complet sur l'ajout de la plupart des combinaisons de touches standard OSX à votre terminal ici

27
Travis

J'espère que cela vous aidera http://felipecsl.com/blog/2012/06/05/protip-delete-words-on-iterm2-mac-osx/

map ⌥ <- Supprimer pour envoyer des codes Hex: 0x1B 0x08

J'ai eu un test pour cela, et c'est correct. 


18.09.2013 mise à jour

cela supprime un mot, pas une ligne.

9
JZAU

Dans OSX, ⌥ + ⌫ et ⌘ + ⌫ sont les raccourcis permettant de supprimer un mot et de supprimer une ligne, respectivement. ⌘ + ← et ⌘ + → sont pour aller au début et à la fin des lignes. Par défaut, iTerm2 n'est pas configuré de cette façon et il existe de nombreux guides trompeurs en ligne. Voici ce que j'ai trouvé fonctionner sur ma machine.

  1. Ouvrez les préférences (⌘ +,) et accédez à l'onglet Clés.
  2. Ajoutez un raccourci clavier global et tapez simplement votre raccourci
  3. Dans le menu déroulant Action, sélectionnez Send Hex Code. 

Les codes hexadécimaux pour ...

  1. Suppression d'un mot: 0x17.
  2. Supprimer une ligne: 0x15.
  3. Déplacement au début de la ligne: 0x01.
  4. Pour aller au bout de la ligne: 0x05 ..__, ouvrez simplement un nouvel onglet, et ça devrait marcher!

Voici une capture d'écran, pour plus de clarté: alt text

6
Ryan Efendy

Comme indiqué, ^U supprime la ligne. Vous pouvez facilement remapper la commande en utilisant Better Touch Tool .

Il a également des fonctionnalités intéressantes pour l'automatisation, la souris, le pavé numérique et le mappage du clavier. Inclut également une fonctionnalité de fenêtre pour les bordures intelligentes.

1
Fabricio PH

Pour Mac OS, la plupart des éditeurs partagent le raccourci clavier commun + Delete: delete au début de la ligne. Dans iTerm2, nous pouvons basculer vers cette configuration de clé.

 enter image description here

0
Shawn Wang