Vim笔记(1)-光标移动
简介
Vim
是一款功能丰富而强大的文本编辑器, 其代码补全、编译及错误跳转等方便编程的功能特别丰富, 在程序员中得到非常广泛的使用, Vim
能够大大提高程序员的工作效率
Vim
有三种模式, Normal
、Insert
和 Virtual
模式, 打开时处于 Normal
模式, 此时不能插入内容, 但是可以移动光标并进行一些删除或查找操作. Virtual
模式下可以选中部分文本然后操作
按 i
可以切换到 Insert
模式, v
可以切换到 Virtual
模式, <Esc>
、<Ctrl-[>
或 <Ctrl-C>
可以切换到 Normal
模式( <Ctrl-C>
表示 Ctrl
和 C
一起按), 这三种都可以, 但是我更推荐 <Ctrl-C>
, 因为离得比较近
还有一种命令行模式支持各种高级的 Vim
操作, 可以通过以下几个提示符进入命令行模式 : $
、:
、/
、?
和 =
基本移动操作
按键操作 |
含义 |
h |
光标左移一步 |
l |
光标右移一步 |
j |
光标下移一行 |
k |
光标上移一行 |
在键盘上的位置如下所示:
↑
← h j k l →
↓
快速移动操作
根据单词进行水平移动
按键操作 |
含义 |
w |
光标移动到下一个单词的第一个字符( word, 算两个单词 ) |
b |
光标移动到上一个单词的第一个字符( word, 算两个单词 ) |
W |
光标移动到下一个单词的第一个字符( word, 算一个单词 ) |
B |
光标移动到上一个单词的第一个字符( word, 算一个单词 ) |
e |
光标移动到下一个单词的最后一个字符 ( 规则和 w 类似 ) |
ge |
光标移动到上一个单词的最后一个字符 ( 规则和 b 类似 ) |
E |
光标移动到下一个单词的最后一个字符 ( 规则和 W 类似 ) |
gE |
光标移动到上一个单词的最后一个字符 ( 规则和 B 类似 ) |
根据具体的字符移动
按键操作 |
含义 |
f{character} |
在光标所在行移动, 移动到下一个指定的字符所在 |
F{character} |
在光标所在行移动, 移动到上一个指定的字符所在 |
t{character} |
与 f{character} 类似, 不过在指定字符的上一格 |
T{character} |
与 F{character} 类似, 不过在指定字符的下一格 |
技巧 : 使用完一次上述命令后, 按 ;
可以重复执行命令, ,
可以回退
水平移动
按键操作 |
含义 |
0 |
移动到当前行的第一个字符, 包括空格 |
^ |
移动到当前行的第一个非空格字符(常用) |
$ |
移动到当前行的最后一个字符, 包括空格 |
g_ |
移动到当前行的最后一个非空格字符(常用) |
垂直移动
按键操作 |
含义 |
} |
向下跳转整个段落 |
{ |
向上跳转整个段落 |
<Ctrl-D> |
向下移动半页 |
<Ctrl-U> |
向上移动半页 |
高级移动操作
根据字符串匹配来移动
按键操作 |
含义 |
/{pattern} |
进行正向查找, 例如 /hello 就会查找从当前光标往下的所有 hello 字符串, 按 Enter 即可移动到单词位置 |
?{pattern} |
进行反向查找, 移动方向相反 |
技巧 : 以上两种方式都会找出全文的匹配字符串, 按下回车后所有字符串一般都会高亮
, 如果你想取消高亮, 就在 Normal
模式下输入 :noh
即可; 如果你想在所有匹配的字符串移动, n
可以移动到下一个匹配到的字符串位置, N
可以移动到上一个匹配到的字符串位置
定量移动
- 可以通过
数字+移动命令
的方式进行定量移动, 如 5j
就是向下移动 5
行, 3/hi
可以在按下 Enter
后跳到第三个匹配到的字符串位置
核心移动操作
按键操作 |
含义 |
gg |
光标移动到文件的顶部 |
{line}gg |
移动到具体的一行, 如: 12gg 移动到第 12 行的第一个非空格字符 |
G |
移动到文件的末尾 |
% |
进行括号匹配跳转 |