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

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

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

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

我可以向 Vim 添加自定义命令,这样如果我输入“:debug”,上面的命令就会执行吗?我该如何实现?

答案1

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

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

:命令 DeleteFirst 1删除

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

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

把那一行放入你的~/.vimrc(当然不包括首字母:) 中,每次启动 vim 时它都会被定义。此外,使用%:t来引用正在编辑的文件 (写入! gcc %:t被替换为! gcc foo.c)。

如果你只希望为一个文件或某些文件定义它,那么你需要一个自动命令。

答案2

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

答案3

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

这样,当用户:Legend在正常模式下输入时,就会在光标下添加一块文本。

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

this text will be added

第 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

步骤 3:重新启动 vi 以使更改生效。您已完成。

测试一下

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

~/legend_header.txt第二步:在光标位置添加的内容。

答案4

我在 .vimrc 中使用此命令来编译和执行 c 代码:

:command Gcc !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; chmod o+x $1; ./$1

,但根据您的需要,您可以输入:

:command Gdb !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; gdb $1

您可以确定可执行文件的名称将是没有 .c 扩展名的源名称。

相关内容