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`
 | ||
| *   `{` - >向上移动一段
 | ||
| *   `}` - >向下移动一个段落
 | ||
| *   `(` - >向上移一句话
 | ||
| *   `)` - >将一个人放下来
 | ||
| *   `#` - >在光标下找到单词
 | ||
| *   `*` - >在光标下找到单词 |