如果假设我的源代码文件名为“ foo.c”。在编辑和调试时,我总是执行以下命令:
:!gcc -g foo.c -o foo; gdb foo
我可以在Vim中添加一个自定义命令,以便如果我键入“:debug”然后执行上面的命令?我该如何实现?
如果假设我的源代码文件名为“ foo.c”。在编辑和调试时,我总是执行以下命令:
:!gcc -g foo.c -o foo; gdb foo
我可以在Vim中添加一个自定义命令,以便如果我键入“:debug”然后执行上面的命令?我该如何实现?
Answers:
是。Vim文档,第40.2节,命令行映射:
Vim编辑器使您可以定义自己的命令。您可以像执行任何其他命令行模式命令一样执行这些命令。要定义命令,请使用“:command”命令,如下所示:
:命令DeleteFirst 1删除
现在,当您执行命令“:DeleteFirst”时,Vim将执行“:1delete”,这将删除第一行。
注意:用户定义的命令必须以大写字母开头。您不能使用“:X”,“:Next”和“:Print”。下划线不能使用!您可以使用数字,但是不建议这样做。
将该行放入您的行中~/.vimrc
(:
当然要减去初始行),并且每次启动vim时都会对其进行定义。另外,还可用于%:t
引用正在编辑的文件(写入! gcc %:t
将替换为! gcc foo.c
)。
如果只希望为一个文件或某些文件定义它,则需要一个自动命令。
这样,当用户: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
步骤2:的内容~/legend_header.txt
应添加到光标所在的位置。
我在.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
您可以确定exec文件的名称将是不带.c扩展名的源名称。
command!
。