Before analyzing how to initialize vim, I'll give you a brief description of mparm_T .    The mparm_T  is used for sharing several parameters with the main function and other functions for initializing. This struct reduces complexity of passing parameters. But it is just wrapper, not organized well, so comprehending it without prior knowledge is little hard.   I'll explain the parameters in mparm_T  one by one.   1. argc, argv   These are copy of argc  and argv  of main function. The other parameters are initialized according to argv .   2. evim_mode  Run with " -y " option or run by evim  command, start as the easy vim. The easy vim always runs as gui mode and there is no normal mode. I don't know what it is exactly, becuase I've never used it. If you wonder, read the man page  and " :help evim ".   3. use_vimrc  This parameter is set by " -u " option. It can be NULL, "NONE", "NORC" and file name. The Vim skips both sys...