vimscript:完成vim寄存器
我一直在想,如何制作vim快捷方式,使完成弹出最常见/所有寄存器的内容。现在这就是我所知道的vimscript:完成vim寄存器,vim,Vim,我一直在想,如何制作vim快捷方式,使完成弹出最常见/所有寄存器的内容。现在这就是我所知道的 fun! Reg_to_list(findstart,base) let l:regs=[]
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空格,这样元素就会出现在列表中
- 不粘贴换行符