Overriding main function in Leonardo
Solved!

It was a (big) silly mistake of my own. I overloocked the init() function right after entering the main() function. I'm shure it initializes the hardware and the entire system, so my board stucks when I skipped it.

So my code now looks like this:

#include &lt;Arduino.h&gt;

const int LED_PIN = 13;

int main(void)
{
    init();


#if defined (USBCON)
    USBDevice.attach();
#endif  

    pinMode(LED_PIN, OUTPUT);

    while (1)
    {

        digitalWrite(LED_PIN, HIGH);
        delay(100);
        digitalWrite(LED_PIN, LOW);
        delay(900);

        if (serialEventRun) serialEventRun();
    }

    return 0;
}


BTW, the mix: Arduino + Vim + ino, rocks! Now I can do whatever I want from the console :)