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
  • GitHub
  • Google
  • Google Images
  • 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
  • Melpa
  • Debian Packages
  • Ubuntu Packages
  • Rails API
  • Docker Hub images

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 w / 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")

The Amazon search engine defaults to use the .com TLD. If you want it to search on another country's website, you can specify a different one:

;; Use amazon.es site (Spain)
(setq-default search-engine-amazon-tld "es")

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: 2024-03-22 Fri 20:49

Validate