显示行数
1
2
/etc/vimrc(/etc/virc)
最后一行加入set number
移动光标
在vi命令模式下,vi提供了大量的移动命令,其中有一些是与less阅读器共享的,列举部分如下:
| 按键 | 移动光标 |
|---|---|
| l or 右箭头 | 向右移动一个字符 |
| h or 左箭头 | 向左移动一个字符 |
| j or 下箭头 | 向下移动一行 |
| k or 上箭头 | 向上移动一行 |
| 0 (零按键) | 移动到当前行的行首。 |
| ^ | 移动到当前行的第一个非空字符。 |
| $ | 移动到当前行的末尾。 |
| w | 移动到下一个单词或标点符号的开头。 |
| W | 移动到下一个单词的开头,忽略标点符号。 |
| b | 移动到上一个单词或标点符号的开头。 |
| B | 移动到上一个单词的开头,忽略标点符号。 |
| Ctrl-f or Page Down | 向下翻一页 |
| Ctrl-b or Page Up | 向上翻一页 |
| numberG | 移动到第 number 行。例如,1G 移动到文件的第一行。 |
| G | 移动到文件末尾。 |
基本编辑
插入文本
| 按键 | 操作 |
|---|---|
| u | 撤销上一步 |
| i | 当前光标处插入文本 |
| a | 往后一个光标处插入文本 |
| A | 当前行末尾处插入文本 |
| o | 当前行的下方打开一行 |
| O | 当前行的上方打开一行 |
| Esc或ctrl+c | 退出编辑模式 |
删除文本
| 命令 | 删除的文本 |
|---|---|
| x | 当前字符 |
| 3x | 当前字符及其后的两个字符。 |
| dd | 当前行。 |
| 5dd | 当前行及随后的四行文本。 |
| dW | 从光标位置开始到下一个单词的开头。 |
| d$ | 从光标位置开始到当前行的行尾。 |
| d0 | 从光标位置开始到当前行的行首。 |
| d^ | 从光标位置开始到文本行的第一个非空字符。 |
| dG | 从当前行到文件的末尾。 |
| d20G | 从当前行到文件的第20行。 |
剪切,复制和粘贴文本
| 命令 | 复制的内容 |
|---|---|
| yy | 当前行。 |
| 5yy | 当前行及随后的四行文本。 |
| yW | 从当前光标位置到下一个单词的开头。 |
| y$ | 从当前光标位置到当前行的末尾。 |
| y0 | 从当前光标位置到行首。 |
| y^ | 从当前光标位置到文本行的第一个非空字符。 |
| yG | 从当前行到文件末尾。 |
| y20G | 从当前行到文件的第20行。 |
查找和替换
| 按键 | 行为 |
|---|---|
| f | 查找一行(输入要查找的字符,再输入;重复这个查找) |
| / | 查找整个文件(输入要查找的字符,再输入n重复这个查找) |
| :noh | 取消查找后高亮 |
替换命令
1
:%s/Line/line/g
| 条目 | 含义 |
|---|---|
| : | 冒号字符运行一个 ex 命令。 |
| % | 指定要操作的行数。% 是一个快捷方式,表示从第一行到最后一行。另外,操作范围也可以用 1,5 来代替(因为我们的文件只有5行文本),或者用 1,$ 来代替,意思是 “ 从第一行到文件的最后一行。” 如果省略了文本行的范围,那么操作只对当前行生效。 |
| s | 指定操作。在这种情况下是,替换(查找与替代)。 |
| /Line/line | 查找类型与替代文本。 |
| g | 这是“全局”的意思,意味着对文本行中所有匹配的字符串执行查找和替换操作。如果省略 g,则 只替换每个文本行中第一个匹配的字符串。 |