I was at the fantastic CSSconf.eu on Friday, and one of the presentations include code in Vim with a line numbering setup that blew my mind. It showed the current line number as an absolute number, but showed all other lines as relative numbers, making it super-duper easy to go up or down N lines in normal mode.
I asked the presenter how it was done, and was told it was “part of the SPF13 bundle.” So today I looked it up, but no luck. There was no plugin included to change the line numbers. Time to do a little more digging! In fact, there was a change made to Vim itself in version 7.3.1115 to allow more customization of line numbers. Here’s how it works now:
patch 7.3.1115 changes the ‘number’ and ‘relativenumber’ options so that instead of resetting each other, they interact with each other, so that 4 different displays can be achieved:
both set: relative numbers + absolute number in current line
relativenumber only: only relative numbers, 0 in current line
number only: only absolute numbers
neither set: no line numbering
—vim_dev Google Group thread, message on 25 June 2013 sent by Ben Fritz
Result: for totally sweet line numbers, just update your Vim and put
set relativenumber in your
Edit: To clarify a bit, the old behavior for
relativenumber was to show
0 for the current line number, and that wasn’t modifiable. Setting
number just switched you back to absolute line numbers.
I hope nobody else has this problem, but just in case, here’s the thing I had to diagnose this afternoon: a few select boxes (those things that drop down a list of options and you choose one) were immediately closing themselves in IE9, which prevented changing their options. It only happened in IE, but I noticed the same elements were causing strange behavior in the Chrome developer tools—computed styles couldn’t be expanded, the attribute checkboxes were flickering, and the JS console was slow and stuttery when opening it with ESC). That behavior tipped me off that there was probably something strange happening in our code, not just in IE. Turns out that to automatically check a text input for matching content in our database, someone had implemented a jQuery function to run every 250ms, and that’s somehow interfering with the select elements. It’s not solved yet, so look forward to an update after I find a solution that (hopefully!) keeps all the functionality intact.
Oops! I was in such a hurry to post the video yesterday that I didn’t realize it was only the first half of the talk! Here’s part two.
Here’s the video for the Berlin Geekettes panel I spoke on last Thursday at Campus Party. I hope the sound is ok; the acoustics of the space left something to be desired.
Topics of discussion include stereotype threat, “having it all” and what success means, and how to get more women involved in tech.
EDIT: There’s a second part to this video, which can be seen in my next post.
I don’t know if the video from Campus Party Europe is up yet, but this from when I gave the same talk at RuLu in June.
Look out for the order you use CSS pseudo-elements in, or you may not get the results you want. Today, I found that using
li:before:first-child doesn’t work to style the
:before pseudo-element on my first
Rather than chaining together the way something like
.title.example (which would select element with both classes “title” and “example”, regardless of order), the pseudo-element order matters. So
li:before:first-child is styling the first child of the
li:before element, while
li:first-child:before is styling the
:before pseudo-element on the first
In fact, in looking up the documentation to link below, I realized that
:first-child is actually a pseudo-class, rather than a pseudo-element. The docs below don’t state it, but it’s possible that in order to get correct behavior, the pseudo-class should always come before the pseudo-element.
Wow! I had no idea my talk would generate so much interest, and so much traffic to my blog! It’s really strengthened my resolve to write here regularly. I want to continue being a resource for budding programmers, and (dare I hope?) an inspiration to people who want to become programmers. Thank you all!