Skip to content

wenhoujx/swiper

Repository files navigation

swiper

Fuzzy search lines in current window.

Supports regex, negate, match highting, case sensitive search.

a copy of emacs swiper: the thing I missed most in vscode.

Search "swiper !not Test" matches a line with SWiPeR Test without mentions of not string.

DEMO

Installation

Install this extension.

Commands

swiper.swiper-word-at-cursor search the current word at cursor.

swiper.swiper search the last value tried.

Quick tutorial

Invoke command Swiper: Swiper Search/Resume and start typing.

basic rules:

  1. Search either literal string e.g. abc or javascript regex /.../.
  2. Search strings separated by space are AND-ed together. e.g. "a b" matched lines with "a" and "b" on the same line.
  3. Search string prefixed with ! negates the search, "a !b" matches lines with "a" but not "b". Use regex /\!/ if you want to match "!" literal string. Search string starts with ! does not contribute to the border highlights.
  4. Default case insensitive search. Upcased search term matches case sensitively.

Some quick Example:

# search wildcard
/command.*swiper/

a b # matches lines with a and b
a !b # matches lines with a but not b

/lint|display/ # lint OR display
lint|display # searches the literal string "lint|display"

# line starts with test
/^test/

a B # matches "aB", "AB"

/\(.*\)/ # matches paren
!/\(.*\)/ # do not match paren

Configuration

You can configure this extension via command palette (F1 on my machine) -> Preferences: Open User Settings (JSON), add the following snippet to the open configuration file:

  ...
  "swiper.selectMatch": false
}

Configuration points of this extension

  • swiper.selectMatch (default true), controls if the picked match is selected. Set to false, cursor jumps to the end of the match word.

Motivation

I come from emacs to VScode, vscode is awesome, but misses a few features i do daily in emacs. This is one of them.

More on my motivation: medium link

I wrote a blog that covers achieving some my other emacs workflows in VScode.

TODO

  • somehow test on non-macOS?
  • search all file in the workspace.

    Use VScode search feature.

  • if upper case char typed, turn to case sensitive search for that subSearchString.

    Done

  • do not save tmp file for unsaved buffer.

misc

publish URL

dev guide

# make whatever change, bump package.json 
vsce package
# then release to the vscode marketplace publish page.

About

emacs ivy helm inspired search line in current buffer.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •