vim - 获取所有 vim 缓冲区,同时将我的窗口/缓冲区保持在同一个地方?
问题描述
基本上,我想在处理 vim 脚本时不退出 vim 来获取我所有的 vim 文件。我明白我能做到so ~/somefile.vim
。我的代码有效,但它总是让我处于不同的窗口和缓冲区。
这是我到目前为止所拥有的:
在 vimrc 中
map <leader>r :call Reload()<cr>
在函数.vim
if !exists("*Reload")
fu! Reload()
fu! Refresh()
if &ft == 'vim'| silent so % | endif
endfu
messages clear
:bufdo call Refresh()
source ~/.vimrc
:wa
:noh
endfu
endif
我尝试在开始时设置当前缓冲区,然后尝试稍后恢复当前缓冲区,但它不起作用,因为我认为采购是异步发生的?
let s:buf_now = bufnr()
execute "normal! :b" . s:buf_now
解决方法可能是创建一个函数,用缓冲区和窗口 ids 函数恢复我的窗口?添加mksession?scriptease ```运行时` ? 不确定最好的方法是什么。
解决方案
根据菲尔布兰登的回答:
if !exists("*ReloadVimBuffers")
function! ReloadVimBuffers()
wa
noh
messages clear
for i in range(1, bufnr('$'))
let fname = bufname(i)
if fname =~# '^.*\.vim'
silent execute 'source ' . fname
endif
endfor
endfunction
endif
推荐阅读
- angular - Nativescript/Angular TextView 如何禁止某些值?
- windows - 有没有办法使用 rust 为 windows 设置环境变量
- python - wsgi:error ModuleNotFoundError: No module named 'django'
- ios - agora + Photon Voice = 糟糕的体验
- swift - WEBRTC 如何从相机库中捕获视频?
- laravel - Laravel 资产文件夹和引导程序
- c# - 如何将 CryptoStream 与 Span/ReadOnlySpan 一起使用?
- node.js - 简单的 Node.js 应用程序在输出一两个字符时运行缓慢
- matplotlib - 如何可视化文本到语音合成的 Tensorflow 模型 https://github.com/Rayhane-mamah/Tacotron-2
- android - 访问原始电容式触摸屏数据