My Free and Open Source Software Projects

Last updated on April 13, 2024

Open Hub profile for Hong Xu

Major Contributions


EditorConfig helps developers define and maintain consistent coding styles between different editors and IDEs. The EditorConfig project consists of a file format for defining coding styles and a collection of text editor plugins that enable editors to read the file format and adhere to defined styles. EditorConfig files are easily readibly and they work nicely with version control systems.

Visit EditorConfig project page to know more about it.

Chromium OS

Chromium OS is an open-source project that aims to build an operating system that provides a fast, simple, and more secure computing experience for people who spend most of their time on the web. It is the open source project behind Google Chrome OS. I'm currently actively working on this project as an employee of Google.

My commits are in multiple repositories: platform2, Chromium, overlays/chromiumos-overlay, platform/tast-tests, platform/libchrome, third_party/autotest, platform/minijail, chromite


PyTorch is an open source machine learning framework that accelerates the path from research prototyping to production deployment. I was formerly a module-level maintainer. I worked on the project as an employee of International Business Machines (IBM). You can view my commits on GitHub.

8 Hobbies Projects

8 Hobbies is a small tech company that I own and operate. I'm the main author of projects under 8 Hobbies.

Nikola publication_list Plugin

The Nikola publication_list plugin provides an easy way to manage your publication list on the web. All you need to do is writing a BibTeX file and refer to the file in the publication_list directive. See the project page for more details.


flake8-executable is a flake8 plugin for checking executable permissions and shebangs of Python source files.


dired-quick-sort is an Emacs extension which provides easy way to sort files in dired with various sorting criteria.

Jekyll Table of Contents Generator

Jekyll Table of Contents Generator is a Jekyll plugin which generates Tables of Contents.

oh-my-zsh web-search plugin

web-search is an oh-my-zsh plugin which adds several commands to do web search within zsh.

Reveal.js Explicit Link Plugin

Reveal.js Explicit Link is a tiny reveal.js plugin that helps type links more easily.

Backup On The Go

Backup On The Go is a tool written in Ruby, which backs up (or mirror) your GitHub repositories to BitBucket in the cloud. You could deploy it on Heroku, and it will automatically mirror your GitHub repositories to BitBucket periodically.


CmdLauncher helps people use command line tools in a graphical environment.

This project is aimed at helping people launch a command in a graphical way. Command line tools are powerful, but some people, especially those who are not computer experts, do not like command line tools. CmdLauncher provides a simple way for developers to make their console programs launch by selecting one from the list, or choosing a file, or something else in a graphical user interface. What the command line program developers need to do is to write a simple yaml format file containing information of their command line programs, which will be read by CmdLauncher.

Quine-McCluskey minimizer

Quine-McCluskey minimizer is a Quine-McCluskey algorithm implementation library modified from Stefan Moebius' command line only version. It is modified to be used as a library. Also additional compatibility fixes and documents are added.

Blober (no longer maintained)

Blober is Blober is a project which aims to help individuals and organizations set up servers which run free/open-source Internet and/or intranet services. It helps set up an extensible framework where you can install Internet software using Docker in an integrated manner. The Blober project also promotes open federation protocols and software whenever applicable.

Emacs Related Projects


See above.


dired-icon is an Emacs extension which provides a minor mode dired-icon-mode to display an icon for each file type in dired buffers.

Vim Related Projects

Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems. This page contains some of my projects related to Vim.


A Vim plugin which makes it more convenient to compile or run a single source file.


This is a Vim plugin providing a set of functions to read and write ini
format files for vimscript.


A Nautilus extension aimed at helping start editing with Vim fast and conveniently on GNOME.

Nautilus-Edit-with-Vim is an extension for Nautilus, the GNOME file manager, and is written in python. This extension adds several menu items in the Nautilus right-click context menu for gvim, such as "Edit with gVim", etc, just like gVim on Windows.


Vim compiler file for GNU Fortran Compiler.

This script has been included in the offical Vim distribution since Vim version 7.3.152.


Vim compiler file for Intel Fortran Compiler.

This script has been included in the offical Vim distribution since Vim version 7.3.152.


Vim compiler file for G95 Fortran Compiler.

This script has been included in the offical Vim distribution since Vim version 7.3.152.


Tags2db is a command line tool that convert tags files (ctags, gccxml, etc.) to databases (sqlite, etc.).

Tags2db is a program that converts tags files (ctags, gccxml, etc.) to database tables (SQLite, etc.). Currently only ctags, gccxml and SQLite are supported. Other tags files such as etags, and other databases such as MySQL will be supported in the future.

Projects I Took Over Maintainance


This is a Vim indent file for java source files. This indent file is based on the java indent file maintained by Toby Allsopp, which was shipped with the official Vim distribution before Vim version 7.3.408.

This script has been included in the official Vim distribution since Vim version 7.3.409.


Vim syntax file for dosini files (*.ini).

This script has been included in the offical Vim distribution since Vim version 7.3.313.

Other Contributions

I've also contributed to a variety of projects (Listed in alphabetical order).