vim作C++IDE的问题,下了GCC搭配VIM当作我的C++IDE,但是每次编译运行都得输一大串命令,就想弄个快捷键,可是应该怎样表示当前文件呢?是不是用到某个环境变量?
vim作C++IDE的问题,下了GCC搭配VIM当作我的C++IDE,但是每次编译运行都得输一大串命令,就想弄个快捷键,可是应该怎样表示当前文件呢?是不是用到某个环境变量?
在Vim中设置编译运行C++代码的快捷键,并引用当前文件,可以通过创建自定义命令和使用映射(mappings)来实现。Vim中的%
特殊字符用于表示当前编辑的文件名。以下是一个基本的步骤指南,说明如何设置这样的快捷键。
虽然这不是Vim的直接配置,但使用Makefile可以大大简化编译过程。在项目的根目录下创建一个Makefile,里面包含编译和运行的规则。例如:
CXX=g++
CXXFLAGS=-std=c++11 -Wall -pedantic
all: my_program
my_program: main.cpp
$(CXX) $(CXXFLAGS) $^ -o $@
run: my_program
./$<
.PHONY: clean
clean:
rm -f my_program
在这个例子中,make
命令会编译main.cpp
(假设这是你的主文件),make run
会编译并运行程序。
你可以使用Vim的:map
命令来设置快捷键。不过,更推荐使用:nnoremap
来避免递归映射。
编译快捷键:
假设你已经有了Makefile,你可以创建一个快捷键来运行make
命令。
nnoremap <F5> :!make<CR>
这里<F5>
是快捷键(你可以根据需要换成其他键),:!
用于执行外部命令,<CR>
表示回车。
编译并运行快捷键(如果你没有使用Makefile的run
目标,你可能需要稍作修改):
nnoremap <F6> :!make && ./my_program<CR>
注意,这里的./my_program
假设你的可执行文件名是my_program
。如果你的文件名不同,或者你想使其更通用,你可以使用Vim的%:r
来引用当前文件的根名(去掉扩展名),但这通常不适用于执行编译后的程序,因为编译后的程序名可能与源文件不同。
对于更复杂的场景,你可以编写一个Vim脚本来检测编译后的文件名并运行它,但这通常超出了简单快捷键的范围。
使用%
引用当前文件:
如果你需要在Vim的外部命令中引用当前文件,你可以使用%:p
来获取当前文件的完整路径,或者%
来在支持的文件名上下文中使用它(尽管在直接执行外部命令时通常不这样用)。
~/.vimrc
文件中。3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
3 回答3.4k 阅读