【发布时间】:2012-04-07 19:20:11
【问题描述】:
我正在尝试创建一个允许我选择几行并围绕它创建一个虚拟编辑块的脚本;最长行之后的 1 列。
这是我的代码
function! VirtualEdit()
let EndLine = line("'>")
set virtualedit = all
let maxlength = max(map(range(line("'<"), line("'>")), "virtcol([v:val, '$'])"))-1
call cursor(1,maxlength+1)
normal "^Q".EndLine."jc<space><ESC>"
set virtualedit = ''
endfunction
它必须做的是
1) 控制我的选择中最长的线 (maxlength)。
2)将光标放在选择中的第一行最长行+1列的列。
3) 比激活可视块选择(在我的 Windows 电脑上,命令是 C-Q)
4) 将可视块扩展到选择的最后一行(我的电脑上用于向下移动的命令 = "j")。
5)然后使用“c”键插入“空格”字符并使用ESC退出插入模式,以便用空格填充虚拟块列。
但是我不知道如何在普通命令中使用变量(Endline)。
我还注意到,在我上面的示例中,键作为并且不起作用。
我做错了什么?
【问题讨论】: