[problem help] 深度终端运行的vim如何检测焦点? Resolved
Tofloor
poster avatar
otony
deepin
2023-07-30 19:38
Author

这是多年困扰我的一个小问题,一直放在那里。
vim里的自动命令里的事件
au! FocusLost * echom "focuslost"
au!FocusGained echom "focusgained"
这两条一直是摆设。查询了帮助,只有一部分终端能检测到这一事件。大家有没有好的解决方案让深度终端能够检测到焦点?通过shell命令间接检测到?

:h FocusLost When Vim lost input focus. Only for the GUI
version and a few console versions where this
can be detected.

Reply Favorite View the author
All Replies
otony
deepin
2023-07-31 23:58
#1

用最简单的方式解决了这个问题:xdotool命令,当然xprop也可以。
let l:activeWindow= system("xdotool getactivewindow getwindowname")
if l:activeWindow !="终端"
echom "focuslost"
endif
#只要活动窗口不是终端,就是失去焦点了。

如果想通过通过X11库写程序解决,可以自己搜索,太多相关资料了。

Reply View the author