当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 关于Vim脚本的一个问题:根据文件类型的不同引用不同的命令到命令区(不执行)
帖子发表于 : 2012-03-19 18:12 

注册: 2011-06-08 13:26
帖子: 12
送出感谢: 2
接收感谢: 0 次
我想实现如下功能,按F10。Vim会根据文件类型的不同自动将编译命令引到命令区(不执行),这样方便我修改编译参数。
按F11,则根据文件类型将编译好的文件引到命令区(不执行),方便我加参数或者重定向,如果是一般程序则直接引程序名,如果是java程序,则引"java +文件名"

这是我自己实现这功能的vimrc的片段,但是不起作用,似乎在启动的时候不能判断文件类型?请问该怎么办?谢谢大家了!


if &filetype=="c"
map <F10> <Esc>:!gcc % -Wall -ansi -Wmain -lm -o %<
map <F11> <Esc>:!%<
elseif &filetype=="cpp"
map <F10> <Esc>:!g++ % -Wall -ansi -Wmain -o %< -lm
map <F11> <Esc>:!%<
elseif &filetype=="java"
map <F10> <Esc>:!javac %
map <F11> <Esc>:!java %<
endif


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 关于Vim脚本的一个问题:根据文件类型的不同引用不同的命令到命令区(不执行)
帖子发表于 : 2012-03-19 20:29 
头像

注册: 2009-04-11 23:46
帖子: 4130
系统: Arch Linux
送出感谢: 11
接收感谢: 124
你得弄清楚 vimrc 是 Vim 启动时执行的。其实,你可以把特定类型的配置写到 ftplugin/<filetype>.vim 里。或者使用自动事件
代码:
autocmd BufRead *.c map <buffer> blahblahblah

好好看文档吧。PS: 文档有简体中文的,关键字 vimcdoc。


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc



_________________
评价: 3.7% aikilis
 
页首
 用户资料  
 
3 楼 
 文章标题 : Re: 关于Vim脚本的一个问题:根据文件类型的不同引用不同的命令到命令区(不执行)
帖子发表于 : 2012-03-19 20:40 

注册: 2006-01-19 20:47
帖子: 6
送出感谢: 0 次
接收感谢: 2
可以这样:
代码:
function g:compileByFileType()
  if &filetype=="c"
    map <F10> <Esc>:!gcc % -Wall -ansi -Wmain -lm -o %<
    map <F11> <Esc>:!%<
  elseif &filetype=="cpp"
    map <F10> <Esc>:!g++ % -Wall -ansi -Wmain -o %< -lm
    map <F11> <Esc>:!%<
  elseif &filetype=="java"
    map <F10> <Esc>:!javac %
    map <F11> <Esc>:!java %<
  endif
endfunction
autocmd FileType * call g:compileByFileType()

试过可以,但为什么你的写法不行,我也不太清楚,我也是初学者。另外如果不想懒省事的话,可以把最后的 * 分别改为 c,cpp,java写三行.



_________________
评价: 3.7% aikilis
 
页首
 用户资料  
 
4 楼 
 文章标题 : Re: 关于Vim脚本的一个问题:根据文件类型的不同引用不同的命令到命令区(不执行)
帖子发表于 : 2012-03-19 21:04 

注册: 2011-06-08 13:26
帖子: 12
送出感谢: 2
接收感谢: 0 次
lilydjwg 写道:
你得弄清楚 vimrc 是 Vim 启动时执行的。其实,你可以把特定类型的配置写到 ftplugin/<filetype>.vim 里。或者使用自动事件
代码:
autocmd BufRead *.c map <buffer> blahblahblah

好好看文档吧。PS: 文档有简体中文的,关键字 vimcdoc。

自动事件搞定,谢谢!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 0 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译