分页: 1 / 2
[已解决]怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 12:44
由 iny
比如某个vim插件又一个函数如下
代码: 全选
function! <SID>ColorSchemeExplorer()
......
endfunction
我想在vimrc中定义一个快捷键来调用这个函数,但是没成功,我是这样做的:
代码: 全选
nmap <C-F11> :call <SID>ColorSchemeExplorer()<CR>
提示“Unknown function: ......”
Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 12:50
由 lilydjwg
<SID>即表示局限于脚本的(Script Id),在外部是不可见的,所以嘛,你只能先去改了源代码。
Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 18:01
由 iny
lilydjwg 写了:<SID>即表示局限于脚本的(Script Id),在外部是不可见的,所以嘛,你只能先去改了源代码。
请问要怎么改?我在插件中去掉了<SID>,然后在vimrc中响应的也去掉,还是提示函数没定义
Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 20:51
由 lilydjwg
很奇怪!
你这样看看:
代码: 全选
:function ColorSchemeExplorer
Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 21:06
由 iny
还是没成功,我把这个插件放上来麻烦帮我看看,很简单的插件,我只是想给这个插件定义一个快捷键,免得每次调用这个插件都要在命令行输入:ColorSchemeExplorer,太长记不住,而且也麻烦
Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 21:18
由 sarrow
没有必要修改这个脚本——你直接把:ColorSchemeExplorer再绑定一个键就行了。
比如:
nnoremap <C-F11> :ColorSchemeExplorer<CR>
另外,你这个脚本有点鸡肋的味道。
:colorscheme <Tab>
多按几个tab,vim自动就给你补全出来了,不用打什么字。为了“改变colorscheme”这种不常用的功能而用掉一个绑定键位,我觉得划不来。
Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 21:23
由 sarrow
送你几个好用的函数:
function! MySys() " return OS type, eg: windows, or linux, mac, et.st.. {{{1
if has("win16") || has("win32") || has("win64") || has("win95")
return "windows"
elseif has("unix")
return "linux"
endif
endfunction " }}}1
function <SID>FontSize_Enlarge()
if MySys() == "linux"
let pattern = '\<\d\+$'
elseif MySys() == "windows"
let pattern = ':h\zs\d\+\ze:'
endif
let fontsize = matchstr(&gfn, pattern)
let cmd = substitute(&gfn, pattern, string(fontsize + 1), 'g')
let &gfn=cmd
let fontsize = matchstr(&囗囗囗, pattern)
let cmd = substitute(&囗囗囗, pattern, string(fontsize + 1), 'g')
let &囗囗囗=cmd
endfunction
nnoremap <A-+> :call <SID>FontSize_Enlarge()<CR>
function <SID>FontSize_Reduce()
if MySys() == "linux"
let pattern = '\<\d\+$'
elseif MySys() == "windows"
let pattern = ':h\zs\d\+\ze:'
endif
let fontsize = matchstr(&gfn, pattern)
let cmd = substitute(&gfn, pattern, string(fontsize - 1), 'g')
let &gfn=cmd
let fontsize = matchstr(&囗囗囗, pattern)
let cmd = substitute(&囗囗囗, pattern, string(fontsize - 1), 'g')
let &囗囗囗=cmd
endfunction
nnoremap <A--> :call <SID>FontSize_Reduce()<CR>
把这三个函数,添加到你的vimrc文件中,就能支持用<A-+><A-->来修改字体大小了。个人感觉还是非常实用的。
Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 21:25
由 iny
sarrow 写了:没有必要修改这个脚本——你直接把:ColorSchemeExplorer再绑定一个键就行了。
比如:
nnoremap <C-F11> :ColorSchemeExplorer<CR>
另外,你这个脚本有点鸡肋的味道。
:colorscheme <Tab>
多按几个tab,vim自动就给你补全出来了,不用打什么字。为了“改变colorscheme”这种不常用的功能而用掉一个绑定键位,我觉得划不来。
我晕,我一直不知道有这个功能,太感谢了,可以扔掉ColorSchemeExplorer这个插件了!

Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 21:31
由 sarrow
这个bbs的系统实在是太怪了。
注:&【G×F×W】= & g f w
没有中间的空格
Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 21:33
由 sarrow
晕掉!“g f w” 还是被替换了!不知道触了哪根筋?!
Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 21:52
由 iny
sarrow 写了:送你几个好用的函数:
function! MySys() " return OS type, eg: windows, or linux, mac, et.st.. {{{1
if has("win16") || has("win32") || has("win64") || has("win95")
return "windows"
elseif has("unix")
return "linux"
endif
endfunction " }}}1
function <SID>FontSize_Enlarge()
if MySys() == "linux"
let pattern = '\<\d\+$'
elseif MySys() == "windows"
let pattern = ':h\zs\d\+\ze:'
endif
let fontsize = matchstr(&gfn, pattern)
let cmd = substitute(&gfn, pattern, string(fontsize + 1), 'g')
let &gfn=cmd
let fontsize = matchstr(&【G×F×W】, pattern)
let cmd = substitute(&【G×F×W】, pattern, string(fontsize + 1), 'g')
let &【G×F×W】=cmd
endfunction
nnoremap <A-+> :call <SID>FontSize_Enlarge()<CR>
function <SID>FontSize_Reduce()
if MySys() == "linux"
let pattern = '\<\d\+$'
elseif MySys() == "windows"
let pattern = ':h\zs\d\+\ze:'
endif
let fontsize = matchstr(&gfn, pattern)
let cmd = substitute(&gfn, pattern, string(fontsize - 1), 'g')
let &gfn=cmd
let fontsize = matchstr(&【G×F×W】, pattern)
let cmd = substitute(&【G×F×W】, pattern, string(fontsize - 1), 'g')
let &【G×F×W】=cmd
endfunction
nnoremap <A--> :call <SID>FontSize_Reduce()<CR>
把这三个函数,添加到你的vimrc文件中,就能支持用<A-+><A-->来修改字体大小了。个人感觉还是非常实用的。
出现很多错误,【G×F×W】里面的符号都是全角的,是不是这个错了?
Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 21:55
由 lilydjwg
把那个换成小写字母啦!
Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 21:59
由 iny
原来是被论坛屏蔽了
不过我按<A-+><A-->没反应,只是看到屏幕小小的闪动,我用的是Gvim,在Windows下
Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 22:07
由 lilydjwg
我这里看到大大的闪动,外加蜂鸣

Re: 怎么在vimrc中调用vim插件中的一个函数?
发表于 : 2009-06-04 22:12
由 iny
lilydjwg 写了:我这里看到大大的闪动,外加蜂鸣

嘿嘿,一样,Alt + -是闪动,Alt + +是蜂鸣
