gpt4 book ai didi

Vim:如何恢复光标的逻辑和物理位置?

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

打开文件时如何恢复光标的“逻辑”和“物理”位置?

那是:

  • 光标应该在文件中的最后一个逻辑行上。
  • 根据vim窗口
  • 光标应该在最后一次物理行上

    我已通知 this post .它确实将光标放在正确的逻辑行上。但是光标在窗口中的物理位置是第一行或者中间。

    更新 :
    解决方法是 mkviewloadview正如@sehe 所指出的。

    要使其与其他插件一起使用(在我的情况下, latex 文件 + latex-box ),以下内容将很有用:
    au BufWinLeave *.tex mkview au VimEnter *.tex loadview
    来自 VimEnter 的 Vim 文档:
  • 完成所有启动工作后,包括加载 .vimrc文件,执行“-c cmd”参数,创建所有窗口并在其中加载缓冲区。

  • 更新2 :为了更好地组织“ View 快照文件”

    通过创建文件夹 ~/.vim/view ,您将保留所有“ View 快照文件”。

    如果您正在使用 git同步 ~/.vim跨计算机,也许你想
  • 忽略 ~/.vim/view 中的文件,
  • 但将空文件夹保留在您的 repo 中。

  • 那么你需要(根据答案添加 here )
  • 创建一个空文件:~/.vim/view/.gitignore
  • view/* , 和 !.gitignore~/.vim/.gitignore
  • 最佳答案

    好消息,:mkview已经有了这个(见下面的文档摘录)。

    最特别 :loadview如果 viewoptions,则恢复滚动位置和折叠状态包括 cursor,folds .

    更好的消息是,如果您愿意,您可以透明地为所有打开的文件启用 View 。例如要为所有 C 源文件启用 View 保存,请将其添加到 $MYVIMRC:

    au BufWinLeave *.c mkview
    au BufWinEnter *.c silent loadview

    编辑 根据红英的评论,结合某些插件,如果您使用 VimEnter 可能会更好地工作用于加载 View 的自动命令。

    可以选择使用 viewdir选项来定义保存 View 的位置。

    也一定要看 :mksession 因为它更强大,因为它可以恢复多个窗口、选项卡及其位置、映射、寄存器、选项、折叠状态等。

    工作原理

    Vim :mkview保存 ex 命令以恢复位置,如下所示:
    silent! normal! zE
    let s:l = 88 - ((4 * winheight(0) + 4) / 9)
    if s:l < 1 | let s:l = 1 | endif
    exe s:l
    normal! zt
    88
    normal! 025l
    :loadview只需获取这些命令,就像任何 vimscript 一样。

    从文档

    备注 这是从文档中剪辑的,请确保阅读更多内容 he :mkview
                                *:mkvie* *:mkview*
    :mkvie[w][!] [file] Write a Vim script that restores the contents of the
    current window.
    When [!] is included an existing file is overwritten.
    When [file] is omitted or is a number from 1 to 9, a
    name is generated and 'viewdir' prepended. When the
    last directory name in 'viewdir' does not exist, this
    directory is created.
    An existing file is always overwritten then. Use
    |:loadview| to load this view again.
    When [file] is the name of a file ('viewdir' is not
    used), a command to edit the file is added to the
    generated file.

    The output of ":mkview" contains these items:
    1. The argument list used in the window. When the global argument list is
    used it is reset to the global list.
    The index in the argument list is also restored.
    2. The file being edited in the window. If there is no file, the window is
    made empty.
    3. Restore mappings, abbreviations and options local to the window if
    'viewoptions' contains "options" or "localoptions". For the options it
    restores only values that are local to the current buffer and values local
    to the window.
    When storing the view as part of a session and "options" is in
    'sessionoptions', global values for local options will be stored too.
    4. Restore folds when using manual folding and 'viewoptions' contains
    "folds". Restore manually opened and closed folds.
    5. The scroll position and the cursor position in the file. Doesn't work very
    well when there are closed folds.
    6. The local current directory, if it is different from the global current
    directory.

    关于Vim:如何恢复光标的逻辑和物理位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8854371/

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