87 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			87 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								title: Motions
							 | 
						|||
| 
								 | 
							
								localeTitle: 议案
							 | 
						|||
| 
								 | 
							
								---
							 | 
						|||
| 
								 | 
							
								# Vim基本动作
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 游标运动
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								首先在VIM中我们可以使用箭头键,如果我们想在文本文件中移动,但这不是最好的方法, 我们失去了VIM提供的组合命令的优势。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								而不是通过文本移动的默认和最佳方式是使用键`h` (左), `j` (下), `k` (上)和`l` (右)。
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								     ^ 
							 | 
						|||
| 
								 | 
							
								     | 
							 | 
						|||
| 
								 | 
							
								     k 
							 | 
						|||
| 
								 | 
							
								 <- h   l -> 
							 | 
						|||
| 
								 | 
							
								     j 
							 | 
						|||
| 
								 | 
							
								     | 
							 | 
						|||
| 
								 | 
							
								     v 
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								使用此键而不是箭头键的优点是,您可以将运动与其他命令结合使用,例如:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   `d2j` - >删除2行
							 | 
						|||
| 
								 | 
							
								*   `y10k` - >复制10行
							 | 
						|||
| 
								 | 
							
								*   `10l` - >向右移动10个字符
							 | 
						|||
| 
								 | 
							
								*   `2h` - >剩下2个字符
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 单词动作
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								一个单词由一系列字母,数字和下划线组成,或者一个 其他非空白字符的序列,用空格分隔(空格, 标签,行尾)。空行也被认为是一个单词。
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								通过这个commnads可以移动单词:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   `w` - >转到下一个单词
							 | 
						|||
| 
								 | 
							
								*   `W` - >转到下一个**WORD** \*
							 | 
						|||
| 
								 | 
							
								*   `e` - >移到下一个单词的末尾
							 | 
						|||
| 
								 | 
							
								*   `E` - >移动到下一个**WORD**的结尾
							 | 
						|||
| 
								 | 
							
								*   `b` - >转到上一个单词
							 | 
						|||
| 
								 | 
							
								*   `B` - >转到上一个**WORD**
							 | 
						|||
| 
								 | 
							
								*   `ge` - >移到上一个单词的末尾
							 | 
						|||
| 
								 | 
							
								*   `gE` - >移动到上一个**WORD**的末尾
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								\* **WORD**由一系列非空白字符组成,用白色分隔 空间。空行也被认为是**WORD** ,即: `quux(foo,` `bar,` `foo);`
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								通过这些动作与其他命令相结合,您可以执行以下操作:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   `dw` - >删除这个词
							 | 
						|||
| 
								 | 
							
								*   `5e` - >从这里移到第5个字的末尾
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 搜索动议
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								另一种移动到您喜欢的位置的方法是使用搜索动作,搜索动作包含在 动作+要搜索的字符
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   `fx` - >移动到下一个`x`
							 | 
						|||
| 
								 | 
							
								*   `tx` - >在下一个`x`之前移动到第一个位置
							 | 
						|||
| 
								 | 
							
								*   `;` - >下一个x
							 | 
						|||
| 
								 | 
							
								*   `Fx` - >移动到前一个`x`
							 | 
						|||
| 
								 | 
							
								*   `Tx` - >在前一个`x`之后移动到第一个位置
							 | 
						|||
| 
								 | 
							
								*   `,` - >前一个x
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 行的开头和结尾
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								您还可以使用以下命令移至VIM的开头或结尾:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   `0` - >开始行
							 | 
						|||
| 
								 | 
							
								*   `^` - >该行的第一个非黑色字符
							 | 
						|||
| 
								 | 
							
								*   `$` - >行尾
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								### 档案动议
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								在VIM中,您可以使用以下命令在文件中移动:
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								*   `gg` - >移动到文件的第一行
							 | 
						|||
| 
								 | 
							
								*   `G` - >移动到文件的最后一行
							 | 
						|||
| 
								 | 
							
								*   `<ctrl> + f` - >向下移动一页
							 | 
						|||
| 
								 | 
							
								*   `<ctrl> + b` - >向上移动一页
							 | 
						|||
| 
								 | 
							
								*   `/text` - >查找`text`
							 | 
						|||
| 
								 | 
							
								*   `n` - >移动到下一个`text` (上一个命令)
							 | 
						|||
| 
								 | 
							
								*   `?text` - >查找以前的`text`
							 | 
						|||
| 
								 | 
							
								*   `N` - >移动到上一次出现的`text`
							 | 
						|||
| 
								 | 
							
								*   `{` - >向上移动一段
							 | 
						|||
| 
								 | 
							
								*   `}` - >向下移动一个段落
							 | 
						|||
| 
								 | 
							
								*   `(` - >向上移一句话
							 | 
						|||
| 
								 | 
							
								*   `)` - >将一个人放下来
							 | 
						|||
| 
								 | 
							
								*   `#` - >在光标下找到单词
							 | 
						|||
| 
								 | 
							
								*   `*` - >在光标下找到单词
							 |