emacs-helm / helm

Emacs incremental completion and selection narrowing framework
https://emacs-helm.github.io/helm/
GNU General Public License v3.0
3.35k stars 389 forks source link

Helm Commands should be offered by some suitable completion framework #1044

Closed phillord closed 8 years ago

phillord commented 9 years ago

I'm just trying to learn helm, and I am finding it quite hard. One problem is that the various helm commands (helm-find-file, helm-M-x and so on) are not easily discoverable, unless you use the menu which sort of defeats the point of a rapid completion framework.

What would be nice is to have all the helm commands in a list (preferable with the names from the menu) available from the keyboard, using completing-read, or some other suitable completion framework if you know of one.

thierryvolpiatto commented 9 years ago

Phil Lord notifications@github.com writes:

I'm just trying to learn helm, and I am finding it quite hard. One problem is that the various helm commands (helm-find-file, helm-M-x and so on) are not easily discoverable, unless you use the menu which sort of defeats the point of a rapid completion framework.

What would be nice is to have all the helm commands in a list (preferable with the names from the menu) available from the keyboard, using completing-read, or some other suitable completion framework if you know of one.

Bind M-x to helm-M-x and use M-x helm- While you are there you can hit C-j to look at the docstring of each command without quitting helm.

Note: Just turning on helm-mode will give you the helmized version of M-x with limited features.

Look also at M-x helm-apropos

Thierry Get my Gnupg key: gpg --keyserver pgp.mit.edu --recv-keys 59F29997

phillord commented 9 years ago

All true, but I still feel that this is far harder than and less discoverable than, for example, magit or org-mode export which also have a large set of options/and commands. Having helm work over helm seems an obvious one to me. And, yes, I can limit M-x by typing helm, but this gives a lot of commands that are not actually helm entry points, I think.

I shall give it a go at some point, and see how it works, but thought to get the idea out there in case you were wildly interested in it!

thierryvolpiatto commented 9 years ago

Phil Lord notifications@github.com writes:

All true, but I still feel that this is far harder than and less discoverable than, for example, magit or org-mode export which also have a large set of options/and commands. Having helm work over helm seems an obvious one to me. And, yes, I can limit M-x by typing helm, but this gives a lot of commands that are not actually helm entry points, I think.

I shall give it a go at some point, and see how it works, but thought to get the idea out there in case you were wildly interested in it!

Also a package exists that maybe provide what you are asking for:

https://github.com/vapniks/helm-helm-commands

(Not tested though)

But I still think that using helm-M-x or helm-apropos is enough.

Thierry Get my Gnupg key: gpg --keyserver pgp.mit.edu --recv-keys 59F29997

phillord commented 9 years ago

Thierry Volpiatto notifications@github.com writes:

Phil Lord notifications@github.com writes:

All true, but I still feel that this is far harder than and less discoverable than, for example, magit or org-mode export which also have a large set of options/and commands. Having helm work over helm seems an obvious one to me. And, yes, I can limit M-x by typing helm, but this gives a lot of commands that are not actually helm entry points, I think.

I shall give it a go at some point, and see how it works, but thought to get the idea out there in case you were wildly interested in it!

Also a package exists that maybe provide what you are asking for:

https://github.com/vapniks/helm-helm-commands

(Not tested though)

Ah ha!

This is nearly right, although if does the same as "helm-M-x helm", and offers too many commands. Still, it shows me how to code it.

But I still think that using helm-M-x or helm-apropos is enough.

Maybe. But it's always hard to put yourself in the position of a new user. I've found helm extremely confusing and it's only through a lot of persistance that I've managed to use it in a basic manner.

Having a single entry point would be a big help. At the moment, this seems only available via the menu system.

Phil

thierryvolpiatto commented 9 years ago

I have added some stuff to achieve what you want, in addition of the helm commands, you will have to list all the helm-info-* and some helm-*-mode Usable from M-x. I am still not providing interactive command, but now the tools are here.

phillord commented 9 years ago

Thierry Volpiatto notifications@github.com writes:

I have added some stuff to achieve what you want, in addition of the helm commands, you will have to list all the helm-info-* and some helm-*-mode Usable from M-x. I am still not providing interactive command, but now the tools are here.


Reply to this email directly or view it on GitHub: https://github.com/emacs-helm/helm/issues/1044#issuecomment-108601313

Thank you! I shall investigate and try this out as soon as possible.

Phil

thierryvolpiatto commented 9 years ago

Also forget to mention helm-descbinds.el which allow you to see all the commands that start by C-x c. screenshot - 09062015 - 23 09 49

phillord commented 9 years ago

This is also very useful! Thanks for the links.

phillord commented 9 years ago

I've got something together with helm-helm-commands.el -- essentially, I just plugin in all the "entry" points -- that is everything in the menu. I might expand this a bit because helm can cope with quite a few commands, without overloading the user.

It's just a static list, since I couldn't work out a quite way of extracting the entities directly from the menu bar. I'll work on that again at some point.

Thanks!

Phil

Thierry Volpiatto notifications@github.com writes:

Also forget to mention helm-descbinds.el which allow you to see all the commands that start by C-x c. screenshot - 09062015 - 23 09
49


Reply to this email directly or view it on GitHub: https://github.com/emacs-helm/helm/issues/1044#issuecomment-110505750

Phillip Lord, Phone: +44 (0) 191 208 7827 Lecturer in Bioinformatics, Email: phillip.lord@newcastle.ac.uk School of Computing Science, http://homepages.cs.ncl.ac.uk/phillip.lord Room 914 Claremont Tower, skype: russet_apples Newcastle University, twitter: phillord NE1 7RU

