Table of Contents

Search Engine layer

Table of ContentsClose

searchengine.jpg

1 Description

This layer adds support for the Search Engine package.

1.1 Features:

  • Browser search integration

2 Supported search engines

  • Amazon
  • Bing
  • Duck Duck Go
  • Ecosia
  • Google
  • Google Images
  • GitHub
  • Google Maps
  • Twitter
  • 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

3 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.

4 Key bindings

Evil Holy Command
SPC a / C-c / Summon a Helm buffer to select any engine

5 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.

Author: root

Created: 2019-11-10 Sun 14:17

Validate