gpt4 book ai didi

vim - 如何针对不同类型的缓冲区以不同方式映射vim中的键

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

我面临的问题是我已经映射了一些键和鼠标事件,以便在编辑文件时在vim中进行搜索。但是这些映射会影响快速修复缓冲区的功能。

我想知道是否有可能根据使用它们的缓冲区来映射键。
EDIT-我为此问题添加了更多信息
让我们考虑一个场景。我想映射<C-F4>以关闭缓冲区/窗口。现在,此行为可能取决于许多因素。

如果我正在编辑缓冲区,则应仅关闭该缓冲区而不更改窗口的布局。我为此使用buffkil插件。

它不取决于文件扩展名,而是取决于缓冲区的类型。我在vim文档中看到有未列出和列出的缓冲区。因此,如果列出了缓冲区,则应使用bufkill命令将其关闭。

如果不是列出的缓冲区,则应使用<c-w>c命令关闭缓冲区并更改窗口布局。

我是写vim函数/脚本的新手,有人可以帮助我入门吗?

最佳答案

function KillBuffer()
if &buflisted
" bufkill command here
else
execute "normal! \<C-w>c"
endif
endfunction
noremap <C-F4> :call KillBuffer()<CR>

把它放在你的.vimrc中
或者,如果您想将quickfix窗口作为未列出的缓冲区处理(在我的Vim中已列出):
function KillBuffer()
if &buflisted && !&filetype=="qf"
" bufkill command here
else
execute "normal! \<C-w>c"
endif
endfunction
noremap <C-F4> :call KillBuffer()<CR>

根据手册,您可以在上述脚本中将 execute "normal! \<C-w>c"替换为更简单的 close!

关于vim - 如何针对不同类型的缓冲区以不同方式映射vim中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2434076/

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