> For the complete documentation index, see [llms.txt](https://kanneg881.gitbook.io/workspace/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kanneg881.gitbook.io/workspace/vim/sou-xun-mo-shi-zhi-ling/magic.md).

# magic

## 說明

magic 是確定如何解析正規表達式的字串\
每種 magic 都為一種模式\
每種模式都會影響特殊字元是否需要轉義

## 基本魔法(magic)

這是預設 magic 模式，部分特殊字元不需轉義

### 使用方式

在正規表達式前加上 \m

### 舉例

`:s/\m^abc/cba`\
將開頭 abc 的字串取代為 cba

`:help /\m`\
查看更多基本魔法轉義

## 無魔法(no magic)

部分 magic 不需轉義的特殊字元改成需要轉義

最常見的為 . 和 \* 字元

### 使用方式

在正規表達式前加上 \M

### 舉例

`s:/\M^\.bc/cba`\
將開頭任意字元後面是 bc 的字串取代為 cba

`:help /\M`\
查看更多無魔法轉義

## 非常魔法(very magic)

幾乎所有特殊字元不需要轉義

### 使用方式

在正規表達式前加上 \v

### 舉例

`s:/\v(abc) (cba)/\2 \1`\
將 abc cba 的字串取代為 cba abc

`:help /\v`\
查看更多非常魔法轉義

## 無非常魔法(no very magic)

幾乎所有特殊字元需要轉義

### 使用方式

在正規表達式前加上 \V

### 舉例

`s:/\V\(abc\) \(cba\)/\2 \1`\
將 abc cba 的字串取代為 cba abc

`:help /\V`\
查看更多非常魔法轉義
