2017-03-28 2 views
0

Dans tcsh, comment définir bind-key pour une commande générale comme cd ou ps?Définition de la clé de liaison pour "cd ../"

Je tentais bindkey "^ G" "cd ../../" J'obtiens l'erreur Bad Nom de la commande: cd

J'ai regardé quelques exemples en ligne. Son fonctionnement quand je veux faire quelque chose, l'histoire recherche en avant ou en fin de ligne. Mais je veux le faire pour un autre commandement commun que j'exécute des milliers de fois par jour. Par exemple, j'utilise une commande CD ou ps très souvent. Je voulais définir bindkey pour de telles commandes?

+0

Dupliquer de: http://stackoverflow.com/questions/1912328/how-to-map-delete-and-end-keys-on-tcsh-shell –

+2

Copie possible de [Comment mapper les touches Delete et End sur tcsh shell?] (http://stackoverflow.com/questions/1912328/how-to-map-delete-and-end-keys-on-tcsh-shell) –

+0

Non. Mes questions ne sont pas en double. J'ai déjà visité le lien ci-dessus. Cela ne m'aide pas à résoudre ma question. –

Répondre

0

Vous pouvez utiliser l'indicateur -c lors de la définition de bindkeys pour des commandes externes. Par exemple: bindkey -c "^]^d" "ls /" va lier Ctrl +] + d pour cracher le contenu du répertoire racine.

Dans votre cas:

bindkey -c "^G" 'cd ../../' 

Une mise en garde est que votre invite du shell ne peut pas mettre à jour lors de l'exécution par le bindkey. Vous aurez donc traversé vos deux répertoires parents, mais votre invite de shell peut toujours indiquer que vous êtes dans le répertoire à partir duquel vous avez utilisé la bindkey, même si vous ne l'êtes pas.

+0

Merci. C'est comme vous l'avez dit. Pouvons-nous faire un truc pour mettre à jour l'invite? J'essayais de mettre prompt à cwd avec cd ../../ mais ce n'est pas mise à jour. –