isearch-mb's People
isearch-mb's Issues
isearch-mode-map issue
Hi I use isearch with swiper with a command swiper-isearch-toggle.
Normally I set that with something like:
(define-key isearch-mode-map (kbd "C-o") #'swiper-isearch-toggle)
(define-key swiper-map (kbd "C-o") #'swiper-isearch-toggle)
But when I enable this package's mode it does not work.
Same applies to commands like C-l to center the candidate and so on. This last one I understand is intended to not work because is a buffer action instead of a minibuffer one... but I mention just to assert it is intended.
Remap previous/next-line-or-history-element to isearch-repeat-backward/forward
Okay, so that's it from me ;)
Avoid moving to the prompt.
Hi:
(this is just a detail, but as you requested for more bugs I add it).
When using the package if we use the arrows to move backward the prompt moves beyond the first search character. So over the I-search
prompt. This is not a big issue, but the fix shouldn't be too complex.
Search start position
When putting the point at point-min, e.g., ;;; isearch-mb.el --- Alternative Isearch UI based on the minibuffer -*- lexical-binding: t; -*-
and entering Alternative, then Alternative will be found and highlighted. When deleting it again and searching for isearch, the second Isearch is highlighted. However I think the search should actually go back to the starting point when changing the search string.
Performance issue when `isearch-mb-mode` is on
Reproduce steps:
- Run Emacs with
emacs -q
. - Evaluate
isearch-mb.el
. - Open a large (> 200 MB) text file using
M-x find-file
. - With
isearch-mb-mode
is on, use C-s to search some pattern. - Compare with the cursor movement and redisplaying with
isearch-mb-mode
is off and search again.
Environments:
- Emacs version:
GNU Emacs 27.2 (build 1, x86_64-apple-darwin20.3.0, Carbon Version 164 AppKit 2022.3) of 2021-04-02
isearch-mb
version:master
Recenter issue
Hi:
Trying the package I am getting some issues that the buffer sometimes scrolls when finalizing the search. It does not follow an specific pattern for me. But it seems like emacs tries to do a recenter when finalizing isearch. Have you observed something like that?
After pressing `isearch-forward-regexp` twice, the prompt becomes "Regexp Regexp I-search"
Could input methods be made to work?
I'd like to use a Quail input method with isearch-mb. Currently, when I enter a regular isearch where the input method works as expected, the prompt reads Regexp I-search [\]:
(The display name of the input method is \
, it's a custom one I've put together, I just wanted the display name to be short).
This same prompt text as regular isearch displays is visible for a split second after starting a search using isearch-mb, but then it changes to just Regexp I-search:
.
Also, while in an isearch-mb search, pressing C-\
seems to do nothing, whereas it toggles the input method on and off in regular buffers and the minibuffer when it is being used for something other than isearch-mb.
Do you happen to have any idea what might be going on here? The only call made to read-from-minibuffer
does specify t
for INHERIT-INPUT-METHOD
, so at first glance it seems like the code is doing the right thing, but I haven't spent too much time looking into this myself.
Is it possible to make to implement `C-w runs the command isearch-yank-word-or-char`?
Hi @astoff,
Thanks for a great package.
I wonder is possible to bring C-w
from isearch built-in into this package?
Needs a bit more care regarding recursive editing
When I have an isearch mb minibuffer active and start a recursive minibuffer, e.g., C-x b, the isearch-mb should be terminated or suspended. Currently this makes the recursive command dysfunctional.
Should require cl-lib at compile time because of cl-letf
One more idea - better mode line indicator
I have something like this in my config, which is similar to what isearch+ does. It only works so lala because of the minibuffer-message sit-for delays. Maybe there is also more information which could be shown. Do you think something like this is within the scope of isearch-mb?
(defun dm/isearch-indicator-remove ()
(setq mode-line-misc-info (delete "ISEARCH " mode-line-misc-info)
mode-line-misc-info (delete "Isearch " mode-line-misc-info)
mode-line-misc-info (delete "R*SEARCH " mode-line-misc-info)
mode-line-misc-info (delete "R*search " mode-line-misc-info)))
(defun dm/isearch-indicator-update ()
(dm/isearch-indicator-remove)
(push (concat (propertize (if isearch-case-fold-search
(if isearch-regexp "R*SEARCH" "ISEARCH")
(if isearch-regexp "R*search" "Isearch"))
'face 'isearch)
" ")
mode-line-misc-info))
(add-hook 'isearch-mode-end-hook #'dm/isearch-indicator-remove)
(add-hook 'isearch-update-post-hook #'dm/isearch-indicator-update)
When changing the search direction C-s/r must be pressed twice
When you want to change the search direction, the normal isearch changes the prompt and then requires you to press C-s/r again. Since Isearch-mb does not change the prompt (related to #7), having to press the C-s/r key twice feels awkward. Is there a way to avoid this?
cursor-in-non-selected-window should be set temporarily in searched buffer
This is what confused me in #9. I have this setting off for some reason, probably since a long time, since I like to see only the active cursor. Are there other downsides of this setting?
Enter non-incremental search on empty submission.
Hello,
In normal Isearch, an empty submission activates one of the nonincremental-search-*
commands. This is helpful for larger files.
Please consider adding this feature to Isearch MB.
Thank you.
ELPA?
"Error running timer: (wrong-type-argument" when searching in the help buffer
Hi. I just run into this issue.
Steps to reproduce
emacs -Q
(package-initialize)
(isearch-mb-mode)
;; any other variable will do
(describe-variable 'emacs-version)
(other-window 1)
;;; C-s
I get
Error running timer: (wrong-type-argument char-or-string-p nil)
If I C-s
again, it works.
Emacs-version: 29.1.90 (custom built on Debian)
Isearch-mb version: 0.70
Feature request: ivy-like space behavior
Ivy can be made to treat space like this:
One space match any sequence of characters in a line, two spaces matches exactly one space.
Wrong lazy count info when starting the search
The lazy count info is 0/total-count
when starting a search session. Only after we call isearch-repeat-forward/backward
, the current count is not zero.
This also happens when we isearch-repeat
in the opposite direction for the first time.
Recipe for $ emacs -Q
:
(require 'isearch-mb)
(setq isearch-lazy-count t)
;; Then search for some words that exist in the buffer, the current count is not 0.
(isearch-mb-mode)
;; Now search again. The current count is 0.
Failing I-search/Wrapped I-search message
The prompt is replaced by these messages in normal isearch mode. This functionality is lost if isearch-mb-mode is active.
Add advices only when isearch-mb mode is active
I propose to define two variables: isearch-mb-buffer-functions and isearch-mb-exit-functions. Add all the functions which must be advised to theses lists and then advise/unadvise them in isearch-mb-mode with a dolist loop.
The functions mentioned in https://github.com/astoff/isearch-mb#interaction-with-other-isearch-extensions could also be added to these lists either in isearch-mb directly or by the user.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.