# EvEx teaches Everything how to match pinyin, romaji and folder boundaries

> EvEx, the IbEverythingExt plugin, extends Voidtools Everything on Windows with pinyin search for Chinese filenames, romaji search for Japanese ones, a `/` wildcard that understands path separators, a quick select overlay and an Explorer folder size column. It is a drop-in DLL, and on Everything 1.4 you configure it by editing a YAML file.

**Chaoses-Ib/IbEverythingExt** — EvEx: Everything 拼音搜索, ローマ字検索, wildcard, quick select, Shell extension

- Repository: https://github.com/Chaoses-Ib/IbEverythingExt
- Stars: 1,930 · Forks: 97
- Language: C++
- License: MIT
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/chaoses-ib-ibeverythingext

## It is a DLL dropped into Everything's program folder

Everything is Voidtools' Windows file indexer. EvEx, distributed as IbEverythingExt, is a plugin for it that adds search features Everything does not have natively, plus two Explorer-level conveniences.

Installation is a manual copy. The README's numbered steps are to install Everything's x64 installer or portable version, download the EvEx zip from Releases, unzip the files into Everything's program folder at `C:\Program Files\Everything`, and restart Everything. On Everything v1.5 there is one extra step: select IbEverythingExt in the Plug-ins page of Options and tick Enable plug-in.

Architecture and edition are hard requirements. The v1.4 configuration file is a plain YAML block with one boolean per input style:

```yaml
pinyin_search:
  enable: true
  mode: Auto
  allow_partial_match: false
  initial_letter: true
  pinyin_ascii: true
  pinyin_ascii_digit: false
  double_pinyin_microsoft: false
  double_pinyin_xiaohe: false
```

The marker file is the one to delete if you want the named instance back in the v1.5 portable package. The README states that other architectures and the Lite version are not supported, so the x64 build is the only path.

The version split is where things get sharp. For Everything v1.4, the highest supported version is v1.4.1.1026. From v1.4.1.1027 onward, Everything blocks DLL hijacking and cannot load this extension, which is a change made by upstream for a security reason rather than a decision by this project. The practical consequence is that your Everything version can be a security choice you never made.

Configuration follows the same split. v1.5 users configure everything from the Plug-ins page. v1.4 users have no plugin configuration UI and must edit `Plugins/IbEverythingExt/config.yaml` by hand.

Two portable packages are published in Releases. The Everything v1.5 portable package bundles EvEx with HTTP Server, ETP/FTP Server and Everything Server plugins, and requires enabling it on first use. The v1.4 package is plugin-only. In the v1.5 portable package, a named instance is disabled by default so third-party program support works, and you restore it by deleting the `No_Alpha_Instance` file.

## The slash wildcard treats a path separator as something other than a character

EvEx replaces that with a wildcard table where `\` means a directory boundary, which is the single most useful change for path searching:

| Wildcard | Semantics |
| --- | --- |
| `*` | Matches zero or more characters, except `\` |
| `**` | Matches zero or more characters |
| `?` | Matches one character, except `\` |
| `/` | Matches characters to the start of a child, equivalent to `**\` |
| `//` | Matches characters to a child, equivalent to `*\**` |
| `\\` | Same as `//` |

The example that makes it click is that `foo/alice` can match `foo\bar\alice`, while `foo/lice` cannot. So `/` means one full directory level, not any number of them, and `//` is the variant that can reach deeper. This is a path expression language rather than a glob, and it is what separates the plugin from a bare wildcard.

Two rules of use are worth noting. Using a wildcard does not require the whole filename to match unless the wildcard is at the start or end of the query, so a query containing `*` still matches on a substring basis. And the `/` and `//` wildcards can be switched off in Options, though they are on by default.

The search editor also has IME disabled by default, so the letters you type reach the matcher without an input method intercepting them. On non-Japanese and non-Chinese systems the search enhancements below are off by default too, which is a sensible default for a plugin that mostly adds value to CJK filenames.

## Pinyin and romaji both default to lowercase-only matching

The pinyin and romaji features share a matching convention. Lowercase letters can match either the romanization or real English letters, while uppercase letters match only English letters. That means typing lowercase `wenjian` finds both a pinyin match and a literal filename match, while `Wenjian` finds only the latter. It is a single rule that makes mixed results predictable.

