Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/haya14busa/incsearch.vim

:flashlight: Improved incremental searching for Vim
https://github.com/haya14busa/incsearch.vim

incsearch vim vim-plugin

Last synced: 24 days ago
JSON representation

:flashlight: Improved incremental searching for Vim

Awesome Lists containing this project

README

        

> ⚠️ **Deprecated**
> This plugin is no longer necessary since the main functionality is now built into vim/neovim
>
> See:
> - https://medium.com/@haya14busa/incsearch-vim-is-dead-long-live-incsearch-2b7070d55250
> - https://github.com/vim/vim/pull/2198
> - Successor plugin: https://github.com/haya14busa/is.vim

![incsearch.vim](https://raw.githubusercontent.com/haya14busa/i/master/incsearch.vim/incsearch_logo.png)

[![Build Status](https://travis-ci.org/haya14busa/incsearch.vim.svg?branch=master)](https://travis-ci.org/haya14busa/incsearch.vim)
[![Build status](https://ci.appveyor.com/api/projects/status/ks6gtsu46c1djoo6/branch/master)](https://ci.appveyor.com/project/haya14busa/incsearch-vim/branch/master)
[![](http://img.shields.io/github/tag/haya14busa/incsearch.vim.svg)](https://github.com/haya14busa/incsearch.vim/releases)
[![](http://img.shields.io/github/issues/haya14busa/incsearch.vim.svg)](https://github.com/haya14busa/incsearch.vim/issues)
[![](http://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
[![](http://img.shields.io/badge/doc-%3Ah%20incsearch.txt-red.svg)](doc/incsearch.txt)

![](https://raw.githubusercontent.com/haya14busa/i/master/incsearch.vim/incremental_regex_building.gif)

Introduction
------------
incsearch.vim incrementally highlights __ALL__ pattern matches unlike default
'incsearch'.

Concepts
--------

### 1. Simple
incsearch.vim provides simple improved incremental searching.

### 2. Comfortable
You can use it comfortably like the default search(`/`, `?`).
It supports all modes (normal, visual, operator-pending mode), dot-repeat `.`,
`{offset}` flags, and so on.

### 3. Useful
incsearch.vim aims to be simple, but at the same time, it offers useful features.

#### Incremental regular expression editing
You can see all patterns that the given regular expression matches all at once
while incremental searching.

Usage
-----

### Installation

[Neobundle](https://github.com/Shougo/neobundle.vim) / [Vundle](https://github.com/gmarik/Vundle.vim) / [vim-plug](https://github.com/junegunn/vim-plug)

```vim
NeoBundle 'haya14busa/incsearch.vim'
Plugin 'haya14busa/incsearch.vim'
Plug 'haya14busa/incsearch.vim'
```

[pathogen](https://github.com/tpope/vim-pathogen)

```
git clone https://github.com/haya14busa/incsearch.vim ~/.vim/bundle/incsearch.vim
```

### Basic usage
```vim
map / (incsearch-forward)
map ? (incsearch-backward)
map g/ (incsearch-stay)
```

`(incsearch-stay)` doesn't move the cursor.

### Additional usages
README introduces some features, but please see [:h incsearch.vim](doc/incsearch.txt) for more information.

#### Automatic :nohlsearch

![](https://raw.githubusercontent.com/haya14busa/i/master/incsearch.vim/incsearch_auto_nohlsearch.gif)

Farewell, `nnoremap :nohlsearch`!
This feature turns 'hlsearch' off automatically after searching-related motions.

```vim
" :h g:incsearch#auto_nohlsearch
set hlsearch
let g:incsearch#auto_nohlsearch = 1
map n (incsearch-nohl-n)
map N (incsearch-nohl-N)
map * (incsearch-nohl-*)
map # (incsearch-nohl-#)
map g* (incsearch-nohl-g*)
map g# (incsearch-nohl-g#)
```

### Emacs-like incsearch: move the cursor while incremental searching

![](https://cloud.githubusercontent.com/assets/3797062/3866152/40e11c48-1fc4-11e4-8cfd-ace452a19f90.gif)

Move the cursor to next/previous matches while incremental searching like Emacs.

| Mapping | description |
| ------------------------ | --------------------------------- |
| `(incsearch-next)` | to next match. default: `` |
| `(incsearch-prev)` | to prev match. default: `` |

### Scroll-like feature while incremental searching

![](https://raw.githubusercontent.com/haya14busa/i/master/incsearch.vim/incremental_move_and_scroll.gif)

| Mapping | description |
| ------------------------ | --------------------------------- |
| `(incsearch-scroll-f)` | scroll to the next page match. default: `` |
| `(incsearch-scroll-b)` | scroll to the previous page match. default: `` |

:tada: Version 2.0 :tada:
-------------------------
Now, incsearch.vim provides some (experimental) API.
You can implement or use very useful yet another search command :mag_right:

### Experimental API
- `:h incsearch#go()`
- `:h incsearch-config`

Starts incsearch.vim with your custom configuration. See help docs for more detail.

### Converter feature
- `:h incsearch-config-converters`
- The list of converter extensions: https://github.com/haya14busa/incsearch.vim/wiki/List-of-plugins-for-incsearch.vim#converter-extensions

#### Example

```vim
function! s:noregexp(pattern) abort
return '\V' . escape(a:pattern, '\')
endfunction

function! s:config() abort
return {'converters': [function('s:noregexp')]}
endfunction

noremap z/ incsearch#go(config())
```

incsearch.vim x fuzzy https://github.com/haya14busa/incsearch-fuzzy.vim
![incsearch-fuzzy.gif](https://raw.githubusercontent.com/haya14busa/i/master/incsearch.vim/extensions/incsearch-fuzzy.gif)

### Module extension
- `:h incsearch-config-modules`
- The list of module extentions: https://github.com/haya14busa/incsearch.vim/wiki/List-of-plugins-for-incsearch.vim#module-extensions

incsearch.vim x fuzzy x vim-easymotion https://github.com/haya14busa/incsearch-easymotion.vim
![incsearch-fuzzy-easymotion.gif](https://raw.githubusercontent.com/haya14busa/i/master/incsearch.vim/extensions/incsearch-fuzzy-easymotion.gif)

Author
------
haya14busa (https://github.com/haya14busa)

Special thanks
--------------
osyo-manga(https://github.com/osyo-manga), the author of
the custom command line library, https://github.com/osyo-manga/vital-over,
which incsearch.vim heavily depends on.

Links
-----

### VimConf2014
- [/-improved](https://docs.google.com/presentation/d/1ie2VCSt9onXmoY3v_zxJdMjYJSbAelVR-QExdUQK-Tw/pub?start=false&loop=false&delayms=3000&slide=id.g4e7add63c_05) at [VimConf 2014](http://vimconf.vim-jp.org/2014/)
- I talked in Japanese but wrote slide in English ;)

Document
--------
[:h incsearch.vim](doc/incsearch.txt)