使用:q,q!完全退出位置列表(LCL)以及由语法创建的主要缓冲区。或:WQ!在vim

StackOverflow https://stackoverflow.com/questions/4134027

  •  30-09-2019
  •  | 
  •  

我正在使用语法插件。我有一些我无法更改的文件(警告)。当我打开一个带有错误消息的文件时,我退出文件(缓冲区)按:q,错误消息仍然可见(另一个缓冲区),因此我必须按:q两次在编辑文件时完全退出。

那么,如何使用包含我的文件的缓冲区和另一个缓冲区(位置列表)的文件来按下:q一次,包含语法错误?我已经搜索了一点,关闭位置列表的命令为 :lcl.

当我退出使用:Q的缓冲区时,如果该缓冲区的位置列表处于活动状态,我想将其与内部的位置列表关闭,呼叫:lcl。我正在读一些 AutoCMD BufLeaveBufWinLeave 并尝试为此创建映射,但我不知道两者之间的区别。有人能帮我吗?

记住, :w, :q, :q!, :wq 都应该按预期工作。

有帮助吗?

解决方案

作为LCL的工作,即使没有错误窗口,也可以将Q映射到LCL和Q

cnoremap q<cr> \|lcl\|q<cr>

正如建议的缩写似乎更好

cabbrev q lcl\|q

(请注意 |之前的,没有它进行缩写,然后退出)

其他提示

我意识到这个问题是古老的,答案是在某个时候被接受的。我尝试使用接受的答案,但似乎不再起作用。

但是我确实从 这个问题, ,其他人应该遇到这个问题。

基本上,使用脚本检查是否还有其他剩余的窗口打开,以及最后一个剩下的窗口是否为位置列表,请退出。

:autocmd WinEnter * if &buftype ==# 'quickfix' && winnr('$') == 1 | quit | endif

我认为这可能不是理想的选择,但同时效果足够好。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top