CTags: Lightning Fast Project Editing Made Easy

What's the fastest way to get from a function call back to its definition during the editing process? If you're using something like Notepad or an IDE, the answer is usually to search for the file containing the function, open it, and search your way down to the definition. Unfortunately, if you want to

Quick Tips for Making Headers

In the world of C/C++, we use headers extensively. The basic rule is that C/CPP files contain code that becomes binaries, and H files contain the interfaces that allow us to reference them in other C files. Any program more complex than a calculator will likely contain multiple C files that are combined into

Patterns: Code Completion using VI

Generally, I don't much care for IDEs. In my experience, IDEs add increasingly specific features to maintain their relevance, resulting in bloated software which takes too many resources to accomplish a relatively simple task. However, as functions get more complex, it becomes increasingly difficult to make your code match the original prototypes. This is where

Linux and C – “Hello, world!”

Since the release of K&R, every programmer has become familiar with the Hello, world! program. I find that learning to build this program from start to finish is an excellent introduction to the tools available in Linux. Setup First, we want to create a directory for our programs. I recommend ~/Documents/Programming, because this is a simple

Programming Environments – C in Linux

Most people don't realize how much programmers rely on their programming setups. At bare minimum, every programmer has to have three things: Text Editor - We need to write code somehow Compiler/Interpreter - We need to translate our code into something the computer can work with Debugger - We almost never get it right on the first

Introduction to vi/vim

We have it pretty good these days. For decades, graphic user interfaces (GUI) have blessed our computer screens, allowing us to perform amazing tasks with relative ease. Well, maybe not amazing tasks. And maybe not so much ease. You see, there is one thing that the GUI can never truly improve: writing. Every time you take your