2012/3/5 Eduardo Costa <[email protected]>:
> The :shell command does not work very well. It keeps inserting control
> chars into the output.


(Partially off-topic)

If you are using the shell frequently, then you will probably
appreciate the ability of switching between vim and your shell
session(s) easily and without needing to close them.

In other words: You probably love screen ;-)

Below is my personal trick (in my .vimrc) to integrate vim and screen.
Maybe it could be useful for you...

NOTE: I use vim in terminal, not gvim. If that's not your case, you
probably need to add some terminal emulator in some way...

NOTE 2: Off course, you need screen installed. If you did'nt used
screen before, you can get basic help by typing <c-a> followed by '?'
within screen session.


" 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>-e^qa<space>-p<space>"%"<space>-c<space>~/.vim/screenrc'<enter>:redraw!<enter>
"""""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>
noremap <f12> 
:silent<space>!screen<space>-UdRR<space>vim_${PPID}<space>-c<space>~/.vim/screenrc<enter>:redraw!<enter>
imap <f12> <esc><f12>a
" }}}

" 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 && screen
-r vim_${PPID} || 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
" }}}

" }}}


Regards.

-- 
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