DEV Community

Cover image for My text editor setup in 2025 and how I came out of extension hell
Giuseppe Gallitto
Giuseppe Gallitto

Posted on

My text editor setup in 2025 and how I came out of extension hell

Escaping Extension Hell: My Journey to a Minimalist Editor Setup

For years, I was a die-hard Visual Studio Code (vscode) user. Its ease of use, vast extension marketplace, and rapid development ecosystem were undeniable. However, I gradually found myself drowning in a sea of extensions. Each new project, each new language, demanded a fresh set of extensions, bloating my workspace and increasing the risk of security vulnerabilities.

The allure of a completely open-source development environment led me to explore alternatives like Vim and Neovim. While powerful and customizable, these editors also presented their own "extension hell." Managing plugins, configuring keybindings, and ensuring my configuration files worked across different machines felt like the same kind of distraction I experienced with vscode.

Finally, I decided to break free from this cycle of "dependencies". I embarked on a journey (a.k.a browsing Fedora's software center) to create a minimalist, yet highly functional, editor setup. Solution: my current holy trinity of tools – Kate as the editor, TMUX as the terminal, and GDB for debugging.

Why Kate over VScode?

While vscode boasts a massive user base and a plethora of features, its reliance on extensions can be a double-edged sword. Kate, on the other hand, comes pre-packaged with a comprehensive set of built-in extensions. This means that core functionalities like language support, version control, syntax highlighting, and debugging integration are handled natively, eliminating the need for additional external dependencies.


It's important to note that "handled natively" does not imply that the features of the editor will work immediately, out-of-the-box. Instead, it means that the editor is equipped to integrate with language servers and leverage other language-specific features. This requires the installation of appropriate compilers/interpreters with the required libraries on the system.


This inherent flexibility allows to configure the text editor to match a development environment with a little customization and without the overhead of managing and installing external extensions. Kate empowers you to tailor the editor to your exact needs ensuring a minimalistic but functional development experience.

The Benefits of a Minimalist Approach

This three-pronged approach offers some key advantages:

  • Enhanced Security: Relying on built-in features and well-maintained core components minimizes the risk of introducing vulnerabilities through third-party extensions.
  • Future-Proofing: In a world of rapidly evolving software, relying on a core editor with a strong foundation provides a degree of future-proofing. Even if active development on Kate were to stop, its inherent "configurability" would allow you to adapt it to future needs.

This minimalist approach may not be ideal for all developers, particularly beginners. However, for those who prioritize a development experience with minimal distractions and are willing to invest a small learning curve, escaping "extension hell" and embracing a core editor like Kate can be a liberating experience.

The Role of TMUX and GDB

Two key features I valued in vscode were seamless remote machine access and the ability to manage multiple terminal sessions. TMUX perfectly addresses these needs. It allows me to create multiple console sessions within a single terminal window, attach and detach them on the fly, and easily manage multiple SSH connections. This is invaluable for tasks like running Jupyter kernels in the background or working on multiple projects simultaneously. Moreover, TMUX is highly customizable, allowing for easy visual integration with the any editor's user interface.

For debugging, I chose to rely on GDB. While Kate offers a built-in debugging extension, I found it somewhat outdated and less user-friendly to customize. Using GDB directly within a TMUX session provides a more robust and flexible debugging experience. This approach is particularly effective for the languages I work with (Python, C, and Rust), which are well-supported by GDB.


A screenshot of the editor, from the original Kate website: https://kate-editor.org/

Considerations and Limitations

This minimalist approach may not be ideal for all developers, particularly beginners. It requires a small learning curve to master the keybindings and commands for both TMUX and GDB. However, I found the result of this investment significantly rewarding.

Furthermore, it's crucial to check the language support for both Kate's LSP (Language Server Protocol) and GDB. Kate's LSP currently supports:

BibTeX, LaTeX, C, C++, Python, Rust, and Go

while GDB supports Ada, Assembly, C, C++, D, Fortran, Go, Objective-C, OpenCL, Modula-2, Pascal, and Rust.

Conclusion

This minimalist approach, while not for everyone, offers a simple and secure development environment with minimal distractions. By embracing a core editor like Kate, leveraging the power of TMUX for terminal management, and utilizing GDB for debugging, I feel I successfully escaped "extension hell" (for now ":)") and regained control over my development workflow.

Top comments (0)