Vim在后台创建和编辑新文件

Vim在后台创建和编辑新文件,vim,vim-plugin,neovim,Vim,Vim Plugin,Neovim,我需要从当前缓冲区创建一个tmp文件,编辑新文件,拖动结果,退出:q并最终将其粘贴回当前缓冲区。这在某些情况下非常有用,例如仅格式化视觉上选定的代码: vnoremap <leader>f d:execute "tabnew /tmp/format.".expand("%:e")<cr>p:Autoformat<cr>:%d<cr>:q<cr>P vnoremap f d:execute“tabnew/tmp/format.”展开(

我需要从当前缓冲区创建一个tmp文件,编辑新文件,拖动结果,退出
:q
并最终将其粘贴回当前缓冲区。这在某些情况下非常有用,例如仅格式化视觉上选定的代码:

 vnoremap <leader>f d:execute "tabnew /tmp/format.".expand("%:e")<cr>p:Autoformat<cr>:%d<cr>:q<cr>P
vnoremap f d:execute“tabnew/tmp/format.”展开(“%:e”)p:Autoformat:%d:qP

唯一恼人的是
:tabnew/tmp/tmp_文件
,正在编辑,
:q,然后在前面执行回贴顺序,这会产生不良的副作用,即在此过程中多次闪烁屏幕。有没有办法在后台以静默方式执行此过程?

如果使用,则
:Autoformat
支持范围。您只需在可视模式下使用
:Autoformat
(将显示为
:“不幸的是,这与
自动格式化
使用的格式化程序有关。而对于
Python等语言,C/C++
范围格式可以工作,但对于
Fortran
,它失败了。我认为使用拆分而不是制表符会更好。你能尝试使用
新建
而不是
选项卡新建
和se吗如果它不闪烁?这是一个非常有趣的问题,我没有一个现成的答案。你可能也想考虑这样的问题,你通常有更多的VIM专家在那里徘徊,这样你就可以获得更多的问题,如这一个。问题。谢谢您的建议!如果您正在使用,则
:Autoformat
支持范围。您只需在视觉模式下使用
:Autoformat
(将显示为
:“不幸的是,这与
自动格式化
使用的格式化程序有关。而对于
Python等语言,C/C++
范围格式可以工作,但对于
Fortran
,它失败了。我认为使用拆分而不是制表符会更好。你能尝试使用
新建
而不是
选项卡新建
和se吗如果它不闪烁?这是一个非常有趣的问题,我没有一个现成的答案。你可能也想考虑这样的问题,你通常有更多的VIM专家在那里徘徊,这样你就可以获得更多的问题,如这一个。问题。谢谢你的建议!