当我尝试运行某些命令(例如:make
或 ):!ls
时,它会在完全不同的屏幕/视图中显示输出,并且在此过程中看不到我正在编辑的文件。 有没有什么方法可以让我仍能看到我的文件并进行编辑,而我执行的命令可能可以在底部的窗口中运行,可能是快速修复窗口?
答案1
如果你正在使用 vim 8 或 neovim,也许你想尝试:
http://github.com/skywind3000/asyncrun.vim,
完美替代 vim-dispatch,具有更好的用户体验。
易于使用,只需通过:AsyncRun 启动后台命令(就像旧的“!”cmd 一样)。
命令在后台完成,无需等待整个过程完成。
输出显示在 quickfix 窗口中,错误与 errorformat 匹配。
您可以立即探索错误输出或在执行时继续在 vim 中工作。
- 当您专注于编辑时,响铃或播放声音来通知您工作完成。
- 在 vim、neovim、gvim 和 macvim 中提供相应的用户体验。
答案2
你可以使用vim 调度异步构建(make)的插件。
或者如果你只是想要在 quickfix 窗口中使用 shell 命令,你可以在 ex 模式下使用:
:cexpr system('ls -alh') | copen
甚至更好,将它添加到你的 .vimrc 中
command -nargs=+ Run :cexpr system('<args>') | copen
并以 ex 模式运行:
:Run ls -alh
答案3
这种行为完全正常。CLI Vim 没有自带终端仿真器,因此绝不可以。不过,GUI Vim 附带了一个哑终端仿真器,我想这就是你“很久以前记得的”。
您需要一个插件来在单独的 Vim 窗口中运行命令。征服术语是我现在唯一能记住的名字,但我想还有其他一两个。
答案4
分裂vim窗户对你有用吗?
- :分裂- 水平分割窗口
- :vsplit- 垂直分割窗口
然后,您可以使用窗口仅编辑文件,并使用第二个窗口通过执行:制作。