Slaying code with linux the tools i use to dominate in development

Posted on Apr 25, 2023

As a developer, I’ve often been asked about my development environment. I love using Linux and have found it to be a powerful tool for my work. In this article, I will share my setup in simple terms and provide links to the tools I use.

Let’s start with the most important thing for a developer: an editor. While IDEs provide many features, I prefer to use Linux as my IDE and stick with a text editor. Yes, you read that right. I’m addicted to VIM! It’s a powerful editor that’s included in all Linux distros and macOS. I prefer to use VIM with minimal plugin dependencies, so I only use COC.vim for the LSP client. That’s it!

VIM already has great support for all my needs, and with COC, it’s working like a charm. All I need to do is install the COC plugins specific to my language. For example, I use intelephense for PHP, haskell-language-server-wrapper for Haskell, and pyright for Python.

As for my terminal, I use Alacritty as the emulator and BASH as the shell. I use Tmux as the terminal multiplexer to manage multiple terminal sessions. For window management, I use i3 as the window manager, and i3status-rs as the status bar.

For network management, I rely on nmtui. Docker is my go-to container engine, and docker-compose helps me with container management. GNUMake serves as my task manager, and I use direnv for environment management.

These are all the tools I use in my Linux environment. I find this setup to be efficient for my workflow. If you’re new to Linux or just getting started with developing, I highly recommend giving this setup a try.

reviewed by chatgpt