2010/10/2 ZyX <zyx....@gmail.com>:
>
> To execute something just before vim exists, you can use `VimLeave` 
> autocommand,
[...]
> About capturing vim's
> pid: use ``let g:vimpid=system('echo -n $PPID')+0''

Thanks again for your help.

I got it working, but I had a new idea:

I added a dialog call to ask about if existing attached screen must be
killed or preserved.

If dialog is installed (if not it unconditionally kills screen) and
user select to not kill it, then screen session is preserved but, of
course, vim exits anyway.

This is not a big problem, but it will become perfect if we could
abort to exiting vim in this case.


But I think this time will not be possible because of the autocmd
nature. Am I wrong?


PD: Current related ~/.vimrc is that comes below:

-8<------------------------------------------------------
" F12 -> Attached Screen session: {{{
" ==============================

" Build mapping: {{{
" cd $(dirname %:p) --> Change to current file's directory.
" screen
"       -U      -> Run in UTF-8 mode.
"       -d      -> Deatach if previously attached.
"       -dRR vim_$(basename %:p)
"               -> Use current buffer file name as sessionname; then
reattach it and, if necessary, detach or create it first. Use the
first session if more than one session with same name are available.
"       -p %:p  -> Use current buffer file full path as preselected
(if available) window.
"               * TODO: Create this window by default when not exists.
"       -c ~/.vim/screenrc
"               -> Use modified screenrc config file (see below).
noremap <f12> 
:silent<space>!bash<space>-c<space>'cd<space>$(dirname<space>%:p);screen<space>-UdRR<space>vim_${PPID}<space>-p<space>"%"<space>-c<space>~/.vim/screenrc'<enter>:redraw!<enter>
" }}}

" Make screen session to be killed on exit and also prompting if
dialog is installed: {{{
" 
----------------------------------------------------------------------------------
autocmd VimLeave * !screen -ls vim_${PPID} | grep vim_${PPID} &&
dialog --yesno "Leave existing screen sessions alive?" 6 40 || kill
$(screen -ls vim_${PPID} | perl -ne 's/^.*?(\d{2,}).*$/\1/&&print') &&
clear
" }}}

" Prepare vim's screen configuration: {{{
" ----------------------------------
" Create ~/.vim directory if not already exists.
silent !mkdir -p ~/.vim
" Create/overwrite with user's ~/.screenrc if exists.
silent !cat ~/.screenrc > ~/.vim/screenrc 2>/dev/null
" Bind F12 to 'detach' command in screen.
silent !echo 'bindkey -k F2 detach' >> ~/.vim/screenrc
" Change default screen's escape key to CTRL-Q to avoid conflict if
vim itself is running in other screen session.
silent !echo 'escape ^qa' >> ~/.vim/screenrc
" }}}

" }}}
-8<------------------------------------------------------



-- 
Joan Miquel Torres__________________________________
Linux Registered User #164872
http://www.mallorcaweb.net/joanmiquel
BULMA: http://bulma.net http://breu.bulma.net/?l2301

-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to