thierryvolpiatto commented 9 years ago

Phil Lord notifications@github.com writes:

I've got something together with helm-helm-commands.el -- essentially, I just plugin in all the "entry" points -- that is everything in the menu. I might expand this a bit because helm can cope with quite a few commands, without overloading the user.

It's just a static list,

To generate this list you can use:

(helm-cmd--get-preconfigured-commands "/path/to/your/helm/directory")

It returns here:

("helm-etags-select" "helm-xrandr-set" "helm-semantic-or-imenu" "helm-execute-kmacro" "helm-multi-occur" "helm-occur" "helm-regexp" "helm-org-capture-templates" "helm-org-in-buffer-headings" "helm-org-agenda-files-headings" "helm-stumpwm-commands()" "helm-insert-latex-math" "helm-browse-menubar" "helm-imenu-in-all-buffers" "helm-gid" "helm-documentation" "helm-do-pdfgrep" "helm-do-zgrep" "helm-do-grep" "helm-ucs" "helm-multi-files" "helm-browse-project" "helm-calcul-expression" "helm-eval-expression-with-eldoc" "helm-eval-expression" "helm-eshell-history" "helm-esh-pcomplete" "helm-elscreen" "helm-complex-command-history" "helm-locate-library" "helm-apropos" "helm-lisp-completion-or-file-name-at-point" "helm-complete-file-name-at-point" "helm-lisp-completion-at-point" "helm-list-elisp-packages-no-fetch" "helm-list-elisp-packages" "helm-dabbrev" "helm-cmd--get-preconfigured-commands" "helm-filtered-bookmarks")

It is ok to generate a static list, but not ready to use because it use find-file-noselect which is opening all the helm files buffers (didn't have the time to modify it with insert-file-contents or similar).

In addition you will have to add the helm-info-* commands which are generated by helm, and the usable modes (not the internal ones) helm is providing (only 2 or 3, don't remember).

since I couldn't work out a quite way of extracting the entities directly from the menu bar. I'll work on that again at some point.

Thanks!

Phil

Thierry Volpiatto notifications@github.com writes:

Also forget to mention helm-descbinds.el which allow you to see all the commands that start by C-x c. screenshot - 09062015 - 23 09
49


Reply to this email directly or view it on GitHub: https://github.com/emacs-helm/helm/issues/1044#issuecomment-110505750

Thierry Get my Gnupg key: gpg --keyserver pgp.mit.edu --recv-keys 59F29997

phillord commented 9 years ago

Thank you!

Thierry Volpiatto notifications@github.com writes:

Phil Lord notifications@github.com writes:

I've got something together with helm-helm-commands.el -- essentially, I just plugin in all the "entry" points -- that is everything in the menu. I might expand this a bit because helm can cope with quite a few commands, without overloading the user.

It's just a static list,

To generate this list you can use:

(helm-cmd--get-preconfigured-commands "/path/to/your/helm/directory")

It returns here:

("helm-etags-select" "helm-xrandr-set" "helm-semantic-or-imenu" "helm-execute-kmacro" "helm-multi-occur" "helm-occur" "helm-regexp" "helm-org-capture-templates" "helm-org-in-buffer-headings" "helm-org-agenda-files-headings" "helm-stumpwm-commands()" "helm-insert-latex-math" "helm-browse-menubar" "helm-imenu-in-all-buffers" "helm-gid" "helm-documentation" "helm-do-pdfgrep" "helm-do-zgrep" "helm-do-grep" "helm-ucs" "helm-multi-files" "helm-browse-project" "helm-calcul-expression" "helm-eval-expression-with-eldoc" "helm-eval-expression" "helm-eshell-history" "helm-esh-pcomplete" "helm-elscreen" "helm-complex-command-history" "helm-locate-library" "helm-apropos" "helm-lisp-completion-or-file-name-at-point" "helm-complete-file-name-at-point" "helm-lisp-completion-at-point" "helm-list-elisp-packages-no-fetch" "helm-list-elisp-packages" "helm-dabbrev" "helm-cmd--get-preconfigured-commands" "helm-filtered-bookmarks")

It is ok to generate a static list, but not ready to use because it use find-file-noselect which is opening all the helm files buffers (didn't have the time to modify it with insert-file-contents or similar).

In addition you will have to add the helm-info-* commands which are generated by helm, and the usable modes (not the internal ones) helm is providing (only 2 or 3, don't remember).

since I couldn't work out a quite way of extracting the entities directly from the menu bar. I'll work on that again at some point.

Thanks!

Phil

Thierry Volpiatto notifications@github.com writes:

Also forget to mention helm-descbinds.el which allow you to see all the commands that start by C-x c. screenshot - 09062015 - 23 09
49


Reply to this email directly or view it on GitHub: https://github.com/emacs-helm/helm/issues/1044#issuecomment-110505750

Phillip Lord, Phone: +44 (0) 191 208 7827 Lecturer in Bioinformatics, Email: phillip.lord@newcastle.ac.uk School of Computing Science, http://homepages.cs.ncl.ac.uk/phillip.lord Room 914 Claremont Tower, skype: russet_apples Newcastle University, twitter: phillord NE1 7RU

thierryvolpiatto commented 8 years ago

Interactive commands only used in helm context are no more shown in helm-M-x. Maybe I forgot some though. So I am closing this now.

phillord commented 8 years ago

Thanks for all the feedback!