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

  • 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 '19 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 '19 at 19:29
  • I have edited my question @D.BenKnoble – Aman Jul 1 '19 at 4:34
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').'~')

|improve this answer|||||
  • 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 '19 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 '19 at 4:23
  • How can I chech that? @AlexKroll – Aman Jul 1 '19 at 4:24
  • Oh, i've checked plugin sources. You should declare variable by yourself. – Alex Kroll Jul 1 '19 at 4:25
  • It does not hide a.txt~ file @alexKroll – Aman Jul 1 '19 at 4:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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