Vimform7 - An Inform7 IDE in your Linux terminal

If you are familiar with the Linux terminal and Vim, Vimform7 may be of interest to you. Vimform7 is an integration of the Inform7 Linux 6M62 CLI with Vim via the Vim plugin model and several shell scripts. From inside Vim you can view the Inform7 help documentation, compile your code, debug / jump to lines with errors using Vim quickfix, and play your Inform7 works for testing purposes. Vimform7 is open source and customizable via bash/vim scripts. It has been tested on Ubuntu 18.04, 19.10, 20.04 and Fedora 29, 30, 31 operating systems. To learn more take a look at the documentation for Vimform7.

All source code for Vimform7 can be obtained from the following link:

Latest builds for Vimform7 are available from the following link:

15 Likes

This is really cool. Good job. :slight_smile:

Might I also suggest mentioning this in the Inform category? I’ve noticed that people that strictly use Inform tend to not look outside that section of the forum so they won’t see this. Since it’s not an entirely new dev system and is related to Inform, I think it should be okay to post there.

2 Likes

Thank you @tayruh :grin: !!

Do you mean the Authoring->Inform 6 and 7 category?

Yeah, exactly. That’s where everyone discusses Inform.

And if I’m wrong about being able to post there, I’ll take the blame. :stuck_out_tongue: But I think it should be okay.

that sounds awesome! and to anyone put off by the complexity of VIM: give it an honest go. i can’t for the life of me imagine ever having to live without VI keybindings for navigation and text manipulation. you’ll never again need to touch your mouse (or even move your hands from the default resting position), whilst writing / coding!

2 Likes

I am so amazed at how flexible Vim is myself. This whole project began for me when the gnome-inform7 ide workarounds I had been using became too heavy handed to put in place on new Linux distros like Ubuntu 20.04 or Fedora 31. At that point, I took a detour from the gui ide to learn what might be possible at just the console level, it was a great learning experience!

1 Like

This is the sort of thing that might help push me from Windows to Linux, finally.

Because of how I structure my Inform projects (several header files per project–tables, mistakes, testing, start of play–I could use volume/book etc. but having smaller files just helps) I’ve found that the Inform Windows IDE, though useful for so long, has limitations.

Since I also use Zarf’s python scripts which work best in an Ubuntu box with Linux binaries (ok, I never quite compiled the scripts on Windows,) perhaps it’s time to switch over, since I still have some in between steps before copying the scripts/binaries over.

3 Likes

If you have an Ubuntu setup with 18.04 or higher I am happy to answer any questions you might have about getting started! As @cvs points out learning Vim can be its own challenge. If you are not familiar with Vim, you might consider using GVim on Windows to see how you feel about the editor before diving in. Here is a link to GVim Windows Installer. Vimform7 it is on its first release ever too. So there are bound to be gaps that I will be fixing over the next few weeks as people try to use it.

2 Likes

Very nice! Thank you. I have been using vi since 1990.

1 Like

@fos1 - If you happen to give it a try I would love to hear any feedback, good or bad, especially from someone who has used vi since 1990. I do expect to be fixing issues and improving the tools in general and will keep an eye on this thread.

1 Like

Will do. I have a recent version of Ubuntu on one of my RPi disks. I usually work with I6. I am currently traveling with my Ipad so it may take a couple of weeks.

Thank you,
v/r
Jeff

1 Like

After I have I7 dialed in, I do hope to add a way to handle I6 projects. I was talking with @jeremydouglass about this recently. The shell tools let you create new projects and port existing ones all using the same structure as the ide, Vimform just adds an extra Makefile into the directory structure so it can do its work. Technically the tools should be able to support both I6/I7 via the Makefile configuration.

3 Likes

I code I6 with Vim on RPi Raspbian on a regular basis. It is quite easy. The syntax highlighting with vim for I6 is quite good. I can either drop out of vim to compile or open a separate terminal.

Generally I work straight from the command line. It is also easy to open a terminal in X Window. For the command line environment I use frotz to test the game. In X Window I use gargoyle.

v/r
fos1

1 Like

Hi Everyone, to round out the Inform7 support I added a command line tool to install non-standard extensions. Extensions are installed to the same location that gnome-inform7 would install them. This location is ~/Inform7/Extensions. You can easily copy extensions by hand to the location too. The new script is: vimform7-manage-extenstion.sh. Here is an example of using it: vimform7-manage-extenstion.sh -e="./<EXT.i7x>/". I have uploaded a new distribution that integrates these changes (in addition to the source). Look for Vimform7-06-06-2020-165555.tar.xz on the vimform-builds repository linked at the top of this post to try it out.

1 Like

If you are using the project porting script in Vimform7, you may want to take a look at the latest distribution Vimform7-06-17-2020-123416.tar.xz available at vimform7-builds (linked at the top of this topic). This update fixes path issues that were preventing existing inform projects with file paths that include spaces from being successfully converted to a Makefile build.

1 Like

Thanks to continued contributions from alex-ball, we have another fix that addresses issues with white space when using vimform7-make-distro.sh script. If you are using this script you should absolutely pull the latest archive Vimform7-06-18-2020-201046.tar.xz. Note: It is recommended that you always run the vimform-make-distro.sh script from within a temporary directory.

1 Like

Thanks, interactivefiction! I’ll definitely be trying this out. Your GitHub and the documentation look excellent, and I’ll be submitting any suggestions or bug reports I can after using the tool for a bit.

Regards,

Cryo.

1 Like

Can this thing be adapted to work for Inform6?

2 Likes

Yes it should be possible to do with minimal effort. I was looking at doing it myself, but I dont have enough experience with Inform6 and could use some help creating a simple test environment to implement Inform6 support in.

In theory the way Inform6 support would work is that the compiler(s) would be added to the ~/.vimform7/Compilers folder. Then the vimform7-port-prj.sh script would be modified with a new I6 parameter and to dynamically generate a makefile with the appropriate I6 compiler commands. If a help manual in HTML format exists for I6 it could also be included in the same way that the I7 help manual is included. I was also considering adding ZIL support to it in a similar fashion.

If someone can point me at a simple I6 “helloworld” with instructions on where to obtain and how to use the I6 compiler from the commandline and maybe a simple IF work that includes use of an extension, I would be happy to add the features to vimform7.

In my experience implementing I7 functionality I noticed the I6 compiler was used for an intermediate build step. If compiling I6 code is the same as that, then some of the functionality already exists.

1 Like

Thank you @cryo! :smiling_face_with_three_hearts: Your feedback is greatly appreciated. If you come up with any enhancements or customizations let me know. Vimform7 is built to be tweaked by the community.