gpt4 book ai didi

vim - 在vim编辑器上获取拆分窗口的位置

转载 作者:行者123 更新时间:2023-12-04 04:26:53 25 4
gpt4 key购买 nike

我一直在尝试找出如何在vim编辑器窗口中获取splitt窗口的位置/坐标,但是到目前为止还没有运气。

例如说我有这个布局

     (0,0)         (2, 0)           
\____________/____________
| | |
| Split A | Split C |
(0,2)-+------------+----------+
| Split B | Split D |
|____________|__________| #Split D would be (2, 2)

我想在我的Vim窗口上获取不同分割的坐标,这可能吗?

我已经完成作业并在Google上进行了搜索,还通过了vim :help/ :helpgrep
我尝试过的事情不起作用:
  • getwinposx()/getwinposy():它们在终端上不起作用,并且实际上不返回我想要的信息,它只是返回主机OS窗口的位置。
  • :winpos:与上一个项目符号相同的原因。
  • 最佳答案

    我不知道会执行此操作的函数,但以下是一些事实:

  • 可以使用winwidth(wnr)winheight(wnr)获得窗口大小。
  • 可以使用winnr('$')获得窗口数。
  • 如果为0<wnr≤winnr('$'),则存在编号为wnr的窗口。
  • 总宽度为&columns,总高度为&lines
  • Windows由一列或单行分隔符分隔。

  • 为了获得窗口布局,您在这里仅缺少一个事实:窗口的编号方式。我现在无法在帮助中找到它。
    :h CTRL-W_w

    指出窗口从左上角到右下角编号。尽管仅确定执行以下命令后如何编号窗口是不够的:
    only
    enew
    vnew
    new
    wincmd h
    new
    " Result:
    " +---+---+
    " | 1 | 3 |
    " +---+---+
    " | 2 | 4 |
    " +---+---+
    only
    enew
    new
    vnew
    wincmd j
    vnew
    " Result:
    " +---+---+
    " | 1 | 2 |
    " +---+---+
    " | 3 | 4 |
    " +---+---+

    因此,看起来如果不使用窗口移动命令( wincmd h/j/k/l),就无法确定当前的窗口布局。

    不久前引入了另一个变体: pyeval(printf('(lambda win: [win.col, win.row])(vim.windows[%s - 1])', winnr))(也为 py3eval(…))将提供窗口 winnr左上角的确切位置。需要使用 +python[/dyn]+python3[/dyn]和Python本身编译的Vim。

    关于vim - 在vim编辑器上获取拆分窗口的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8070850/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com