2

I have successfully hidden undo files by using this auto hide plugin, but I could not hide any *.extension~ files.

suppose I created a.txt

Now there are two files shown in windows explorer

  • a.txt
  • a.txt~
  • a.txt.un~ (Hidden)

I want to hide a.txt~ on save.

How can I do that?

I think I need to use the

p pattern option for this

  • Auto hide plugin

    *g:autohide_types* (default "suv")   b = backup files (currently doesn't work with 'backupdir')   s = swap files   u = undo files   v = viminfo   p = files matching pattern

    • My vimrc file
source $VIMRUNTIME/vimrc_example.vim

    set diffexpr=MyDiff()
    function MyDiff()
      let opt = '-a --binary '
      if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
      if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
      let arg1 = v:fname_in
      if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
      let arg1 = substitute(arg1, '!', '\!', 'g')
      let arg2 = v:fname_new
      if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
      let arg2 = substitute(arg2, '!', '\!', 'g')
      let arg3 = v:fname_out
      if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
      let arg3 = substitute(arg3, '!', '\!', 'g')
      if $VIMRUNTIME =~ ' '
        if &sh =~ '\<cmd'
          if empty(&shellxquote)
            let l:shxq_sav = ''
            set shellxquote&
          endif
          let cmd = '"' . $VIMRUNTIME . '\diff"'
        else
          let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . '\diff"'
        endif
      else
        let cmd = $VIMRUNTIME . '\diff'
      endif
      let cmd = substitute(cmd, '!', '\!', 'g')
      silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3
      if exists('l:shxq_sav')
        let &shellxquote=l:shxq_sav
      endif
    endfunction


   let g:autohide_file_list='suvb'

What I have tried

3
  • autohide_types is a global variable, it should be declared like this let g:autohide_types='b'. But if you want to add type to existing list it should be like this let g:autohide_types+='b'
    – Alex Kroll
    Jun 30, 2019 at 19:13
  • @AlexKroll string concatenation is ., so let g:autohide_types.='b'. Please post answers as answers, not comments.
    – D. Ben Knoble
    Jun 30, 2019 at 19:29
  • I have edited my question @D.BenKnoble
    – Aman
    Jul 1, 2019 at 4:34

1 Answer 1

2

autohide_types is a global variable, it should be declared like this

let g:autohide_types='b'

But if you want to add type to existing list it should be like this

let g:autohide_types.='b'

Unfortunetly this plugin works only with glob patterns and does not works with regexp. But it has public function Autohide_DoHide({file}). So workaround

autocmd BufWritePost,FileWritePost * silent call Autohide_DoHide(expand('%:p').'~')

8
  • I added let g:autohide_types.='b'. vim says Error detected while processing C:\Program Files (x86)\Vim_vimrc: line 38: E121: Undefined variable: g:autohide_types
    – Aman
    Jul 1, 2019 at 4:17
  • Because variable is not defined. For first time let g:autohide_types='b' and then let g:autohide_types.='u' But it strange, are you sure that autohide plugin is loaded?
    – Alex Kroll
    Jul 1, 2019 at 4:23
  • How can I chech that? @AlexKroll
    – Aman
    Jul 1, 2019 at 4:24
  • Oh, i've checked plugin sources. You should declare variable by yourself.
    – Alex Kroll
    Jul 1, 2019 at 4:25
  • It does not hide a.txt~ file @alexKroll
    – Aman
    Jul 1, 2019 at 4:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.