vimscript:完成vim寄存器

vimscript:完成vim寄存器,vim,Vim,我一直在想,如何制作vim快捷方式,使完成弹出最常见/所有寄存器的内容。现在这就是我所知道的 fun! Reg_to_list(findstart,base) let l:regs=[]

我一直在想,如何制作vim快捷方式,使完成弹出最常见/所有寄存器的内容。现在这就是我所知道的

fun! Reg_to_list(findstart,base)                                                                                                                                         
    let l:regs=[]                                                                                                                                                        
    let l:lvals=["+","%","0","1","2","3","4","5","6","7","8","9",":","*"]                                                                                                
    for a in range(0,len(l:lvals)-1)                                                                                                                                     
        let l:tmpval=substitute(getreg(l:lvals[a]),'^ *\(.*\)','\1','')                                                                                                  
        if ( l:tmpval =~ "[[:graph:]]" )                                                                                                                                 
            call add(l:regs, l:tmpval)                                                                                                                                   
        endif                                                                                                                                                            
    endfor                                                                                                                                                               
    return uniq(l:regs)                                                                                                                                                  
endfun                                                                                                                                                                   

inoremap <C-\> <C-x><C-u>                                                                                                                                                 
有趣!注册到列表(findstart,base)
设l:regs=[]
设l:lvals=[“+”,“%”,“0”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“:”,“*”]
对于范围(0,len(l:lvals)-1)内的a
设l:tmpval=substitute(getreg(l:lvals[a]),'^*\(.*\'),'\1','')
如果(l:tmpval=~“[:图形:]”)
呼叫添加(l:regs,l:tmpval)
恩迪夫
结束
返回uniq(l:regs)
结束
inoremap
但我有三个问题:

  • 我无法在缓冲区加载时将completefunc设置为Reg_to_列表
  • 我必须删除perpending空格,这样元素就会出现在列表中
  • 不粘贴换行符

请注意,您正在向函数传递两个参数,但不使用其中任何一个them@Sergio这是因为我想把它映射到completefunc,它需要2个参数。