- add variable search-engine-config-list in order to support customization in search-engine layer - fixes issue #7999
3.1 KiB
Search Engine layer
Description
This layer adds support for the Search Engine package.
Features:
- Browser search integration
Supported search engines
- Amazon
- Bing
- Duck Duck Go
- Ecosia
- Google Images
- GitHub
- Google Maps
- Project Gutenberg
- YouTube
- Stack Overflow
- Spacemacs Issues
- Spacemacs Pull Requests
- Wikipedia
- Wolfram Alpha
- Maven Central
- Npm
- Hoogle 5
- Hackage Package Search
- Clojure-doc
- Python Package Index
- Python Docs
- C++ Reference
Install
To use this configuration layer, add it to your ~/.spacemacs
. You will need to
add search-engine
to the existing dotspacemacs-configuration-layers
list in this
file.
Key bindings
Evil | Holy | Command |
---|---|---|
SPC a / |
C-c / |
Summon a Helm buffer to select any engine |
Customize it!
If you'd rather have emacs use chrome, or firefox or any other thing (eww
) you
can have that customization. For example for google chrome you can put this in
your dotspacemacs/user-config
:
(setq browse-url-browser-function 'browse-url-generic
engine/browser-function 'browse-url-generic
browse-url-generic-program "google-chrome")
If you want more control of how various search engines are handled
or you want to add additional ones you can do so by setting the
following datastructure to search-engine-config-list
in your dotspacemacs/user-config
.
The datastructure consists of a key and:
- name -> the name displayed in the search prompt.
- url -> the url to query against, search parameter must be set as
%s
. - keywords -> a list of
engine-mode
keywords like a specific browser to use or a specific transformation to make. You can find a detailed list of all supported features here.
(setq-default dotspacemacs-configuration-layers
'((search-engine :variables
search-engine-config-list '((custom1
:name "Custom Search Engine 1"
:url "http://www.domain.com/s/stuff_sutff_remember_to_replace_search_candidate_with_%s"
:keywords (:docstring "My custom string"
:browser 'eww-browse-url))))))
If you'd rather not use helm but would want a specific search engine, remember
the function generated is always engine/search-(the name of the search engine
lower-case and hyphen instead-of-spaces-for-separation)
so you can bind that to
any key binding you want.