Hi Alder,
I've been migrating to Vim recently. It has impressive Ruby/Rails
support: indentation, intellisense for Ruby and Rails objects, a lot
of shortcuts for fast editing of Rails projects... you can even script
Vim in Ruby!
Vim also has good syntax-highlighting support. Unfortunately, the
color scheme applied through the syntax highlighting sucks. It lumps
together too many elements:
Methods, symbols, constants, class variables, instance variables,
global variables, block parameters, predefined constants and variables
--
All those are colored blue. Which completely defeats the purpose of
syntax-highlighting, to help you visually differentiate between the
various syntactical elements of the code.
Apparently, all the above (and several others) *are* differentiated
by the Vim Ruby syntax parser. However, the default color scheme
colors them all the same. So the problem is with the color scheme.
How do I get a nice color scheme that would do a better job of
visually differentiating the various Ruby-related syntactical
elements?
Long post follows...
Not too sure how this will appear but here we go:
stick this in your .vimrc
map <leader>hl :echo "hi<" . synIDattr(synID(line("."),col("."),1),"name") . '> trans<' . synIDattr(synID(line("."),col("."),0),"name") . "> lo<" . synIDattr(synIDtrans(synID(line("."),col("."),1)),"name") . ">"<CR>
(thats all on one line)
Now type '\hl' without the quotes on any (key)word in a ruby file.
assuming '\' is mapped as <leader> - (the default)
You should see something like:
hi<rubyDefine> trans<rubyDefine> lo<PreProc>
echoed on the command line.
What this is saying is that particular keyword is linked to the
highlighting for 'rubyDefine' and you can tweak that any way you want
using (for eg):
hi rubyDefine cterm=none ctermfg=#f5f5f5 ctermbg=white
(replace 'cterm' with 'gui' if you're using gvim as I do)
If you don't specifically define it as above it defaults to PreProc which
is how I have it.
Here's a list of other ruby specific keywords you can modify:
hi link rubyBoolean Boolean
hi link rubyComment Comment
hi link rubyString Constant
hi link rubyStringDelimiter Constant
" hi rubyASCIICode
" hi rubyAccess
" hi rubyAttribute
" hi rubyBeginEnd gui= guifg= guibg=
hi rubyBlock gui=none guifg=#33664D guibg=white
" hi rubyBlockArgument
" hi rubyBlockParameter
hi rubyClass gui=none guifg=grey30 guibg=white
hi rubyClassVariable gui=none guifg=#556B2F guibg=white
hi rubyConstant gui=none guifg=#DC143C guibg=white
hi rubyControl gui=none guifg=#4169E1 guibg=white
hi rubyCurlyBlock gui=none guifg=#008B8B guibg=white
" hi rubyData gui= guifg= guibg=
" hi rubyDataDirective gui= guifg= guibg=
" hi rubyDefine gui= guifg= guibg=
" hi rubyDelimEscape
" hi rubyDoBlock
" hi rubyDocumentation gui= guifg= guibg=
" hi rubyError
" hi rubyEscape
" hi rubyEval
" hi rubyException gui= guifg= guibg=
hi rubyExprSubst gui=none guifg=#FF4500 guibg=white
" hi rubyFloat
hi rubyFunction gui=none guifg=grey50 guibg=white
" hi rubyGlobalVariable gui= guifg= guibg=
" hi rubyHeredocStart
" hi rubyIdentifier gui= guifg= guibg=
" hi rubyInclude gui= guifg= guibg=
" hi rubyInstanceVariable gui= guifg= guibg=
" hi rubyInteger
" hi rubyInterpolation
hi rubyIterator gui=none guifg=#ff7f50 guibg=white
hi rubyKeyword gui=none guifg=#008B8B guibg=white
" hi rubyKeywordAsMethod
" hi rubyLocalVariableOrMethod
" hi rubyModule
" hi rubyNestedAngleBrackets
" hi rubyNestedCurlyBraces
" hi rubyNestedParentheses
" hi rubyNestedSquareBrackets
" hi rubyNoDoBlock
" hi rubyNoInterpolation
" hi rubyNumber gui= guifg= guibg=
" hi rubyOperator
" hi rubyOptDoBlock
" hi rubyOptDoLine
" hi rubyPredefinedConstant gui= guifg= guibg=
" hi rubyPredefinedIdentifier gui= guifg= guibg=
" hi rubyPredefinedVariable gui= guifg= guibg=
" hi rubyPseudoVariable
" hi rubySharpBang gui= guifg= guibg=
" hi rubySpaceError
hi rubySymbol gui=none guifg=#CD853F guibg=white
" hi rubyTodo gui= guifg= guibg=
I got this by running the highlighttest script whilst a ruby script was
loaded. Then s///g until only ruby specific keywords remained.
The above is a file I save as ruby_cols.vim in .vim/ftplugin/
As you can see I don't tweak it too much, but I will one day 
You can do this for any filetype. Just remember to name it
<filetype>_xxx.vim. egs ruby_cols.vim, ruby_abs.vim, php_cols.vim etc.
(ruby_abs.vim is ruby specific abbreviations)
cheers,
···
On Sat, 02 Sep 2006 18:34:37 +0900, Alder Green wrote:
--
Mark