Lorsque je cours #'helm-find-files
et que je déplace le point vers un répertoire, une pression sur les <ret>
résultats ouvre ce répertoire en mode dirigé. Il faut appuyer sur C-j
pour entrer dans ce répertoire dans Helm.
J'aimerais <RET>
agir comme C-j
ici, mais pas nécessairement partout ailleurs. J'ai vérifié, et C-j
est lié à #'helm-maybe-exit-minibuffer
, tandis que <RET>
est lié à #'helm-execute-persistent-action
. La liaison <RET>
à #'helm-maybe-exit-minibuffer
fonctionne pour ce cas, mais casse d'autres cas: par exemple, la saisie semi-automatique de la barre dans describe-function
.
Ainsi, lorsque vous utilisez Helm pour rechercher un fichier, comment puis-je faire en appuyant sur <RET>
ce répertoire dans Helm?
ido-mode
, où appuyer sur<RET>
sélectionne le dossier pour trouver des fichiers à l'intérieur. Je pense que c'est le comportement le plus cohérent lorsque vous essayez de trouver un fichier - ce que vous voulez faire lorsque vous avez trouvé le fichier c'est l'ouvrir; ce que vous voulez faire lorsque vous avez trouvé un dossier, c'est y aller pour que vous puissiez trouver le fichier.<RET>
fois la saisie semi - automatique et la sélection. Vous n'avez pas besoin de cliquer<tab>
pour terminer le nom du fichier. Mais nous nous disputons sur les préférences - je veux juste que "entrer" signifie "sélectionner la chose au point". Et pour moi, cela ne signifie pas "ouvert dired". Si j'étais dans un shell, j'attends un comportement différent.Réponses:
Je l' ai aussi utilisé
ido-mode
un grand nombre et formé ma mémoire musculaire :) Je pense que leido
style est plus intuitif que l'helm
approche. Je recherche des trucs (en tapant certains caractères) et je m'engage à la trouver (hitRET
), tout comme la barre de recherche / d'adresse de mon navigateur Web. Si la sélection est un répertoire, j'entre dans ce répertoire et recommence la recherche dans ce répertoire. Cela me semble naturel, j'ai donc écrit un petit conseilhelm-execute-persistent-action
pour forcer ce mécanicien.J'ai également
backspace
légèrement optimisé la clé. Si je tape quelque chose et que je veux faire une correction, je retourne en arrière. Cela supprimera un caractère. Si je suis au début du répertoire et que je retourne en arrière, je monte d'un niveau. Cela accélère considérablement la navigation!Pour supprimer l'inutile
.
et..
au tout début, vous pouvez l'ajouter à lahelm-boring-file-regexp-list
variable de configuration.la source
find-file
. Et le.
et..
n'est pas vraiment inutile lorsque vous voulez soudainement ouvrir Dired dans le répertoire courant ou parent. Et je trouve queC-l
c'est plus rapide que d'appuyerbackspace
.(kbd "<return>")
? Il semble un peu plus propre d'appeler simplement helm-execute-persistent-action directement à l'intérieur de la nouvelle fonction.Symbol's value as variable is void: helm-find-files-map
. Quand je mets(helm-mode 1)
après(require 'helm)
, je n'obtiens pas une telle erreur, mais cela ne fonctionne pas non plus. Une idée de ce que je pourrais manquer? Voici mon init.el complet: pastebin.com/drFZsDxW La version Emacs est 24.4.1 (i686-pc-mingw32)define-key
, si j'essaieC-h k RET
le mini-tampon de recherche, il apparaît toujourshelm-confirm-and-exit-minibuffer
comme lié.Je ne peux pas commenter la réponse de Fu86 en raison de la représentation, mais je la soutiens (désolé si ce n'est pas le protocole normal). J'ai obtenu une fonction void en utilisant sa réponse en raison de "helm-find-files-map". Cela a fonctionné pour moi d'utiliser la carte clé "helm-map" à la place. Aucun conflit jusqu'à présent et c'est le comportement que je recherchais.
... (define-key helm-map (kbd "<return>") 'helm-execute-persistent-action) ...
la source
Je n'ai pas pu obtenir la réponse de @ Fu86 au travail, mais ce qui suit a fonctionné pour moi:
voir aussi: /programming/27652371/how-can-i-change-emacs-helm-find-file-default-action-on-directory-to-be-go-insid
modifier
Ma solution fonctionne dans helm-20141112.946 mais dans helm-20160211.934 cela ne fonctionne pas et la réponse @ Fu86 est la solution
la source