Hot answers tagged

29

UPDATED (Helm changes, personal config changes, and Tu Do comments). I switched from IDO to Helm few years ago and I never looked back. I find the presentation cleaner than let's say ido-vertical-mode for example. Helm doesn't have flex matching though. You don't need smex, etc. Helm does it all. The Tu do article is good as it provides some nice animated ...


24

You should customize helm-buffer-max-length to an appropriate number. Default I believe is 20. If set to nil, helm will use the longest buffer name. You can access the customization setup by M-x customize-variable helm-buffer-max-length.


19

Emacs's builtin completion functionality offers similar fuzzy matching (tho by default it's used for "do-so-am" rather than for "DoSoAm") and IIUC recent versions of company-mode do use this at least in some cases. E.g. if you open an Elisp buffer using Emacs-24.4 and the latest company-mode, if you type (wi-sy company will pop up a completion menu showing ...


19

I've also used ido-mode a lot and trained my muscle memory :) I think the ido style is more intuitive than the helm approach. I search for stuff (typing in some characters) and commit to the find (hit RET), just like the search/address bar of my web browser. If the selection is a directory, I enter this directory and start searching again in this directory. ...


18

C-o is bound to helm-next-source by default. This will cycle through available sources. In this case, the sources are your command history and available commands. If you were at the top of your history in the example image, then pressed C-o, it'd move you to the first entry in Emacs Commands. C-o again would move you back to the top of the history. To ...


16

You can use helm-occur as a tool that comes with the basic helm module for this. But to me, one of the best helm based tools for buffer searching is Shingo Fukuyama's helm-swoop. You can get it from github and via MELPA. It has your required functionality of being able to drop your point at the position of the match (which can be a regexp). But you can also ...


16

You can set helm-ff-newfile-prompt-p to nil and Helm won't ask you anymore: (setq helm-ff-newfile-prompt-p nil)


15

Yes, use C-SPC to mark each file individually or mark all with M-a, then press RET to open all those files. I wrote a Helm guide here that covers Helm basics and most of default commands. Also check my helm-projectile. It has the multifile opening right at the beginning. Aside from the answer above, the question was updated with the question to open ...


15

I'm using Spacemacs (on Windows 10 if that matters) with the default keybindings. This may differ from your configuration, but I found the following ways to open files via Helm-Find-Files: Open Helm-Find-Files - SPCff Type in filename (via tab completion etc.). Once file has been selected, there are 3 options I use for opening the file: Option 1. Tab to ...


15

How do I remove the files that do not exist from recent files list? M-xrecentf-cleanupRET recentf-cleanup is an interactive compiled Lisp function in ‘recentf.el’. (recentf-cleanup) Cleanup the recent list. That is, remove duplicates, non-kept, and excluded files. See also the user options recentf-auto-cleanup: recentf-auto-cleanup is a variable ...


13

There is an adaptive sorting option for Helm which sorts the result according to their usage frequency. According to the helm source code it can be activated with the minor mode helm-adaptive-mode: https://github.com/emacs-helm/helm/blob/master/helm-adaptive.el


13

Indeed, if helm-ff-file-name-history-use-recentf set to true, helm-find-files is supposed to use recentf-list instead of file-name-history. To enable the recenf minor mode, I have those lines in my init file: ; keep a list of recently opened files (recentf-mode 1) (setq-default recent-...


13

If yanking the path into the current buffer is not acceptable, use C-u C-c C-k, which invokes helm-kill-selection-and-quit. From the documentation of helm-kill-selection-and-quit: Store display value of current selection to kill ring. With a prefix arg set to real value of current selection. Display value is what you see in `helm-buffer' and real ...


11

If you use helm-ag command, you can specify option like -G\.js$ search_pattern, or if you use helm-do-ag, you can use C-u prefix for specifying extension. This is screencast. Thanks for using helm-ag.


11

Perhaps this isn't quite what you're looking for, but I really like using helm-mini, which includes a small browser for recent open files (by calling helm-recentf as Nsukami suggests you use). Here is an example, taken from this amazing post on helm: Not only does it show all of your open buffers, but it's my most convenient way to view recently opened ...


11

helm-M-x is arguably unusual in this aspect. You first invoke it, type until you've picked the command you want to execute, then add the prefix argument by pressing C-u.


10

You can use Helm Projectile to jump around files in projects easily. There are some demos at the top of my guide. You can even treat any directory as a project and jump to anywhere by making an empty .projectile file in that directory, if your project is not directly supported by Projectile. Projectile not only provides jumping to files/directories from ...


10

The name of the face helm uses to highlight the selected item is helm-selection. You can change just the background color of any face with set-background-color: (set-background-color 'helm-selection "purple"). You can also useset-face-attribute like this: (set-face-attribute 'helm-selection nil :background "purple" ...


10

You have two ways: Use helm-projectile-grep/ack/ag: You can search for everything starting from project root. Later if you want to save the search results, press F3 or press TAB to switch to action menu and select the 3rd action. To navigate hgrep buffer: C-<down>: go to next match and open the match. C-<up>: go to previous match and open the ...


10

A good answer would be quite long. The short answer is yes. Each of Helm and Icicles offers features not offered by the other. They are not necessarily alternatives/competitors. You can use both. Wrt your question about matching candidates, there is no difference wrt showing all candidates. IOW, Icicles too will show all candidates anytime you like (...


9

With company-mode, you can use C-s to search from available candidates that it display. The search query is displayed in the modeline (not really easy to spot, I know. I filed an issue here). If you want to use Helm for completion, consider using helm-company or ac-helm. Haven't tried with ac-helm, but with helm-company, you can directly bind it to a key to ...


9

What you want can be achieved cleanly using hook provided by ediff (which if read the documentation seem to be provided for this exact purpose), advices are not needed. The relevant hooks are 1) ediff-quit-hook, from the documentation Hooks to run in the Ediff control buffer after finishing Ediff. 2) ediff-before-setup-hook Hooks to run before Ediff ...


9

Try C-c TAB when you have the file highlighted. This will yank the path into the current buffer, which might be an undesired side effect, but as long as you do helm-find-files from the buffer you want to use it in, you should be fine.


8

On systems that provide GNU find utility, you can use helm-find (by default bound to C-x c /) to get the desired behavior. Starting helm-find with a prefix argument C-u C-x c / prompts for the directory (emacs24.3 in the example) first and then for the pattern (dired el in the example). Without the prefix argument, it uses the default directory of the ...


8

helm-mini states in its help (which can be accessed with C-c ? while it's running) that a token prefixed with * is interpreted as substring match of a major mode. Therefore, entering *org gives you org-mode buffers, entering further space-separated tokens can be used to narrow those down even more.


8

Following the interesting comments from PythonNut, I installed helm-ag, and ran helm-projectile-ag from the projectile package via C-c p s s. I then switched to editing mode with C-c C-e. I changed a few lines and then pressed C-c C-c and these were saved to the relevant files. This works, but at present one infellicity is that it saves each of the "...


8

The reason for this can be a lingering old version of package.el in your load path. package.el was officially included in GNU Emacs 24, and the downloadable file for earlier Emacs versions doesn't support dependencies on built-in packages (emacs-24.1 is considered a built-in package here). Type M-x locate-library RET package to find where Emacs is getting ...


8

To wrap the entries in Helm buffer instead of truncating them, add function to helm-after-initialize-hook: (add-hook 'helm-after-initialize-hook (lambda () (with-helm-buffer (visual-line-mode)))) Alternatively, you can use helm-buffers-list and add this setting: (setq ido-use-...


8

The doc-string you quote talks about marking multiple branches in a Magit buffer, not during Helm completion. You can show a buffer which lists all branches and tags using y. In that buffer you can mark multiple branches using the region. Then press k to delete them. You'll be asked if you really want to do so. Magit does not support marking non-...


8

Okay, let me share a bit of the process of arriving at the solution to Question #1 (which should also resolve #2). I'm going to assume you know Emacs key notation and at least a little about Elisp. TL;DR It's hard. :) Research First, let's think a bit. helm-projectile-find-file is definitely calling find-file or some similar function at some point. You ...


Only top voted, non community-wiki answers of a minimum length are eligible