First, a note to everyone setting t_Co=256 in your .vimrc: If you ever try
to use a terminal that does not support 256 colors, this will cause it to
look very weird!  'vi -u /dev/null' will skip loading your .vimrc in this
scenario, so you can fix it if needed. :)  You can probably also just do
:set t_Co=8, but I've had problems in the past with setting that in a
running session, even after hitting Ctrl-L to redraw.  A better solution is
approximately four paragraphs below.


I'm not sure exactly what you mean.  Testing right now, when I quit vim, the
terminal goes back to the way it was when I ran vim: my cursor is on the
bottom line and vim has essentially disappeared.  However, I mostly deal
with vim on a linux box (over ssh if I run it in iTerm), and I have played
around with my configuration extensively, both my vimrc and my
termcap/terminfo settings to get everything accurate.
I don't know if I'd even notice if it didn't restore my terminal to the way
it was before I started vim.  I know in the past it used to clear the screen
and leave my prompt at the top of an otherwise empty screen.  This setting
might be controlled by something in termcap/terminfo, but I'm not entirely
sure what.  I have an accurate termcap/terminfo for my linux terminal I'm on
right now (rxvt-unicode), and it does not blank.  This might be because of
the contents of t_te and t_ke:
infocmp -C $TERM | grep :te
infocmp -C $TERM | grep :ke

are sent whenever vim exits.  These restore your terminal to line editing
mode, and can be viewed with t_te and t_ke inside of vim:  :set t_te? or
:set t_ke?

Perhaps one of these is triggering a screen blank for you.  You can try
changing them inside of vim, but I don't know which is which or what exactly
they do, and looking up the meaning of their existing values (for xterm this
is probably te=\E[?1049l and ke=\E[?1l\E>) is very annoying. :)  If you're
going to play with these, do so via :set before putting them in .vimrc, and
be sure to do it in a terminal you don't care about having to close.
 Usually you can save the terminal by typing 'reset' and 'clear' at the
command line, but no guarantees that'll always work.

Best solution, for those adventurous enough to do it, but it can cause
problems if you ssh! (read more below):
1) Figure out what terminal type you're currently using: echo $TERM in your
shell, it's probably 'xterm'
2) Fix that, it should be unique.  Changing the terminal type depends on
your terminal, it's a parameter on your 'profile' in iTerm I believe.  Name
it something like iterm (prefer all lowercase), since it is ;)
3) Dump xterm's terminfo since iTerm is close enough: infocmp -I > iterm
4) Open up the file iterm in your favorite text editor (vim), and edit the
first non-comment line to be iterm|some description, and edit the colors#8
to colors#256 and pairs#64 to pairs#256 (probably on line 4)
5) run: tic iterm, this compiles that file and stores it in the proper
location (on mac [leopard], this is ~/.terminfo/69/iterm)
6) restart your terminal.  You should no longer need to set t_Co in your
vimrc.

Caveats of that solution:
1) It will only work for your user.  To work for everyone, after step 5,
copy ~/.terminfo/69/iterm to /usr/share/terminfo/69/iterm (I haven't tested
this actually works though).
2) (the big one): If you connect from this terminal out somewhere else (i.e.
via ssh), your TERM environment variable will follow you.  The host you
connect to probably does not have an 'iterm' terminfo entry.  You can
probably add it (copy over ~/.terminfo/69/iterm from your mac to
~/.terminfo/###/iterm on the machine you're sshing to), or you can just lie
about your terminal once you get there and claim you're xterm, either:
TERM=xterm ssh <destination> or play with your ~/.ssh/config or
~/.ssh/environment, check 'man ssh'.  Vim won't be 256 color then though ;)
  Note I said ###: on mac (leopard), this is the number 69.  On the version
of linux I normally use, this is a lowercase i.  Look in
/usr/local/share/terminfo to see what the naming scheme is on your platform.

Whew.  This got long.. ;)  I'm going to have to ignore this thread for a bit
while I deal with stuff at my real job.. hopefully it's detailed/accurate
enough to help :)

On Wed, Oct 14, 2009 at 2:50 PM, estebahn fahlhallah <[email protected]
> wrote:

> Wow.
> 2 step process to beautiful experiences...
> The first was to put set t_Co=256 into my .vimrc,
> then to experiment with some of those Hex colors.
>
> Thanks!!
>
> The only weird thing I've noticed so far is that if I exit from a file in
> vim the current line is down a bit from the top.  Not a big deal, but have
> you run into this before?
>
>
> On Oct 14, 2009, at 2:07 PM, Kyle Lippincott wrote:
>
> Now that you have a terminal that supports 256 colors, you can use colors
> that there aren't even names for, by looking up the color number using this
> perl script: http://www.vim.org/scripts/script.php?script_id=1349
>
> The perl script does nothing involving termcap/terminfo to determine if
> your terminal CAN display > 16 colors, so it'll probably work no matter what
> in iTerm and give weird blinky text in Terminal.app.  Vim uses
> termcap/terminfo, so if it's not showing 256 colors correctly (though since
> you mention colortest I'm assuming it does), you might have to play around
> with that.  I can attempt to help you there to do this correctly, involving
> changing your TERM variable and writing out some terminfo files and dealing
> with infocmp, or you can just cheat and :set t_Co=256 inside of vim, which
> is probably easier ;)
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_mac" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Reply via email to