# .m files saving with comments [duplicate]

So I have posted a few questions on loading packages, because it is so simple, yet always failing for me. I made a new file Streams.m in the directory ~/Library/Mathematica/Applications/, which is in \$Path. This is the same directory in which Classes.m is in, which works and loads fully. I know that the command << reads in a file, and I am fairly certain I have figured out what has been causing these frustrating errors. When I open Classes.m and Streams.m in Mathematica, they look normal, nothing commented out. However, when I open Classes.m and Streams.m in vim, I get this: So I think it's pretty clear the reason I can load the Streams.m but not use the functions is because of the commenting, but I absolutely did not save it that way. Any ideas why it would save like this? Another odd difference is that Classes.m starts with ::Input::Initialization:: while Streams.m just starts with ::Input::. Furthermore, if I add ::Initialization:: to Streams.m and then open it, I get this: What on earth is going on? When I create these files, I type them up in a blank notebook then do save as, and choose .m extension. Do I really have to manually go through in vim and uncomment everything? This will just happen again when I make a new package.

• When you create a package from a notebook, any cell that isn't an "Initialization" cell will become a comment. Jun 27 '20 at 20:55
• Possible duplicate of Saving file as .m causes it to save as comments Jun 27 '20 at 20:58
• jeez is it that simple lol? I undid all the comments in vim and it works. Must've been that. why must it be an initialization cell? Jun 27 '20 at 21:00
• I think the workflow is that you develop a package in a notebook, but there could be all kinds of random cells in there. So you take the cells that represent the actual package code and make them Initialization cells. I don't make packages that way, but that seems what it is made for Jun 27 '20 at 21:09
• how do you make packages? Jun 27 '20 at 22:54