Vim - 编辑
Vim - 基本编辑命令
Section titled “Vim - 基本编辑命令”Vim 的强大之处体现在其编辑能力上,这主要通过 Normal 模式下的命令来实现,这些命令可以切换到 Insert 模式。本章涵盖了用于插入、更改和操作文本的基本命令。
- 在光标前插入文本
- 在光标后追加文本
- 打开新行
- 替换字符或行
- 更改文本
- 覆盖字符
- 合并行
大多数编辑命令都是从 Normal 模式启动的。请记住按下 Esc 键从 Insert 模式返回 Normal 模式。
在光标前插入文本
Section titled “在光标前插入文本”要在当前光标位置插入文本:
- 在 Normal 模式下按
i(小写)。 - Vim 切换到 Insert 模式,您可以开始输入。
- 文本将出现在光标所在的字符之前。
i " Enter Insert mode before the cursor在行首插入文本
Section titled “在行首插入文本”要快速移动到当前行首并开始插入文本:
- 在 Normal 模式下按
I(大写)。 - 光标移动到行的第一个非空白字符处(如果该行为空或仅包含空白字符,则取决于配置,光标会移动到第 0 列),并且 Vim 进入 Insert 模式。
I " Enter Insert mode at the beginning of the line在光标后追加文本
Section titled “在光标后追加文本”要在当前光标位置之后立即追加文本:
- 在 Normal 模式下按
a(小写)。 - 光标向右移动一个位置,Vim 切换到 Insert 模式。
a " Enter Insert mode after the cursor在行尾追加文本
Section titled “在行尾追加文本”要快速移动到当前行尾并开始追加文本:
- 在 Normal 模式下按
A(大写)。 - 光标移动到当前行尾,Vim 进入 Insert 模式。
A " Enter Insert mode at the end of the line在光标下方打开新行
Section titled “在光标下方打开新行”要在当前行下方插入一个新空白行并开始在其上输入:
- 在 Normal 模式下按
o(小写)。 - 当前行下方会创建一个新行,光标移动到新行,Vim 进入 Insert 模式。
o " Open a new line below and enter Insert mode在光标上方打开新行
Section titled “在光标上方打开新行”要在当前行上方插入一个新空白行并开始在其上输入:
- 在 Normal 模式下按
O(大写)。 - 当前行上方会创建一个新行,光标移动到新行,Vim 进入 Insert 模式。
O " Open a new line above and enter Insert mode替换命令会删除文本然后进入 Insert 模式。
- 要替换光标下的单个字符:在 Normal 模式下按
s(小写)。光标下的字符被删除,Vim 进入 Insert 模式。 - 要替换整个当前行:在 Normal 模式下按
S(大写)或使用cc。整行被删除,Vim 在一个空白行上进入 Insert 模式。
s " Delete character under cursor and start insertS " Delete current line and start insert (same as cc)修改(Change)命令很强大,它们结合了删除和进入 Insert 模式。它们通常需要一个动作(motion)。
cc(或S): 删除当前行并进入 Insert 模式。C(或c$): 删除从光标位置到行尾的文本并进入 Insert 模式。cw: 修改单词。删除从光标到当前单词结尾的文本并进入 Insert 模式。c<motion>: 修改由<motion>覆盖的文本。例如,caw修改 ‘a word’,ciw修改 ‘inner word’,c2j修改当前行及其下两行。
示例:如果光标在 “brown fox” 中的 ‘b’ 上:
cw 修改 “brown” 并允许您输入替换文本。
C 修改 “brown fox” 并允许您为行的其余部分输入替换文本。
覆盖(Replace)命令会覆盖现有文本,而不会移动后续字符。
- 要覆盖光标下的单个字符:在 Normal 模式下按
r(小写),然后输入您要替换的字符。Vim 保持在 Normal 模式。 - 要进入 Replace 模式:在 Normal 模式下按
R(大写)。Vim 进入 Replace 模式(底部会显示)。您输入的字符将覆盖现有字符。按Esc返回 Normal 模式。
r<char> " Replace single character under cursor with <char>R " Enter Replace mode在 Replace 模式下,在 “abc” 上输入 ‘X’ 将得到 “Xbc”。状态行通常会显示 -- REPLACE --。
要将当前行与下一行合并:
- 在 Normal 模式下按
J(大写)。 - 这将当前行与其下方行合并,移除下方行的缩进,并且通常会插入一个空格(如果第一行以句号、问号或感叹号结尾,则插入两个空格)。
- 要合并行而不插入任何空格,请使用
gJ。
J " Join current line with the next, adding a spacegJ " Join current line with the next, without adding a space