Vim 如何实现像codeblocks一样的按F9直接编译运行?

Vim、Emacs配置和使用
afphoenix
帖子: 153
注册时间: 2009-01-07 15:19

Vim 如何实现像codeblocks一样的按F9直接编译运行?

#1

帖子 afphoenix » 2009-08-06 10:49

我是一个搞ACM的,经常要编译写好的(小)程序。
比如我在编辑一个 ttt.cpp
写好了按 F9
就直接运行

代码: 全选

 g++ -Wall -g ttt.cpp -o ttt.o
请问各位大大,这要怎么实现? :em11
不用自动识别文件类型,只要把F9绑定就好了
大家好,我是计算机系大学生,玩电脑也 7.8 年了吧,可是这个系统为什么XXX,就不能XXX,连我这种XXX都XXX,怎么能够推广,看来XXX路还很长XXX,搞不懂你们这些XXX,再见了XXX
头像
dieyushi
帖子: 87
注册时间: 2008-11-06 10:41

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#2

帖子 dieyushi » 2009-08-06 10:59

代码: 全选

map <silent> <F9> :!g++ %:r.c* -o %:r -Wall  -g&& ./%:r<cr>
当你眼泪忍不住要流出来的时候,睁大眼睛,千万别眨眼,你会看到世界由清晰变模糊的全过程,心会在你泪水落下的那一刻变得清澈明晰……
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#3

帖子 O_O_BOT » 2009-08-06 11:10

irc <iol> say: :help map
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
头像
O_O_BOT
帖子: 2461
注册时间: 2009-05-20 19:32

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#4

帖子 O_O_BOT » 2009-08-06 11:16

用makefile把
irc 聊天室
ubuntu-cn 的irc 频道为
irc.ubuntu.com 8001 #ubuntu-cn
UTF8编码 可用 irssi xchat pidgin weechat 登录

http://webchat.freenode.net/?channels=ubuntu-cn
[url]irc://irc.freenode.net/ubuntu-cn[/url]
头像
ask_me
帖子: 374
注册时间: 2009-03-22 9:54

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#5

帖子 ask_me » 2009-08-06 11:28

把下面的配置加进~/.vimrc

代码: 全选

"===============Compile the C++ file==========
map <F9> :call CompileRunGplusplus()<CR>
func! CompileRunGplusplus()
exec "w" 
exec "!g++ -Wall % -o %<"
exec "! ./%<"
endfunc 
头像
dwl301
帖子: 1130
注册时间: 2007-04-14 11:17

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#6

帖子 dwl301 » 2009-08-06 11:49

ask_me 写了:把下面的配置加进~/.vimrc

代码: 全选

"===============Compile the C++ file==========
map <F9> :call CompileRunGplusplus()<CR>
func! CompileRunGplusplus()
exec "w" 
exec "!g++ -Wall % -o %<"
exec "! ./%<"
endfunc 
恩恩,太好了。。。。原先没考虑到用map。。。 :em11
afphoenix
帖子: 153
注册时间: 2009-01-07 15:19

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#7

帖子 afphoenix » 2009-08-06 12:18

多谢楼上几位~我回去试试 :em05
大家好,我是计算机系大学生,玩电脑也 7.8 年了吧,可是这个系统为什么XXX,就不能XXX,连我这种XXX都XXX,怎么能够推广,看来XXX路还很长XXX,搞不懂你们这些XXX,再见了XXX
afphoenix
帖子: 153
注册时间: 2009-01-07 15:19

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#8

帖子 afphoenix » 2009-08-06 12:20

我要是想映射

Ctrl+F9呢?

是不是

代码: 全选

^F9
?
还是

代码: 全选

C-F9
?
大家好,我是计算机系大学生,玩电脑也 7.8 年了吧,可是这个系统为什么XXX,就不能XXX,连我这种XXX都XXX,怎么能够推广,看来XXX路还很长XXX,搞不懂你们这些XXX,再见了XXX
头像
Strange
帖子: 1824
注册时间: 2006-05-19 9:54
来自: Shanghai

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#9

帖子 Strange » 2009-08-06 15:00

我要是想映射
Ctrl+F9呢?

代码: 全选

:map <c-f9>
不过个人觉得还是写makefile,f9绑定到make上比较合理
ニンニク入れますか?
x60 with gentoo
afphoenix
帖子: 153
注册时间: 2009-01-07 15:19

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#10

帖子 afphoenix » 2009-08-06 17:06

那岂不是每个程序都要写一个makefile?
...我们写的都是些小程序~一天写四五个那种 :em06
一个一个makefile太麻烦了

嗯,还有问题,如果在vim中调用了shell命令,那么vim会一直等待命令结束再继续,能不能让vim调用之后不理他继续编辑? :em11
大家好,我是计算机系大学生,玩电脑也 7.8 年了吧,可是这个系统为什么XXX,就不能XXX,连我这种XXX都XXX,怎么能够推广,看来XXX路还很长XXX,搞不懂你们这些XXX,再见了XXX
afphoenix
帖子: 153
注册时间: 2009-01-07 15:19

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#11

帖子 afphoenix » 2009-08-07 8:15

顶起顶起~ :em11

请大家看看我在10楼(就是楼上 :em06 )的问题
大家好,我是计算机系大学生,玩电脑也 7.8 年了吧,可是这个系统为什么XXX,就不能XXX,连我这种XXX都XXX,怎么能够推广,看来XXX路还很长XXX,搞不懂你们这些XXX,再见了XXX
头像
Strange
帖子: 1824
注册时间: 2006-05-19 9:54
来自: Shanghai

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#12

帖子 Strange » 2009-08-07 8:49

make支持通配符,写写好就可以自动编译这个目录下所有c文件
ニンニク入れますか?
x60 with gentoo
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#13

帖子 eexpress » 2009-08-07 8:56

有make,记得ctrl-enter就编译的。现在不见了。我都奇怪。
make支持一个系列的文件,相关的编译啊。而且不重复编译的。
● 鸣学
afphoenix
帖子: 153
注册时间: 2009-01-07 15:19

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#14

帖子 afphoenix » 2009-08-07 9:17

欢迎大家提供更好的方法~ :em04
对ee说的很好奇~10楼的问题,自己解决了,虽然不那么完美吧...
大家好,我是计算机系大学生,玩电脑也 7.8 年了吧,可是这个系统为什么XXX,就不能XXX,连我这种XXX都XXX,怎么能够推广,看来XXX路还很长XXX,搞不懂你们这些XXX,再见了XXX
头像
ChloeRei
帖子: 1021
注册时间: 2007-11-23 9:49

Re: Vim 如何实现像codeblocks一样的按F9直接编译运行?

#15

帖子 ChloeRei » 2009-08-08 2:59

make是正道,趁文件少的时候手写练练

:em09 以后自动生成没得练……
回复