Post-modifiers override it per query. For romaji, `;rm` restricts lowercase letters to romaji only, so `konosuba;rm` excludes English matches, and `;en` disables romaji matching entirely. `;np` forces Everything's built-in match algorithm, described in the config comments as nope/no-pinyin, which is a useful escape hatch when a query is not doing what you expect.

Pinyin supports abbreviated input, full pinyin, tone-marked full pinyin and double pinyin, with only the first two enabled by default. The double pinyin schemes are Microsoft, Natural Code, Xiaohe, Pinyin Jiajia, Smart ABC and Huayu, each disabled individually in the config. Polysyllabic characters and characters in Unicode supplementary planes are supported. Its post-modifiers are `;py` for pinyin-only lowercase matching, `;en` to disable pinyin, and `;np` again for the built-in algorithm.

The romaji feature is off by default on non-Japanese systems, and pinyin is on by default on Chinese systems. Both follow the locale of the machine rather than asking.

For v1.4 users, all of that is set in `Plugins/IbEverythingExt/config.yaml`, whose `pinyin_search` block includes `enable`, `mode`, `allow_partial_match`, and one boolean per input style. `mode: Auto` is the default, with Pcre2 as the documented default underneath. The config comments are unusually candid about the alternatives: Pcre has partial pinyin matching bugs listed by issue number and does not ignore Unicode case, while Edit has better version compatibility but only supports abbreviated pinyin, performs worse and has many bugs.

## The search features reach third-party launchers too

A plugin that only improves the Everything window would have limited reach, since many people reach Everything through a launcher rather than its own UI. EvEx explicitly supports that path.

The README lists third-party programs whose Everything queries gain pinyin and romaji support: EverythingToolbar, the Explorer plugin for Flow Launcher, the Everything plugin for PowerToys Run, the EverythingCommandPalette plugin for PowerToys Command Palette, and uTools local search. All of these talk to Everything through its search interface, so the enhanced matcher applies without changes on their side.

That is the strongest argument for the plugin existing at all. If you search through PowerToys Run or Flow Launcher, adding pinyin support in the launcher itself would mean maintaining it in every launcher you use. EvEx changes the behaviour underneath them.

The rest of the feature list sits outside search. Quick select is a fast way to pick from results, with a hotkey table and a configurable key list in the documentation. A shell extension adds a folder size column to Explorer, which is the other screenshot in the README. There is also a quick launcher for launching applications, disk usage analysis, and a checking-update mechanism.

These are separate small modules rather than one feature, and the README's table of contents treats each as its own section. The shell extension in particular is Explorer-level integration, which means it is subject to Windows shell extension rules rather than Everything's plugin rules.

## The Rust workspace splits plugin, signature checking and the native glue

The repository layout shows a mixed C++ and Rust project, which is the norm for a Windows shell extension that also wants a maintained updater and code signing.

Cargo.toml declares a workspace with two members, `plugin` and `sig`, on edition 2024, version 0.11.0, MIT licensed. Both `everything-ipc` and `everything-plugin` are patched away from crates.io to point at a fork at github.com/Chaoses-Ib/IbEverythingLib, as is `winio` pointing at a fork under the same author. That patching is the mechanism by which the plugin reaches Everything's internals; the upstream crates are not sufficient.

Release builds are configured for size: `lto = "fat"` and `codegen-units = 1`. For a DLL that loads into every Everything window, startup cost matters.

The rest of the tree follows the split. `IbEverythingExt.sln` is the Visual Studio solution, `EverythingExt/` the C++ extension code, `plugin/` and `sig/` the Rust crates, `loader/`, `external/` and `test/` the supporting pieces, `publish/` and `sig/` the release pipeline, and `Updater/` a separate updater component. Documentation lives under `docs/`, including `docs/development.md`, `docs/third_party/README.md` and `docs/pinyin_search/edit_mode.md`.

Signatures are worth noting as a category. There is a `sig/` member and a `publish/` directory, which together suggest the project signs its own binaries. An unsigned DLL loaded into a file indexer is exactly the pattern that Everything's own DLL hijacking protection was added to close, so how EvEx handles that on the v1.4 line determines whether the older version remains usable at all.

