Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何在vim中编写编译并使用一个命令运行_C_Vim - Fatal编程技术网

C 如何在vim中编写编译并使用一个命令运行

C 如何在vim中编写编译并使用一个命令运行,c,vim,C,Vim,所以我有一个配置文件.vimrc,它有一段代码,当我按F3时,它应该保存文件编译并运行它。这不管用 map <F3> ^M:w^M:!gcc *.c -g; ./a.out^M map^M:w^M:!gcc*.c-g/a、 外^M 您的键映射对我有效(假设您键入的^M为Ctrl-V Ctrl-M) 如果您有一个makefile设置(您可能应该这样做),您可以使用:make 如果您使用的不是make,例如cmakesconsant或其他东西,则可以设置makeprg选项。您如何编写^

所以我有一个配置文件.vimrc,它有一段代码,当我按F3时,它应该保存文件编译并运行它。这不管用

map <F3> ^M:w^M:!gcc *.c -g; ./a.out^M
map^M:w^M:!gcc*.c-g/a、 外^M

您的键映射对我有效(假设您键入的
^M
为Ctrl-V Ctrl-M)

如果您有一个makefile设置(您可能应该这样做),您可以使用
:make


如果您使用的不是
make
,例如
cmake
scons
ant
或其他东西,则可以设置
makeprg
选项。

您如何编写
^M
?您可以通过按Ctrl+V Enter来编写它,或者更好的是,将其更改为不需要任何特殊技巧的

第一个
^M
是错误的。将其他更改为

map:w:!gcc*.c-g/a、 出去

也不需要编译
*.c
和运行
a.out
, 可以使用
%
%:r

map <F3> :w<enter>:!gcc % -o %:r;./%:r<enter>
map:w:!gcc%-o%:r;/%:R

map:w:!使;/%:R

您使用
^M
而不是
的任何原因?@user594546:根据我的经验,在项目中,将当前目录中的所有
*.c
文件编译为可执行文件只是一个很短时间内可持续的构建过程。不久之后,你需要一些更具可扩展性的东西。但是,对于单个文件,最好使用“:!gcc%:p”
map <F3> :w<enter>:!gcc % -o %:r;./%:r<enter>
map <F3> :w<enter>:!make;./%:r<enter>