command 定义的命令怎么把range 传给它调用的函数?

Vim、Emacs配置和使用
回复
头像
qinglangee
帖子: 137
注册时间: 2008-10-25 5:04

command 定义的命令怎么把range 传给它调用的函数?

#1

帖子 qinglangee » 2011-10-09 17:05

代码如下, 用鼠标选中部分内容,再用快捷键调用函数的话, begin 和 end 可以收到值
用 :3,5Comment 这样的形式调用,就不能收到值,只得到默认值,当前行.
用命令行调用的话,该怎么把range传给调用的函数呢

代码: 全选

if !exists(":Comment")
    command -range Comment :call s:Comment() 
endif


function s:Comment() range
    let begin = a:firstline
    let end = a:lastline
endfunction
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: command 定义的命令怎么把range 传给它调用的函数?

#2

帖子 lilydjwg » 2011-10-09 22:07

代码: 全选

:<line1>,<line2>call xxx
话说,你们都没看过我的 vimrc 么?
头像
qinglangee
帖子: 137
注册时间: 2008-10-25 5:04

Re: command 定义的命令怎么把range 传给它调用的函数?

#3

帖子 qinglangee » 2011-10-09 22:47

是的,没看过 :em03 之前基本只用它的默认功能 :em06
回复