{"id":13646738,"url":"https://github.com/tam17aki/ace-isearch","last_synced_at":"2025-04-21T21:31:18.500Z","repository":{"id":21271904,"uuid":"24587714","full_name":"tam17aki/ace-isearch","owner":"tam17aki","description":"A seamless bridge between isearch, ace-jump-mode, avy, and helm-swoop.","archived":false,"fork":false,"pushed_at":"2022-08-09T17:48:45.000Z","size":149,"stargazers_count":103,"open_issues_count":10,"forks_count":10,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-09T20:37:45.803Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tam17aki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-29T09:21:46.000Z","updated_at":"2024-01-19T10:20:32.000Z","dependencies_parsed_at":"2022-09-14T13:52:36.425Z","dependency_job_id":null,"html_url":"https://github.com/tam17aki/ace-isearch","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tam17aki%2Face-isearch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tam17aki%2Face-isearch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tam17aki%2Face-isearch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tam17aki%2Face-isearch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tam17aki","download_url":"https://codeload.github.com/tam17aki/ace-isearch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250136683,"owners_count":21380876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-02T01:03:04.563Z","updated_at":"2025-04-21T21:31:18.277Z","avatar_url":"https://github.com/tam17aki.png","language":"Emacs Lisp","funding_links":[],"categories":["Emacs Lisp"],"sub_categories":[],"readme":"ace-isearch [![MELPA](http://melpa.org/packages/ace-isearch-badge.svg)](http://melpa.org/#/ace-isearch) [![MELPA Stable](http://stable.melpa.org/packages/ace-isearch-badge.svg)](http://stable.melpa.org/#/ace-isearch)\n===========\n\n## Introduction\n`ace-isearch.el` provides a minor mode that combines `isearch`,  [`ace-jump-mode`](https://github.com/winterTTr/ace-jump-mode) or\n[`avy`](https://github.com/abo-abo/avy) and\n[`helm-swoop`](https://github.com/ShingoFukuyama/helm-swoop), [`swiper`](https://github.com/abo-abo/swiper/) or [`consult-line`](https://github.com/minad/consult).\n\nThe \"default\" behavior (`ace-isearch-jump-based-on-one-char` t) can be summarized as:\n- L = 1     : `ace-jump-mode` or `avy`\n- 1 \u003c L \u003c 6 : `isearch`\n- L \u003e= 6    : `helm-swoop`, `swiper` or `consult-line`\n\nwhere L is the input string length during `isearch`.  When L is 1, after a\nfew seconds specified by `ace-isearch-jump-delay`, `ace-jump-mode` or `avy` will\nbe invoked. Of course you can customize the above behaviour.\n\nIf (`ace-isearch-jump-based-on-one-char` nil), L=2 characters are required to\ninvoke `ace-jump-mode` or `avy` after `ace-isearch-jump-delay`. This has the effect\nof doing regular `isearch` for L=1 and L=3 to 6, with the ability to switch to\n2-character `avy` or `ace-jump-mode` (not yet supported) once `ace-isearch-jump-delay`\nhas passed. Much easier to do than to write about :-)\n\n## Requirements\n\n* Emacs 24 or higher\n* [ace-jump-mode](https://github.com/winterTTr/ace-jump-mode) or [avy](https://github.com/abo-abo/avy)\n* [helm-swoop](https://github.com/ShingoFukuyama/helm-swoop), [swiper](https://github.com/abo-abo/swiper/) or [consult](https://github.com/minad/consult)\n\nYou must install these packages manually.\n\n## Installation\n\nYou can install `ace-isearch.el` from [MELPA](http://melpa.org/#/ace-isearch) with `package.el`\n\n```\n M-x package-install ace-isearch\n```\n\nOtherwise you can install it by [el-get](https://github.com/dimitri/el-get/blob/master/recipes/ace-isearch.rcp).\n\n## Basic Usage\n\n#### `ace-isearch-mode`\n\nEnable `ace-isearch` minor mode:\n\n```lisp\n(ace-isearch-mode +1)\n```\n\n#### `global-ace-isearch-mode`\n\nEnable global ace-isearch mode:\n\n```lisp\n(global-ace-isearch-mode +1)\n```\n\n## Customization\n\n#### `ace-isearch-function` (Default:`ace-jump-word-mode`)\nSpecify the function name utilized in invoking `ace-jump-mode` or `avy`\nwhen 1-character jumping is enabled (`ace-isearch-jump-based-on-one-char` = t).\nYou should specify `ace-jump-word-mode`, `ace-jump-char-mode`, \n`avy-goto-word-1`, `avy-goto-subword-1`, or `avy-goto-char`.\n\n---\n\n#### `ace-isearch-2-function` (Default:`avy-goto-char-2`)\nSpecify the function name utilized in invoking `ace-jump-mode` or `avy`\nwhen 2-character jumping is enabled (`ace-isearch-jump-based-on-one-char` = nil).\nCurrently, only `avy` functions `avy-goto-char-2`, `avy-goto-char-2-above` and\n`avy-goto-char-2-below` are available.\n\n---\n\n#### `ace-isearch-switch-function` or `ace-isearch-2-switch-function`\nYou can switch the value of `ace-isearch-function` or `ace-isearch-2-function`\ninteractively.\n\n---\n\n#### `ace-isearch-use-jump` (Default:`t`)\nIf this variable is set to `nil`, `ace-jump-mode` or `avy` are never invoked.\n\nIf set to `t`, it is always invoked if the length of `isearch-string` is equal to 1.\n\nIf set to `printing-char`, it is invoked only if you hit a printing character to search for as a first input.\nThis prevents it from being invoked when repeating a one character search, yanking a character or calling\n`isearch-delete-char` leaving only one character.\n\n---\n\n#### `ace-isearch-jump-based-on-one-char` (Default:`t`)\nIf this variable is set to `nil`, 2-character jumping is used, with L=2 invoking `ace-jump-mode` or `avy` instead of L=1.\n\n---\n\n#### `ace-isearch-jump-delay` (Default：`0.3`)\nDelay seconds for invoking `ace-jump-mode` or `avy` during isearch.\n\n---\n\n#### `ace-isearch-func-delay` (Default：`0.0`)\nDelay seconds for invoking `ace-isearch-function-from-isearch` during isearch, which is described below.\n\n---\n\n#### `ace-isearch-input-length` (Default：`6`)\nAs default behaviour, when the input string length during isearch exceeds `ace-isearch-input-length`,\nthe function specified by `ace-isearch-function-from-isearch` will be invoked.\n\n---\n\n#### `ace-isearch-function-from-isearch` (Default:`helm-swoop-from-isearch`)\nSpecify the function name invoked when the input string length during isearch exceeds `ace-isearch-input-length`.\nIf [swoop](https://github.com/ShingoFukuyama/emacs-swoop) has been installed, swoop can be invoked:\n\n```el\n(setq ace-isearch-function-from-isearch 'swoop-from-isearch)\n```\n\nIn this case, the following setting would be better.\n\n```el\n(define-key swoop-map (kbd \"C-s\") 'swoop-action-goto-line-next)\n(define-key swoop-map (kbd \"C-r\") 'swoop-action-goto-line-prev)\n```\n\nOf course you can set this variable to `helm-occur-from-isearch`.\n\n```el\n(setq ace-isearch-function-from-isearch 'helm-occur-from-isearch)\n```\n\nYou can also set this variable to use `swiper`.\n\n```el\n(setq ace-isearch-function-from-isearch 'ace-isearch-swiper-from-isearch)\n```\n\nOr you can set it to use `consult-line`.\n\n```el\n(setq ace-isearch-function-from-isearch 'ace-isearch-consult-line-from-isearch)\n```\n\n---\n\n#### `ace-isearch-use-function-from-isearch` (Default:`t`)\nIf you don't want to invoke `ace-isearch-function-from-isearch`, set this variable to `nil`.\n\n---\n\n#### `ace-isearch-disable-isearch-function-from-isearch-message` (Default:`nil`)\nIn the event that none of the supported libraries are available for `ace-isearch-function-from-isearch`, a message will issue explaining the situtation.\n\nIn order to disable the message, set this variable to `t`.\n\n---\n\n#### `ace-isearch-fallback-function`  (Default:`ace-isearch-helm-swoop-from-isearch`)\nThis functionality is optional.\nWhen isearch fails and `ace-isearch-use-fallback-function` is non-nil,\n`ace-isearch-fallback-function` will be invoked as a fallback function.\n\nYou should specify the symbol name of function which uses `isearch-string`, the query string during isearch.\nFor a trivial example, you can specify it as follows:\n\n```el\n(defun my-fallback-function ()\n  (message \"Your isearch string is %s\", isearch-string))\n  \n(setq ace-isearch-use-function-from-isearch t)\n(setq ace-isearch-fallback-function 'my-fallback-function)\n```\n\n\n---\n\n#### `ace-isearch-use-fallback-function`  (Default:`nil`)\nIf this variable is set to non-nil, `ace-isearch-fallback-function` will be invoked\nwhen isearch fails.\n\n---\n\n#### `ace-isearch-jump-during-isearch`\nWith this function, `ace-jump-mode` will be invoked further during isearch, which enables to jump to the one of the isearch candidates.\nThis helps to reduce many key repeats of `C-s` or `C-r`.\n\n---\n\n#### `ace-isearch-pop-mark`\nYou can invoke `ace-jump-mode-pop-mark` or `avy-pop-mark` in accordance with the current `ace-isearch-function` or `ace-isearch-2-function`. With this function, you can jump back to the last location of `ace-jump-mode` or `avy`.\n\n---\n\n#### `ace-isearch-on-evil-mode`  (Default:`nil`)\nIf this variable is set to non-nil, you can invoke `ace-jump-mode` or `avy` even on `evil-mode`.\n\n\n## Sample Configuration\n```el\n(require 'ace-isearch)\n(global-ace-isearch-mode +1)\n\n(custom-set-variables\n '(ace-isearch-input-length 7)\n '(ace-isearch-jump-delay 0.25)\n '(ace-isearch-function 'avy-goto-char)\n '(ace-isearch-use-jump 'printing-char))\n \n(define-key isearch-mode-map (kbd \"C-'\") 'ace-isearch-jump-during-isearch)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftam17aki%2Face-isearch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftam17aki%2Face-isearch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftam17aki%2Face-isearch/lists"}