在下面由 表示的 vim 窗口中,如何从函数中visible area获取X相对于 的水平位置?Y
Y------------------------+
1 File contents |
| |
| +-X--------------+ |
| |4| | |
| |5| Visible area | |
| |6| | |
| +-+--------------+ |
$ ^ |
+----|-------------------+
\
line numbers
Run Code Online (Sandbox Code Playgroud)
例如,相对的垂直位置是四,因为窗口中向下滚动四行。我可以将其作为从零开始的索引。XYline("w0") - 1
我如何确定在给定时刻窗口向右滚动了多少列?我已经尝试过virtcol(".") - wincol(),但如果光标位于双角字符上,那么仅此一点就会稍微偏离。
如果您想要数字列宽度,请使用max([len(line(\'$\')), &numberwidth])+1.
\xe2\x80\x9水平位置\xe2\x80\x9d 是什么意思?wincol()是窗口中的水平位置,col(".")是距行开头的字节偏移量,strchars(getline(\'.\')[:(col(\'.\')-1)])是距行开头的 unicode 代码点数,len(split(getline(\'.\')[:(col(\'.\')-1)], \'.\\@=\'))是距行开头的字符数。