我正在尝试找到我正在Vim编辑的文件的名称。所以我可以用它来映射F5来编译这个文件。如果我能识别文件格式,并且选择相应的编译器,当然会很棒,但实际上并不是必需的。如果我找到该文件的名称,我可以自己做。但是我真的找不到任何方式来获取我正在编辑的文件的名称。
我知道:make命令,并已经映射了,但对于小脚本/测试程序,我真的不想先写一个简单的makefile。
我试图找到我正在vim内编辑的文件的名称。
echo "You're editing " bufname("%")
(只是把它放在一些file.vim中,并将其引用为“:so%”,但我不认为这是你需要的。
所以我可以用它来映射F5来编译这个文件,以供测试。当然,如果我能识别文件格式,并且选择相应的编译器,那么当然会很棒,但实际上并不是必需的。如果我找到该文件的名称,我可以自己做。但是我真的找不到任何方式来获取我正在编辑的文件的名称。
你可以做几件事情如果vim识别您正在编辑的文件类型,则可以将F5映射到编译器命令,并将该命令放在其特定的ftplugin目录中,因此它将仅对该文件类型有效。例如,你把
nmap <f5> :!compilername %<cr>
在cpp.vim中,fortran.vim,python.vim …(当然不一样的命令,你不会用cpp编译器编译fortran,你在这种情况下放Fortrancompiler%)
这将像你在命令提示符编译器文件file.cpp(%给出您正在编辑的当前文件的名称)
这是一个选择。您还可以根据vimrc中的扩展名设置autocmd命令进行尝试,以便根据文件的扩展名识别文件类型。这是vim的所有标准用法,没什么不寻常的。现在,我不知道你想要怎么做,所以我只想指出你到Vim Wiki,你可以在这里找到涵盖这一点的各种文章(以及一些编译器的一些提示)。
我知道:make命令,并已经映射了,但对于小脚本/测试程序,我真的不想先写一个简单的makefile。
是的,这似乎过度杀伤。个人(当我在Win时),我发现简单的批处理文件比大项目更容易编写,如果程序在一个或两个文件中,我只是使用一些oneliner映射进行编译。