--- /dev/null
+" setup known state
+if exists('did_password_store')
+ " || &compatible
+ " || version < 700}
+ finish
+endif
+let g:did_password_store = '1'
+let s:save_cpo = &cpoptions
+set compatible&vim
+"echo 'main code'}}
+" Return vim to users choice
+function! password_store#generate() abort
+ if executable('pwgen')
+ return systemlist('pwgen -N1 ' . g:password_store_pw_length )[0]
+ endif
+endfunction
+
+function! password_store#replace() abort
+ execute 's/\<.*\>/' . password_store#generate() . '/'
+endfunction
+
+let &cpoptions = s:save_cpo
for password-store. This is Tom Ryders
There are two functions:
-
+>
:Conceal
:Reveal
-
+<
That apply syntax highlighting to obscure and un-obscure the password.
By default the pass file loads in obscured mode, however when the cursor is on
-the file it's quite likely readable and editable.
-
-This offers minor "shoulder surfing" protection, facilitating editing of
-metadata, such as adding URLs etc.
-
+the word it should readable and editable. This offers minor "shoulder surfing"
+protection, facilitating editing of metadata, such as adding URLs etc.
+
+There's minor feedback for short passwords, with Error highlighting for
+passwords 6 or less characters long.
+
+Password store also adds password generation support via pwgen. Since
+password-store already leverages pwgen, this is a fairly safe assumption.
+There is a Plug mapping *<Plug>rotate_password*
+by default this is mapped to <C-X> and <C-A> but can be overridden via setting
+an alternate plug mapping
+>
+ nnoremap >M-a> <Plug>rotate_password
+<
+The mapped sequence will generate a random password. As neither decrement nor
+increment mean anything in this context, buth are mapped to the same plug.
+The default length of the password is 10 character, but
+modifiable by altering the global g:password_store_pwlength
+>
+ let g:password_store_pwlength = 20
+<
+This is also available via the function call(s)
+>
+ password_store#replace()
+<
4. Licence *password-store-licence*
This plugin is licensed under the same terms as vim itself (see
-if exists('did_pass_ftplugin') || &compatible || version < 700
+if exists('did_pass_ftplugin') || &compatible || v:version < 700
finish
endif
let g:did_pass = 'did_pass_ftplugin'
set compatible&vim
+if ! exists('g:password_store_pw_length')
+ let g:password_store_pw_length = 12
+endif
+
+nmap <buffer> <Plug>rotate_password :call password_store#replace()<Cr>
+if ! hasmapto( '\<Plug>rotate_password', 'n')
+ nmap <C-X> <Plug>rotate_password
+endif
+
setlocal nospell
highlight! password_store_password guifg=DarkGray guibg=DarkGray ctermfg=8 ctermbg=8
endfunction
command! Conceal call <SID>conceal_pass()
-normal GG
+normal! GG
" Cleanup at end
let &cpoptions = s:save_cpo