“追加命令”在 vifm 中可以理解为两种情况:

- 向命令行输入框中追加文本(在当前输入内容的基础上添加)。
- 执行一个追加操作的命令(向文件追加内容)。
下面我将详细解释这两种情况。
向命令行输入框追加文本
在 vifm 的命令行模式下(当你按下 时),你可以使用以下快捷键来高效地编辑命令。
光标移动和基本编辑
这些快捷键与 Vim 的命令行模式非常相似:
| 快捷键 | 功能 |
|---|---|
| / | 将光标向左/向右移动一个字符。 |
Ctrl + B / Ctrl + E |
将光标移动到命令行的开头/末尾。 |
Ctrl + A / Ctrl + E |
(同上) 将光标移动到命令行的开头/末尾。 |
Ctrl + U |
删除光标到命令行开头的所有文本。 |
Ctrl + K |
删除光标到命令行末尾的所有文本。 |
Ctrl + W |
删除光标前的一个单词(以空格或 分隔)。 |
Ctrl + H / Backspace |
删除光标前的一个字符。 |
Delete |
删除光标后的一个字符。 |
追加特定内容(最常用的“追加”操作)
这是“追加命令”最直接的应用场景,例如你想在当前路径下执行某个命令。

| 快捷键 | 功能 | 示例 |
|---|---|---|
Ctrl + L |
追加当前光标所在文件的完整路径到命令行。 | 如果光标在 ~/project/src/main.py,按下 后再按 Ctrl + L,命令行会变成 ~/project/src/main.py。 |
Ctrl + \`` (反引号) | **追加当前光标所在文件的文件名**(不含路径)。 | 同样在main.py上,按下:后再按Ctrl + `,命令行会变成:main.py`。 |
||
| 在命令行中输入时, 会自动替换为当前光标所在文件的完整路径。 | 输入 vim % 会直接打开当前文件。 |
|
<cfile> |
在自定义命令或用户命令中,<cfile> 会被替换为当前光标所在文件的完整路径。 |
综合示例:
假设你想用 git add 命令添加当前目录下的一个文件 config.ini。
- 在
vifm中,光标移动到config.ini上。 - 按下 进入命令行模式。
- 直接输入
git add。 - 按下 `Ctrl + ``,文件名
config.ini会被追加到命令后面。 - 你的命令行会显示为
git add config.ini。 - 按回车执行。
执行追加操作的命令
这里指的是 vifm 内置的、能够对文件或目录内容进行“追加”操作的命令。
write 或 w 命令
这是最核心的追加命令,在 vifm 中,你可以通过 w 命令将当前文件的内容追加到另一个文件中。
语法:

w >> {目标文件}
示例:
假设你有一个日志文件 app.log,你想把它的内容追加到 all_logs.log 中。
- 在
vifm中打开app.log(即让它成为当前活动的文件)。 - 按下 进入命令行。
- 输入以下命令并回车:
w >> all_logs.log app.log的内容就会被追加到all_logs.log的末尾。all_logs.log不存在,vifm会创建它(但请注意,>>在某些vifm版本或配置下可能不会自动创建文件,此时需要先创建文件)。
对比 > 和 >>:
w > file:覆盖写入。file存在,其内容会被替换。w >> file:追加写入。file存在,内容会被添加到文件末尾。
append 命令
append 命令本身是进入插入模式,让你在当前文件的光标后追加多行文本,当你在插入模式下输入完所有内容后,按 Esc 返回普通模式,这些文本就被“追加”到文件中了。
语法:
append
{输入你的文本...}
{输入你的文本...}
. (输入一个句点并回车,结束追加模式)
示例:
- 打开一个空文件
newfile.txt。 - 按下 输入
append并回车。 - 现在你可以直接输入文本,每按一次回车就是新的一行。
This is line 1. This is line 2. This is line 3. - 输入完成后,单独输入一个句点 并回车。
- 你会发现
newfile.txt的内容就是你刚刚输入的所有行。
外部命令的追加
你可以使用 来执行任何外部 shell 命令,并利用 shell 的追加功能。
示例:
将当前目录的列表追加到 directory_listing.txt 中。
- 在
vifm的任意位置。 - 按下 输入:
!ls -l >> directory_listing.txt - 回车执行。
ls -l的输出结果就会被追加到directory_listing.txt中。
| 追加类型 | 常用场景 | 关键命令/快捷键 |
|---|---|---|
| 向命令行追加文本 | 快速构建命令,如 git add, vim, cp 等 |
Ctrl + L (追加路径)Ctrl + \`` (追加文件名)<br>%` (路径占位符) |
| 执行追加操作 | 合并日志、备份内容、在文件末尾添加信息 | w >> {文件} (追加文件内容)append (进入多行插入模式)!cmd >> {文件} (执行外部命令追加) |
希望这份详细的解释能帮助你更好地理解和使用 vifm 的追加命令!
