By default, ctags doesn't support IDL, but adding this is trivial. Create a files called .ctags in your home directory, containing the following:
--langdef=IDL --langmap=IDL:.pro --regex-IDL=/^pro[ \t]+([a-zA-Z0-9_:]+)/\1/p,procedure/i --regex-IDL=/^function[ \t]+([a-zA-Z0-9_:]+)/\1/f,function/iThen you can run ctags -R on the top of your IDL directory and create a ctags file containing the information about every file in your entire tree. For vim, you will want to add something like set tags=./tags,tags,../tags,~mperrin/idl/tags to your .vimrc, and then you can navigate using tags.
See
this archived discussion.
The short version is, only the plot command moves !p.multi forward, and ONLY
when
called without the /noerase keyword.
So how to display an image with TV or the like and have it work
with !p.multi? The trick is to call plot, get the position vector, and then use
that
for displaying everything else.
How often have you typed some long series of commands in to the
IDL prompt interactively, decided you liked something, and then wanted
to save all those commands into a pro file? Turns out this is fairly
easy to do.
help,/recall_commands
displays your command buffer. (You did set !edit_input = 512 in your
.idlstartup, right?)
Copy and paste the commands you want from this list into a text file,
called, say, "tmp". You'll note the order of the commands is reversed
from what you want - most recent at the top, and that there are line
numbers prepended. But this is no problem! Just do
tac tmp | cut -c 9- > somefile.pro
which will strip the line numbers and fix the command order. Then you
can edit somefile.pro to your heart's content.
NEW! I've just found out an even better way. The IDL intrinsic command "journal" will save a copy of your command history to a .pro file. It's so simple:
IDL> journal, 'my_commands.pro' ; start journalling IDL> (user enters commands) IDL> journal ; stop journalling
My thanks to Liam Gumley for pointing this out on comp.lang.idl-pvwave.
If you want to ensure the use of a private 8-bit color table rather
than just using 8 or 10 colors from the shared color table, stick the
following in your .idlstartup:
; force the use of a private 256 color map by opening and closing ; a window, basically hidden offscreen. window,0,colors=256,ypos=-2000,xpos=3000 & wdelete, 0