Когда я запускаю #'helm-find-files
и перемещаю точку в каталог, нажатие <ret>
приводит к открытию этого каталога в режиме Dired. Нужно нажать, C-j
чтобы войти в этот каталог в Хелм.
Я хотел бы <RET>
действовать так C-j
же, как здесь, но не обязательно везде. Я проверил и C-j
связан с #'helm-maybe-exit-minibuffer
, тогда <RET>
как связан с #'helm-execute-persistent-action
. Привязка <RET>
к #'helm-maybe-exit-minibuffer
работает в этом случае, но нарушает другие случаи: например, автозаполнение руля describe-function
.
Итак, когда я использую Helm для поиска файла, как я могу сделать нажатие, чтобы <RET>
открыть этот каталог в Helm?
key-bindings
helm
zck
источник
источник
ido-mode
, где нажатие<RET>
выбирает папку для поиска файлов внутри нее. Я думаю, что это наиболее последовательное поведение при попытке найти файл - что вы хотите сделать, когда обнаружили, что файл открыт; то, что вы хотите сделать, когда нашли папку, - это зайти в нее, чтобы найти файл.<RET>
автоматически заполняется и выбирается. Вам не нужно нажимать,<tab>
чтобы завершить заполнение имени файла. Но мы спорим о предпочтениях - я просто хочу, чтобы «войти» означало «выбрать вещь в точке». И для меня это не означает «открытое dired». Если бы я был в оболочке, я ожидаю другого поведения.Ответы:
Я также использовал
ido-mode
в много и обучил свою мышечную память :) Я думаю , чтоido
стиль более интуитивный , чемhelm
подход. Я ищу вещи (набираю несколько символов) и фиксирую поиск (попаданиеRET
), как в строке поиска / адреса моего веб-браузера. Если выбран каталог, я вхожу в этот каталог и снова начинаю поиск в этом каталоге. Это кажется естественным для меня, поэтому я написал небольшой совет,helm-execute-persistent-action
чтобы заставить этого механика.Я также
backspace
немного оптимизировал ключ. Если я что-то наберу и захочу сделать исправление, я нажму клавишу Backspace. Это удалит один символ. Если я нахожусь в начале каталога и снова нажимаю клавишу Backspace, я перемещаюсь на один уровень вверх. Это значительно ускоряет навигацию!Чтобы удалить ненужные
.
и..
в самом начале, вы можете добавить его вhelm-boring-file-regexp-list
переменную конфигурации.источник
find-file
хотя. И,.
и..
не очень бесполезно, когда вы хотите открыть Dired в текущем или родительском каталоге. И я считаю, чтоC-l
это быстрее, чем нажиматьbackspace
.(kbd "<return>")
? Кажется немного чище просто вызвать helm-execute-persistent-action непосредственно внутри новой функции.Symbol's value as variable is void: helm-find-files-map
. Когда я ставлю(helm-mode 1)
после(require 'helm)
, я не получаю такой ошибки, но она тоже не работает. Любая идея, что я мог бы пропустить? Вот мой полный init.el: pastebin.com/drFZsDxW Версия Emacs - 24.4.1 (i686-pc-mingw32)define-key
, если я пытаюсьC-h k RET
на Teh находкой-файл минибуфер он все еще показывает ,helm-confirm-and-exit-minibuffer
как связаны.Я не могу комментировать ответ Fu86 из-за повторения, но я не могу его поддержать (извините, если это не нормальный протокол). Я получил функцию void, используя его ответ из-за "helm-find-files-map". У меня получилось использовать вместо этого карту ключей helm-map. Пока никаких конфликтов, и это именно то поведение, которое я искал.
... (define-key helm-map (kbd "<return>") 'helm-execute-persistent-action) ...
источник
Я не смог получить ответ @ Fu86 на работу, но у меня сработало следующее:
см. также: /programming/27652371/how-can-i-change-emacs-helm-find-file-default-action-on-directory-to-be-go-insid
редактировать
Мое решение работает в helm-20141112.946, но в helm-20160211.934 оно не работает, и ответ @ Fu86 является решением
источник