38 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Search and Replace
							 | 
						||
| 
								 | 
							
								localeTitle: 搜索和替换
							 | 
						||
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								# 在Vim中搜索和替换
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								在vim中搜索和替换将搜索给定文本模式的所有实例并将其替换为字符串。
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 命令键
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								用于搜索和替换的命令:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*   `:substitute`
							 | 
						||
| 
								 | 
							
								*   `:s` (替代的简短缩写形式)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 命令结构
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								用于搜索和替换的结构:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								`:[range]` `s` / `[pattern]` / `[string]` / `[flags]` `[count]`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								哪里…
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*   `[range]`表示要搜索的行(例如`1` :第一行, `$` :最后一行, `%` :所有行)。
							 | 
						||
| 
								 | 
							
								*   `[pattern]`是要搜索的文本模式。
							 | 
						||
| 
								 | 
							
								*   `[string]`是将替换文本模式的字符串。
							 | 
						||
| 
								 | 
							
								*   `[flags]`打开其他搜索和替换选项(例如`c` :确认替换, `g` :替换每行中的所有出现, `i` :忽略大小写)。
							 | 
						||
| 
								 | 
							
								*   `[count]`从`[range]`的最后一行开始替换`[count]`行(如果省略`[range]`则替换当前行)。
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### 常见例子
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								下面列出了一些常见的搜索和替换示例:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*   `:s/foo/bar/`将当前行中的第一个'foo'更改为'bar'。
							 | 
						||
| 
								 | 
							
								*   `:s/foo/bar/g`将当前行中的每个'foo'更改为'bar'。
							 | 
						||
| 
								 | 
							
								*   `:%s/foo/bar/g`将所有行中的每个'foo'更改为'bar'。
							 | 
						||
| 
								 | 
							
								*   `:13s/foo/bar/g`将第13行中的每个'foo'更改为'bar'。
							 | 
						||
| 
								 | 
							
								*   `:%s/foo/bar/cgi`将所有行中的每个'foo'更改为'bar'。
							 |