【发布时间】:2019-04-07 22:16:24
【问题描述】:
最后我想用 gcc 用 vimux 编译我的源代码
(假设文件名为 test.c)
在 vimux 之前我做过
:!gcc % -o test
安装 vimux 后我会这样做
nmap <leader>z :let $file_name = expand('%:t:r')<cr>:let $full_file_name = %<cr>:call VimuxRunCommand("gcc $full_file_name -o $file_name")<cr>
但我错了
无效的表达式:%
我也尝试过使用 vim 变量来做到这一点,因为我认为问题出在范围
【问题讨论】:
-
改用
:!make %:r;如果您使用 makefile,您可以更轻松地为编译器获得更多选项。就目前而言,您没有使用-Wall,因此正在浪费gcc。你不能不使用-Wall编译;如果我按照我的方式进行编译,您将使用-Wall -Wextra -Werror -Wstrict-prototypes -Wmissing-prototypes进行编译(使用 makefile 很容易做到这一点,而您打算使用的则更难)。 -
:make %<更好 -
否则,我看不出使用环境变量来执行这个 Vim 命令的意义。直接将最终字符串填充到命令中。顺便说一句,对于单文件项目,只需
make就足够了,我们甚至不需要Makefile。最后,它可能会变成这样::call VimuxRunCommand('make '.expand('%<'))——但你会失去 quickfix 功能,它不再需要 tmux 来在后台编译,而是 vim 插件。
标签: c gcc vim environment-variables