diff --git a/autoload/fern.vim b/autoload/fern.vim index 8fd1d4f..cc6778f 100644 --- a/autoload/fern.vim +++ b/autoload/fern.vim @@ -31,7 +31,6 @@ call s:Config.config(expand(':p'), { \ 'disable_drawer_hover_popup': 0, \ 'disable_drawer_tabpage_isolation': 0, \ 'disable_drawer_auto_restore_focus': 0, - \ 'disable_drawer_auto_restore_winfixwidth': 0, \ 'default_hidden': 0, \ 'default_include': '', \ 'default_exclude': '', diff --git a/autoload/fern/internal/drawer.vim b/autoload/fern/internal/drawer.vim index 5094bbb..456fa6d 100644 --- a/autoload/fern/internal/drawer.vim +++ b/autoload/fern/internal/drawer.vim @@ -50,7 +50,6 @@ function! fern#internal#drawer#init() abort call fern#internal#drawer#auto_resize#init() call fern#internal#drawer#auto_winfixwidth#init() call fern#internal#drawer#auto_restore_focus#init() - call fern#internal#drawer#auto_restore_winfixwidth#init() call fern#internal#drawer#smart_quit#init() call fern#internal#drawer#hover_popup#init() call fern#internal#drawer#resize() diff --git a/autoload/fern/internal/drawer/auto_restore_winfixwidth.vim b/autoload/fern/internal/drawer/auto_restore_winfixwidth.vim deleted file mode 100644 index 71f4079..0000000 --- a/autoload/fern/internal/drawer/auto_restore_winfixwidth.vim +++ /dev/null @@ -1,20 +0,0 @@ -function! fern#internal#drawer#auto_restore_winfixwidth#init() abort - if g:fern#disable_drawer_auto_restore_winfixwidth - return - endif - - let b:fern_drawer_auto_restore_winfixwidth = get(b:, 'fern_drawer_auto_restore_winfixwidth', &winfixwidth) - - augroup fern_internal_drawer_auto_restore_winfixwidth - autocmd! * - autocmd BufWinLeave call s:restore_winfixwidth() - augroup END -endfunction - -function! s:restore_winfixwidth() abort - if !exists('b:fern_drawer_auto_restore_winfixwidth') - return - endif - let &winfixwidth = b:fern_drawer_auto_restore_winfixwidth - silent! unlet! b:fern_drawer_auto_restore_winfixwidth -endfunction diff --git a/autoload/fern/internal/drawer/auto_winfixwidth.vim b/autoload/fern/internal/drawer/auto_winfixwidth.vim index e1ee83c..06a26f0 100644 --- a/autoload/fern/internal/drawer/auto_winfixwidth.vim +++ b/autoload/fern/internal/drawer/auto_winfixwidth.vim @@ -5,6 +5,10 @@ function! fern#internal#drawer#auto_winfixwidth#init() abort augroup fern_internal_drawer_auto_winfixwidth_init autocmd! * - autocmd BufEnter setlocal winfixwidth + autocmd BufEnter call s:set_winfixwidth() augroup END endfunction + +function! s:set_winfixwidth() abort + let &l:winfixwidth = winnr('$') isnot# 1 +endfunction diff --git a/doc/fern.txt b/doc/fern.txt index 51f9ec4..f0e93d7 100644 --- a/doc/fern.txt +++ b/doc/fern.txt @@ -401,7 +401,9 @@ VARIABLE *fern-variable* *g:fern#disable_drawer_auto_winfixwidth* Set 1 to disable automatically enable 'winfixwidth' to drawer on - |BufEnter| autocmd. + |BufEnter| autocmd. Note that it automatically set 'nowinfixwidth' on + the autocmd when there is only one window. + Default: 0 *g:fern#disable_drawer_auto_resize* @@ -500,12 +502,6 @@ VARIABLE *fern-variable* < Default: 0 -*g:fern#disable_drawer_auto_restore_winfixwidth* - Set 1 to disable automatically restore 'winfixwidth' on |BufWinLeave| - autocmd. - - Default: 0 - *g:fern#default_hidden* Set 1 to enter hidden mode (show hidden files) in default. Default: 0