如何在vim编辑器中添加命令?

Abh*_*ogi 106 linux vim

如果假设我的源代码文件名是“foo.c”。在编辑和调试时,我总是执行此命令:-

:!gcc -g foo.c -o foo;gdb foo

我可以向 Vim 添加一个自定义命令,以便如果我输入 ":debug" 那么上面的命令会执行吗?我如何做到这一点?

Jam*_*ley 130

是的。Vim 文档,第 40.2 节,命令行映射

Vim 编辑器使您能够定义自己的命令。您可以像执行任何其他命令行模式命令一样执行这些命令。要定义命令,请使用 ":command" 命令,如下所示:

:command DeleteFirst 1delete

现在当你执行命令 ":DeleteFirst" 时,Vim 执行 ":1delete",它删除第一行。

注意:用户定义的命令必须以大写字母开头。你不能使用 ":X"、":Next" 和 ":Print"。不能使用下划线!您可以使用数字,但不鼓励这样做。

将该行放在您的~/.vimrc:当然减去首字母)中,每次启动 vim 时都会定义它。此外,用于%:t引用正在编辑的文件(写入! gcc %:t被替换! gcc foo.c)。

如果您只想为一个文件或某些文件定义它,您需要一个自动命令。

  • 如果要替换现有命令,则需要使用 `command!`。 (5认同)

Jer*_*y L 16

Vim 已经支持Makefiles (:make)。如果为源创建一个,则可以在其中指定要完成的操作。此外,通过 ctags,Vim 将能够遍历编译期间发现的任何错误。


Eri*_*ski 8

添加用户定义的 vi 编辑器命令:

这将使当用户:Legend在正常模式下键入时,在光标下添加一个文本块。

第 1 步:将此行放入名为 ~/legend_header.txt` 的文件中

this text will be added
Run Code Online (Sandbox Code Playgroud)

第 2 步:将此命令放入您的 ~/.vimrc 文件中(如果该文件不存在,请创建它):

"The following command puts the contents of ~/legend_header.txt 
"under the cursor when the user types ":Legend" in normal mode.
command Legend :r ~/legend_header.txt
Run Code Online (Sandbox Code Playgroud)

第 3 步:重新启动 vi 以使更改生效。你完成了。

测试一下

步骤1:在vi中打开一个新文件。在 vi 中处于默认的“正常模式”。类型:Legend

第二步:~/legend_header.txt在光标所在的地方加上的内容。