mirror of
https://github.com/vim/vim.git
synced 2025-09-30 04:44:14 -04:00
patch 9.1.0147: Cannot keep a buffer focused in a window
Problem: Cannot keep a buffer focused in a window (Amit Levy) Solution: Add the 'winfixbuf' window-local option (Colin Kennedy) fixes: #6445 closes: #13903 Signed-off-by: Colin Kennedy <colinvfx@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
353faa373e
commit
2157035637
@@ -457,6 +457,31 @@ ex_listdo(exarg_T *eap)
|
||||
tabpage_T *tp;
|
||||
buf_T *buf = curbuf;
|
||||
int next_fnum = 0;
|
||||
|
||||
if (curwin->w_p_wfb)
|
||||
{
|
||||
if ((eap->cmdidx == CMD_ldo || eap->cmdidx == CMD_lfdo) && !eap->forceit)
|
||||
{
|
||||
// Disallow :ldo if 'winfixbuf' is applied
|
||||
semsg("%s", e_winfixbuf_cannot_go_to_buffer);
|
||||
return;
|
||||
}
|
||||
|
||||
if (win_valid(prevwin))
|
||||
// Change the current window to another because 'winfixbuf' is enabled
|
||||
curwin = prevwin;
|
||||
else
|
||||
{
|
||||
// Split the window, which will be 'nowinfixbuf', and set curwin to that
|
||||
exarg_T new_eap;
|
||||
CLEAR_FIELD(new_eap);
|
||||
new_eap.cmdidx = CMD_split;
|
||||
new_eap.cmd = (char_u *)"split";
|
||||
new_eap.arg = (char_u *)"";
|
||||
ex_splitview(&new_eap);
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(FEAT_SYN_HL)
|
||||
char_u *save_ei = NULL;
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user