119 votes

iTerm2 : supprimer la ligne ?

J'essaie d'établir une carte +Delete (retour arrière) pour effacer jusqu'au début de la ligne (comme cela fonctionne dans les navigateurs et les éditeurs de texte) en iTerm2 et je n'arrive pas à trouver un code d'échappement qui fonctionne. J'ai essayé 1K ( ^[1K ) sur la base de ce que j'ai lu dans Wikipédia . Il imprime juste un "K".

Edit : J'ai trouvé Ctrl+U . Maintenant, il faut trouver comment le mapper. Peut-être le code hexadécimal 21 (U étant la 21e lettre), donc 0x15 ?

151voto

Steven Lu Points 8021

J'ai compris. Je ne sais pas pourquoi les mappages de codes hexadécimaux dans iTerm2 produisent les mappages de touches Ctrl+ associés, mais c'est le cas. Je ne sais pas non plus ce que signifie 0x00, car il n'est pas assigné à A comme on pourrait s'y attendre. (bien que je pense qu'Unix a ses propres conventions concernant le traitement des octets nuls -- nous avons par ex. xargs acceptant un format de délimitation par octet nul de find par exemple -- Ce serait bien si nous pouvions lier ceci à une touche de raccourci avec iTerm2)

J'ai pu trouver que Ctrl+U fait presque exactement la tâche que je veux (il supprime la ligne entière plutôt que de supprimer seulement ce qui est devant le curseur, mais peu importe.... Ctrl+Y en bonus peut tout ramener). Puis j'ai curieusement vu que j'avais des codes hexadécimaux 0x1 y 0x5 correspond à ^A y ^E respectivement, pour mon Cmd+Gauche et Cmd+Droit... donc 0x15 est pour ^U !

94voto

Shawn Wang Points 321

Pour Mac OS, la plupart des éditeurs partagent le raccourci commun suivant + Delete : effacer le début de la ligne, dans iTerm2 nous pouvons passer à cette configuration de touches

enter image description here

62voto

Travis Points 5836

Code hexagonal de cartographie 0x15 a + Delete dans la plupart des shells, supprime la ligne entière (contenu à gauche et à droite du curseur). Bien que parfois moins compatible, je trouve cette cartographie :

+ Delete pour envoyer des codes hexadécimaux :

0x18 0x7f

réalise la fonctionnalité souhaitée. Si vous utilisez ZSH, vous devrez probablement ajouter cette option à votre fichier .zshrc :

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

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

En outre, vous pouvez également supprimer tout ce qui se trouve à droite de votre curseur par mappage :

+ fn + Delete o + Delete pour envoyer des codes hexadécimaux :

0x0b

J'ai écrit un guide complet pour ajouter la plupart des raccourcis clavier standard d'OSX à votre terminal. aquí

50voto

Ryan Efendy Points 757

Dans OSX, + et + sont les raccourcis pour supprimer un mot et supprimer une ligne respectivement. + et + permettent d'aller au début et à la fin des lignes. Par défaut, iTerm2 n'est pas configuré de cette façon, et il y a beaucoup de guides trompeurs en ligne. Ce qui suit est ce que j'ai trouvé pour fonctionner sur ma machine.

  1. Ouvrez les préférences (+,) et allez dans l'onglet Clés.
  2. Ajoutez une touche de raccourci globale, et tapez simplement votre raccourci
  3. Dans la liste déroulante Action, sélectionnez Envoyer le code hexadécimal.

Les codes hexagonaux pour...

  1. Suppression d'un mot : 0x17.
  2. Suppression d'une ligne : 0x15.
  3. Déplacement au début de la ligne : 0x01.
  4. Déplacement vers la fin de la ligne : 0x05. Ouvrez un nouvel onglet, et ça devrait marcher !

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

17voto

jacky Points 129

J'espère ce peut vous aider

map <- Supprimer pour envoyer Codes hexagonaux : 0x1B 0x08

J'ai fait un test pour ça, et c'est correct.


Mise à jour du 18.09.2013

cette suppression d'un mot, pas d'une ligne.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X