gpt4 book ai didi

Vim 脚本 : Buffer/CheatSheet Toggle

转载 作者:行者123 更新时间:2023-12-04 08:29:34 24 4
gpt4 key购买 nike

我想做一个vim备忘单插件。真的很简单:

  • 我想切换我的备忘单。 vertsplit 切换,如 Taglist 或 NERDTree。
  • 我希望备忘单是特定于文件类型的。所以当我打开一个 .cpp 文件时,我会切换我的 c++ 备忘单。
  • 我希望将备忘单水平拆分。所以它显示了两个文件,我的语法备忘单和我的代码片段触发器备忘单。

  • 我已经收集了 vimhelp 格式的这些备忘单,但现在我必须手动打开它们。

    我还没有真正编写过任何 vim 脚本,但我想这将非常简单。我有点厌倦谷歌搜索无关的代码片段,所以我在这里问的是:
  • 任何人都可以给我一个简短的总结,说明我在 vim 脚本方面需要学习的知识才能将它们拼凑起来。我很难找到的是如何切换缓冲区窗口。
  • 如果您知道任何介绍教程涵盖了我启动和运行所需的 Material ,请提供链接。

  • 发送,

    事件

    最佳答案

    下面的函数可能不完全符合你的要求,我还没有测试过,但它应该给你一些想法。

    主要思想是该函数读取当前缓冲区的文件类型(您可以通过键入 :echo &ft 来测试),然后设置适当的备忘单的路径。如果存在,则此路径将在拆分窗口中打开(只读且不可修改)。然后,您可以按您希望的任何方式调用此函数,例如将其映射到 {F5} 键,如图所示。

    我不确定切换的可能性(这真的比关闭拆分窗口更容易吗?)但您可以查看 bufloaded() 函数,该函数返回当前是否正在访问给定文件。

    function! Load_Cheat_Sheet()
    let l:ft = &ft

    if l:ft == 'html'
    let l:path = 'path/to/html/cheat/sheet'
    elseif l:ft == 'c'
    let l:path = 'path/to/c/cheat/sheet'
    elseif l:ft == 'tex'
    let l:path = 'path/to/tex/cheat/sheet'
    endif

    if l:path != '' && filereadable(l:path)
    execute ':split +setlocal\ noma\ ro ' l:path
    endif
    endfunction

    map <F5> :call Load_Cheat_Sheet()<CR>

    希望这可以帮助。如果有任何不清楚的地方,或者您想了解更多,请大喊大叫。

    关于Vim 脚本 : Buffer/CheatSheet Toggle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194994/

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