# How to Use Date/Time Input with /引导 Commands in RIME Wanxiang

> Learn to use date and time input with RIME Wanxiang 
引导 commands. Insert formatted dates, times, and custom templates using slash commands like /rq and placeholders like \Y.

- Repository: [amzxyz/rime_wanxiang](https://github.com/amzxyz/rime_wanxiang)
- Tags: how-to-guide
- Published: 2026-02-24

---

**Use slash commands like `/rq`, `/sj`, and `/dt` followed by optional backslash placeholders such as `\Y`, `\m`, and `\A` to insert formatted dates, times, or custom templates directly into your text.**

The **amzxyz/rime_wanxiang** repository implements a powerful /引导 (slash-guided) mode that allows users to input dates and times using intuitive slash commands. This feature leverages Lua processors to parse commands, calculate temporal values, and expand customizable placeholders in real-time.

## Understanding the /引导 Command Architecture

The date/time input system relies on a coordinated pipeline across three core components that handle detection, calculation, and formatting.

### Core Implementation Files

The functionality is distributed across these specific source files:

- **[`wanxiang/lua/shijian.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/wanxiang/lua/shijian.lua)** – Implements the primary slash commands (`/rq`, `/sj`, `/dt`, `/nl`, `/xq`), parses N-date shortcuts, and manages the `sequence_adjustment_code` property (line 2584)
- **[`wanxiang/lua/super_filter.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/wanxiang/lua/super_filter.lua)** – Handles dynamic placeholder expansion through the `process_datetime_internal` function (lines 135-180), mapping escape sequences like `\Y` and `\T` to actual values
- **[`wanxiang/wanxiang.schema.yaml`](https://github.com/amzxyz/rime_wanxiang/blob/main/wanxiang/wanxiang.schema.yaml)** – Defines the default `date_formats`, `time_formats`, and `datetime_formats` used when no custom template is specified

### Command Processing Pipeline

When you type a slash command, the system executes this sequence:

1. **Input detection** – The recognizer pattern matches the leading "/" and [`wanxiang.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/wanxiang.lua) tags the segment with `shijian` or `Ndate`
2. **Processor dispatch** – The `super_processor` chain routes the tagged segment to the date-time handler in [`shijian.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/shijian.lua)
3. **Date calculation** – The script obtains `os.date("*t")` and selects a format from the configured lists
4. **Placeholder expansion** – If backslash escapes exist, [`super_filter.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/super_filter.lua) substitutes them using an internal time map
5. **Result emission** – The formatted string is emitted as a candidate for selection

## Available Slash Commands and Placeholders

The /引导 mode supports multiple built-in commands for different temporal outputs.

### Standard Commands

| Command | Output Type | Description |
|---------|-------------|-------------|
| `/rq` | Date | Current date using the first entry in `date_formats` |
| `/sj` | Time | Current time using `time_formats` configuration |
| `/dt` | DateTime | Combined date and time output |
| `/nl` | Lunar | Traditional Chinese lunar calendar date |
| `/xq` | Weekday | Current day of the week |

### Backslash Placeholder Reference

When you append placeholders to a command, `process_datetime_internal` expands them using this mapping:

- **`\Y`** – Four-digit year (e.g., `2025`)
- **`\m`** – Month with leading zero (e.g., `09`)
- **`\d`** – Day with leading zero (e.g., `26`)
- **`\T`** – Chinese shichen (时辰, e.g., `辰时`)
- **`\K`** – Chinese ke (刻, quarter-hour, e.g., `初三`)
- **`\A`** – Period of day (e.g., `上午`, `下午`, `晚上`)

## Practical Usage Examples

The following examples assume the current time is 2025-09-26 14:37.

### Basic Command Usage

Type the slash command directly to get default formatting:

```text
/rq      → 2025-09-26
/sj      → 14:37
/dt      → 2025-09-26 14:37:00

```

### Custom Template Expansion

Append placeholders immediately after the command to customize the output format:

```text
/rq\Y年\m月\d日 \A    → 2025年09月26日 下午
/rq\T                → 2025-09-26 辰时
/sj\K                → 14:37 初三

```

### N-Date Shortcuts

The [`shijian.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/shijian.lua) processor also recognizes numeric shortcuts without slashes:

```text
N20250926   → 2025-09-26
N0926       → 09-26 (current year implied)

```

## Customizing Date and Time Formats

You can extend the default behavior by modifying the `custom_dt_formats` configuration in [`wanxiang/lua/shijian.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/wanxiang/lua/shijian.lua) (line 2847).

### Adding Custom Templates

Open [`shijian.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/shijian.lua) and locate the configuration section:

```lua
config:set_list("custom_dt_formats", {
    "\\Y/\\m/\\d \\A",
    "\\Y年\\m月\\d日 \\T"
})

```

After reloading the schema or restarting the input method, these custom patterns will appear as additional candidates when typing `/rq` or other date commands.

### Safety Mechanisms

The [`super_filter.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/super_filter.lua) implementation protects literal backslashes within `[[...]]` blocks from accidental expansion. This ensures you can embed literal text containing backslashes without triggering the placeholder replacement system.

## Summary

- **Slash commands** (`/rq`, `/sj`, `/dt`) in amzxyz/rime_wanxiang provide instant date/time insertion via the /引导 mode
- **Placeholders** (`\Y`, `\m`, `\d`, `\T`, `\K`, `\A`) enable custom formatting through `process_datetime_internal` in [`super_filter.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/super_filter.lua)
- **Configuration** occurs in [`wanxiang.schema.yaml`](https://github.com/amzxyz/rime_wanxiang/blob/main/wanxiang.schema.yaml) for default formats and [`shijian.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/shijian.lua) (line 2847) for custom templates via `custom_dt_formats`
- **N-date shortcuts** allow quick numeric entry (e.g., `N20250926`) without slash prefixes
- **Protection** for literal backslashes is handled automatically by the filter system

## Frequently Asked Questions

### How do I enable the /引导 date/time commands in my RIME configuration?

Ensure your schema includes the recognizer patterns for `shijian` and that the `super_processor` is active in your engine processors list. The patterns are defined in [`wanxiang/wanxiang.schema.yaml`](https://github.com/amzxyz/rime_wanxiang/blob/main/wanxiang/wanxiang.schema.yaml), and the [`wanxiang.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/wanxiang.lua) glue script automatically tags segments with `shijian` when it detects the leading slash.

### Why are my backslash placeholders not expanding?

Placeholder expansion requires the [`super_filter.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/super_filter.lua) component to be active in your filter chain. Verify that the candidate text contains valid placeholders (e.g., `\Y`, `\m`) and that you have not enclosed them in double brackets `[[...]]`, which explicitly prevents expansion according to the protection logic in [`super_filter.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/super_filter.lua).

### Can I create my own date format patterns?

Yes. Modify the `custom_dt_formats` list in [`wanxiang/lua/shijian.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/wanxiang/lua/shijian.lua) at line 2847. Add your desired pattern string using backslash escapes (e.g., `"\\Y.\\m.\\d \\A"`), then reload your RIME configuration. Your custom format will appear as an additional candidate alongside the defaults.

### What is the difference between `/rq` and `N20250926`?

`/rq` is a command that inserts the current date using system time, while `N20250926` is a literal input shortcut parsed by the same [`shijian.lua`](https://github.com/amzxyz/rime_wanxiang/blob/main/shijian.lua) processor to format a specific date. The N-date format allows you to input arbitrary dates by typing `N` followed by 8 digits (YYYYMMDD) or 4 digits (MMDD) to imply the current year.