## Maintenance is real but the last push predates today by over two months

The repository is not archived. The last push was on 2026-08-02, and releases track closely with it: v0.11.0 on 2026-07-04, after v0.11.0-beta on 2026-04-16 and v0.11.0-beta.2 on 2026-05-26.

That gives a reasonable picture of cadence rather than a guarantee. The release history shows v0.11.0 following two beta releases, with another push after the stable release. For a plugin that has to track changes in Everything itself, that is a normal rhythm, and the v1.4 DLL hijacking block shows exactly the kind of upstream change this project has to react to.

The version line is still zero-major, at 0.11.0, which conventionally means interfaces may change between minor versions. There is no compatibility statement in the README, and no documented upgrade path between versions, so the sensible habit is to read the release notes on the GitHub releases page before replacing a working install.

The licence is MIT.

Two portability boundaries close the picture. EvEx is documented for Windows. And for Windows 7 users, the README requires installing VxKex and enabling it in the properties of `Everything.exe` or `Everything64.exe`, pointing at issue 87 for the details. Maintaining a Windows 7 path in 2026 costs the project real effort, and it is one more thing that could narrow.

## Conclusion

Adopt EvEx if you run Everything on Windows and work with Chinese or Japanese filenames, or if you want folder-aware wildcards without touching Everything's own index. Do not adopt it if you rely on Everything 1.4 on a build newer than v1.4.1.1026, where DLL hijacking protection prevents the extension from loading, or if you need configuration through a GUI on that version, since v1.4 has no plug-ins page. Verify first which Everything version and architecture you are on, because the v1.4 and v1.5 paths differ in install method, configuration file and behaviour, and check that the pinyin mode you want is not the Edit mode the config comments warn about.

## FAQ

### How do I install EvEx, the IbEverythingExt plugin for Everything?

Install Everything's x64 version, unzip the EvEx download from Releases into `C:\Program Files\Everything`, and restart Everything. On Everything v1.5 you also select IbEverythingExt in the Plug-ins page of Options and tick Enable plug-in. Other architectures and the Lite version are not supported.

### Does EvEx work with the latest version of Everything?

Not on the 1.4 line. The README states the highest supported Everything v1.4 version is v1.4.1.1026, because v1.4.1.1027 and later block DLL hijacking and cannot load this extension. Everything v1.5 is supported and does load the plugin once enabled in Options.

### How do I search Chinese filenames by pinyin in Everything?

Type lowercase letters, which match pinyin or English letters, while uppercase matches English only. Add `;py` to restrict lowercase letters to pinyin only, `;en` to disable pinyin matching, and `;np` to force Everything's built-in algorithm. Abbreviated and full pinyin are on by default; double pinyin schemes are configured in the options.

### What does the / wildcard do in EvEx?

It matches characters to the start of a child, equivalent to `**\`. So `foo/alice` matches `foo\bar\alice` while `foo/lice` does not. `//` is the variant that can match deeper, equivalent to `*\**`.

### Does pinyin search work in PowerToys Run and Flow Launcher?

Yes. The README states the search enhancements also apply to third-party programs that invoke Everything to search files, including EverythingToolbar, the Flow Launcher Explorer plugin, PowerToys Run, PowerToys Command Palette and uTools local search.

### How do I configure EvEx on Everything 1.4?

There is no plugin configuration UI on v1.4, so the README tells you to edit `Plugins/IbEverythingExt/config.yaml` manually. Its `pinyin_search` block holds `enable`, `mode`, `allow_partial_match` and one boolean per input style. Everything v1.5 users configure the same options in the Plug-ins page of Options.

## Sources

- [Chaoses-Ib/IbEverythingExt on GitHub](https://github.com/Chaoses-Ib/IbEverythingExt)
- [Issues](https://github.com/Chaoses-Ib/IbEverythingExt/issues)
- [License: MIT](https://github.com/Chaoses-Ib/IbEverythingExt/blob/main/LICENSE)
- [README](https://github.com/Chaoses-Ib/IbEverythingExt/blob/main/README.md)
- [Releases](https://github.com/Chaoses-Ib/IbEverythingExt/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/chaoses-ib-ibeverythingext
