Tuesday, March 24, 2015

Re: Is there a way to cause vim to display the console screen without actually shelling to it?

On Tuesday, March 24, 2015 at 2:16:30 PM UTC-4, Adrian wrote:
> I'd like to jump between the console and the editor without having the console scroll up.
>
> Is there a way that this can be done? I see that there are terminal codes that save and restore the screen and this seems to be what vim uses to restore the console when you shell or Ctrl-Z out, so there must be a way to restore it without causing the shell to be invoked resulting in the terminal being scrolled up. Then a user can hit any key to restore the vim display.
>
> If this isn't a default feature, could this be done in scripting?
>
> Thanks,
>
>
> A

Ok, so I've figured out how I can do this with Gary Johnson's help in how to run the tput commands from vim. Here is my solution:

1. Have the following script in vim memory:

function! ShowTerm()
call system(">/dev/tty tput rmcup")
call input("")
call system(">/dev/tty tput smcup")
redraw!
endfunction

2. Map the script to some command key sequence like this:

map [= :call ShowTerm()<CR>

I used the sequence "[=", but you can use whatever you want.

Now type the key sequence and BOOM! you get the other screen. Press Enter and BOOM! back to the vim screen. The Enter doesn't add a line feed to the terminal screen either, so no marching lines.

Nice! :)

Thanks all!


A

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

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments: