我想创建一个Vim函数,为所有选定的行添加一些文本(比使用C-V I
等更快。)。
我没有编写脚本的经验,并找到了这篇很棒的文档:http://www.ibm.com/developerworks/linux/library/l-vim-script-1/index.html而且这个问题:How can I prepend text in the middle of the line to multiple lines in Vim?
我想我会使用input
来获取前缀的文字,然后使用:'<,'>s/^/prefix_text/
来执行实际的前缀,但我不知道如何提供prefix_text
作为替代表达式中的变量。
我尝试了这个非常天真的解决方案(显然,它不起作用,因为它仅将input("Enter prefix text: ")
附加到当前行):
" Prefix lines
command PrefixLines call <SID>PrefixLines()
function! <SID>PrefixLines()
'<,'>substitute/^/input("Enter prefix text: ")/
endfunction
感谢您的帮助!
答案 0 :(得分:5)
下面的Vim脚本实现了以下描述的命令 问题
command! -range -bar Prepend <line1>,<line2>call PrefixLines()
function! PrefixLines() range
call inputsave()
let t = input('Prefix: ')
call inputrestore()
exe a:firstline.','.a:lastline 's/^/\=t'
endfunction