初学vim的时候,曾经使用的一个功能,现在明白了写法原理,小小重构记录一下
原理
vimscript是一门脚本语言,定义了vim的各种配置行为,本文功能的实现即使用vimscript编写函数,并且配置函数的调用映射,来达到在vim中编译运行C/C++的目的
func! SingleCompile()
exec "w"
let compile_cmd="!g++"
if &filetype == "c"
compilecmd ="!gcc"
endif
let compile_arg=" -o %< "
if search("thread")
let compile_arg .= " -lpthread "
endif
exec compile_cmd." % ".compile_arg
exec "! ./%<"
endfunc
nnoremap <F1> :call SingleCompile()<cr>
参数解释
exec "w" 表示保存缓冲区
" -o %< " %表示当前文件名, %< 表示没有后缀的文件名
.= 字符串拼接 类似于 C++中的 +=
search函数查找文本内含有的关键字,或者头文件,从而判断用不用链接一些动态库
exec compile_cmd." % ".compile_arg 等同于 g++/gcc $filename.cpp -o filename -l…
nnoremap <F1> :call SingleCompile()<cr>最后映射一个非递归的normal模式下的映射,即按F1调用SingleCompile函数
其他
看懂了如何编译运行C/C++ 同理,java go等也可以自定义写了

本文介绍了如何使用vimscript编写函数,通过配置按键映射实现C/C++代码的快速编译和运行。通过搜索代码中的特定关键字,动态决定是否链接额外的库。按下F1键即可调用函数SingleCompile()完成整个流程,提高了开发效率。
1万+

被折叠的 条评论
为什么被折叠?



