Working with Terminal


I’ve always been a fan of terminal since the first time I hooked my first laptop with Ubuntu. I know, I know, there are lots of OS (Open Source) people out there probably shouting about how much evilness in Ubuntu. But we were talking about Ubuntu 10.10 where Ubuntu is just an innocent, stable Linux-based Operating System. About 2 years later, I got my first MacBookPro, which is a great machine. I used a year with it and then it became heavy and was proposing all sort of errors. Well, subsequently, I bought a new Mac, which is the one I’m typing this blog.

After I exposed to *nix OS family, the growing interests of using terminal is just unstoppable. I mean, it’s not like I want to be a nerd or geek. By using terminal alone, I can really improve my workflow by a lot.

I’ve used a lot of tools though my years of being a programmer. I started with Windows, so I’ve tried with Free Pascal (do anyone know what is this now?), DEV-C++, Visual Studio (like everyone did), Eclipse. And Eclipse is still the only IDE I’ve ever used in all three platforms. I also used Emacs for a pretty long time. After I’m so tired of editing my Emacs profile, I switched to a more “modern” solution: Atom.

I’ve to say, Atom is a fine editor. It’s easy to use, easy to configure, easy to extend and easy to modify. And I like this idea of developing desktop application via core browser service plus JavaScript. This is a total new pattern of designing stuff. And of course, if you have a entire HTML engine there for you, you can make it as pretty as possible right?

I thought I’m done, I’m gonna be a hardcore Atom fan after I spent few weeks of configuring Atom as I needed. Then there is HackZurich 2016. I met a guy there, without any love story in between, I witnessed a person who can do his job entirely within terminal.This is not how I do my job before. I mean, even though I used Emacs and tried to use Vim, my first thought was to install their GUI version.

For all these years, I’m trying to treat terminal as a individual component in my work flow, not the manager of it. And by witnessing that, I decided that I will have to change.

OK, OK, enough history talk. So in this entire post, I’m gonna review my recent attempt of closing a loop: working entirely in terminal. And by this point, I’m pretty happy about what I’ve done. And I hope every sensible developer would also do the same thing.

So, these are what I needed:

  • iTerm: a much more powerful terminal emulator than Terminal.app
  • zsh: so much better than MacBook’s bash by the way
  • Tmux: a terminal multiplexer that sometimes can be very handy
  • Vim: yes, I finally picked up Vim, and turns out after the training I got from Atom, this time it’s not so hard
  • macman: Frequently using commands in shell script I wrote for myself (inspired by Mac-CLI)
  • linuxman: Similar to macman, and offer me the same toolkit as I work in Mac.

And.. that’s it, or at least I couldn’t think about what else do I need to do my jobs.

iTerm

I don’t need many apps. I’ve used iPhone for over a year, iPad for more than 2 years, and MacOS more than 3 years. But I still manage to have only two panes of apps. I generally against the idea of installing more apps since this would pollute my system. I need my system to be clean at all the time.

This is why it took me around 2 weeks to decide installing it. And now it’s been my default terminal emulator for over a month. I configured as a Ubuntu terminal outlook. And my bash highlight scheme is a perfect match.

If you care about your terminal at all, you should change to iTerm. It’s not only that it’s a better terminal, but also for much more funny functions.

zsh

I’ve used bash as my default shell client for many years. I’ve never switched to different shell client. I knew they are out there by the way.

Vim

macman and linuxman

(TO BE CONTINUED)

This is some text that I wanted to change so that I know the website can update.