# Exact Quick Find
> A Sublime Text plugin that implements quick-find aware of case-sensitive / whole-word / wrap-scan flags.
![](img/basic.gif)
*^ Quick-finding the exact whole word `"debug"` in lowercase.*
Note that non-matches such as `_debug_print` and `DEBUG` are not qualified and have been skipped.
Also note that the flags on the status bar are toggled to `[C][W][R]`.
`[C]` for case sensitive. `[W]` for whole word. `[R]` for wrap scan.
## Install
[Package Control](https://packagecontrol.io/packages/Exact%20Quick%20Find)
## How to Use
### 1. Key Bindings
No default key bindings. Define your own. For recommended key bindings, open
```
Preferences > Package Settings > Exact Quick Find > Key Bindings
```
or enter in the command palette
```
Preferences: Exact Quick Find Key Bindings
```
#### Recommended Key Bindings
##### Basic Commands
| Command | Windows / Linux | macOS |
| ----------------------------------------- | ------------------------------------------------- | ------------------------------------------------ |
| Exact Quick Find: Goto Next | Ctrl + E | Cmd + E |
| Exact Quick Find: Goto Prev | Ctrl + B | Cmd + B |
| Exact Quick Find: Goto Prev | Ctrl + Shift + E | Cmd + Shift + E |
| Exact Quick Find: Add Next | Ctrl + D | Cmd + D |
| Exact Quick Find: Add Prev | Ctrl + Shift + D | Cmd + Shift + D |
| Exact Quick Find: Add All | Ctrl + Alt + D | Cmd + Opt + D |
| Exact Quick Find: Toggle `Case Sensitive` | Alt + C | Opt + C |
| Exact Quick Find: Toggle `Whole Word` | Alt + W | Opt + W |
| Exact Quick Find: Toggle `Wrap Scan` | Alt + R | Opt + R |
| Exact Quick Find: Flip Find Flags | Alt + F | Opt + F |
##### Advanced Commands
| Command | Windows / Linux | macOS |
| ------------------------------------ | ------------------------------------------------- | ------------------------------------------------ |
| Exact Quick Find: Peek Next | Ctrl + G | Cmd + G |
| Exact Quick Find: Peek Prev | Ctrl + Shift + G | Cmd + Shift + G |
| Exact Quick Find: Peek Next Selected | Ctrl + H | Cmd + H |
| Exact Quick Find: Peek Prev Selected | Ctrl + Shift + H | Cmd + Shift + H |
| Exact Quick Find: Add This | Ctrl + 6 | Cmd + 6 |
| Exact Quick Find: Subtract This | Ctrl + Shift + 6 | Cmd + Shift + 6 |
| Exact Quick Find: Single Select This | Ctrl + 7 | Cmd + 7 |
| Exact Quick Find: Invert Select This | Ctrl + Shift + 7 | Cmd + Shift + 7 |
| Exact Quick Find: Go First | Ctrl + 5 | Cmd + 5 |
| Exact Quick Find: Go Last | Ctrl + Shift + 5 | Cmd + Shift + 5 |
| Exact Quick Find: Go Back | Ctrl + 8 | Cmd + 8 |
### 2. Main Menu
```
Find > Exact Quick Find > Goto Next
Find > Exact Quick Find > Goto Prev
Find > Exact Quick Find > Add Next
Find > Exact Quick Find > Add Prev
Find > Exact Quick Find > Add All
Find > Exact Quick Find > Peek Next
Find > Exact Quick Find > Peek Prev
Find > Exact Quick Find > Peek Next Selected
Find > Exact Quick Find > Peek Prev Selected
Find > Exact Quick Find > Add This
Find > Exact Quick Find > Subtract This
Find > Exact Quick Find > Single Select This
Find > Exact Quick Find > Go First
Find > Exact Quick Find > Go Last
Find > Exact Quick Find > Go Back
Find > Exact Quick Find > Toggle Case Sensitive
Find > Exact Quick Find > Toggle Whole Word
Find > Exact Quick Find > Toggle Wrap Scan
Find > Exact Quick Find > Flip Find Flags
```
### 3. Command Palette
```
Exact Quick Find: Goto Next
Exact Quick Find: Goto Prev
Exact Quick Find: Add Next
Exact Quick Find: Add Prev
Exact Quick Find: Add All
Exact Quick Find: Peek Next
Exact Quick Find: Peek Prev
Exact Quick Find: Peek Next Selected
Exact Quick Find: Peek Prev Selected
Exact Quick Find: Add This
Exact Quick Find: Subtract This
Exact Quick Find: Single Select This
Exact Quick Find: Go First
Exact Quick Find: Go Last
Exact Quick Find: Go Back
Exact Quick Find: Toggle Case Sensitive
Exact Quick Find: Toggle Whole Word
Exact Quick Find: Toggle Wrap Scan
Exact Quick Find: Flip Find Flags
```
*Hint: enter `eqf` in the command palette and all the commands will show up.*
## Settings
```
Preferences > Package Settings > Exact Quick Find > Settings
```
or enter in the command palette
```
Preferences: Exact Quick Find Settings
```
## Documentation
### Basic Commands: Finding Matches and Toggling Flags
- `Exact Quick Find: Goto Next` to go to the next match *- this is like the built-in `Quick Find Next`*
- `Exact Quick Find: Goto Prev` to go to the previous match
- `Exact Quick Find: Add Next` to add the next match *- this is like the built-in `Quick Add Next`*
- `Exact Quick Find: Add Prev` to add the previous match
- `Exact Quick Find: Add All` to add all the matches *- this is like the built-in `Quick Find All`*
- `Exact Quick Find: Toggle Case Sensitive` to toggle the case-sensitive flag
- `Exact Quick Find: Toggle Whole Word` to toggle the whole-word flag
- `Exact Quick Find: Toggle Wrap Scan` to toggle the wrap-scan flag
- `Exact Quick Find: Flip Find Flags` to toggle multiple flags in one go
### Advanced Commands: Editing Selections with Peek-Based Methods
![](img/advanced.gif)
*^ Adding, subtracting, and reviewing selections with peek-based methods.*
- `Exact Quick Find: Peek Next` to peek at the next match
- `Exact Quick Find: Peek Prev` to peek at the previous match
- `Exact Quick Find: Peek Next Selected` to peek at the next selected match
- `Exact Quick Find: Peek Prev Selected` to peek at the previous selected match
- `Exact Quick Find: Add This` to add the current match to selections
- `Exact Quick Find: Subtract This` to subtract the current match from selections
- `Exact Quick Find: Single Select This` to select only the current match
- `Exact Quick Find: Invert Select This` to select all the matches except the current one
- `Exact Quick Find: Go First` to go to / add / peek at the first match
- `Exact Quick Find: Go Last` to go to / add / peek at the last match
- `Exact Quick Find: Go Back` to go to / add / peek at the match where quick-find starts
### Understanding `Peek`
Among 3 different types of moves
1. `Goto` - leave the old region and move to a new region
2. `Add` - additionally select a new region
3. `Peek` - tentatively move to a new region without selecting it
`Peek` does ***not*** affect selections. You can first move to a region and then decide whether to select or de-select it.
### Understanding `Go`
How `Go` affects selections depends on its previous command
- If the previous command is `Goto`, to `Go` is to `Goto`
- If the previous command is `Add`, to `Go` is to `Add`
- If the previous command is `Peek`, to `Go` is to `Peek`
- If no previous commands, to `Go` is to `Goto`
## Author
Aaron Fu Lei
## License
MIT