INTRODUCTION
I have been dealing with computer programming languages since 2012. I have about 12 years of programming experience. I have been involved in coding activities for a long time, using many text editors and many plugins. I used VSCode, Atom and Sublime Text for a long time.
While trying different text editors, I came across many pros and cons. I have had experiences in a wide range of ecosystems, from editors that do not work after updates, especially on my old computers, to those that claim to be ingenious by being loaded onto the CPU and RAM. Below is a list of the other editors and IDEs I used from 2006 until now.
- Atom Editor
- BlueFishEditor
- Brackets
- Eclipse
- Geany
- Lapce
- Notepad++
- PyCharm
- Sublime Text
- VSCode
- Intellij
Some of the text editors I have listed so far completed their project lifespan during this ten-year period. Others have made agreements with large technology companies to make updates and require hardware purchases. For example, after removing their support on my x86 computer, Sublime Text, Atom Editor, and VSCode no longer worked efficiently, and I was forced to upgrade to an x64 machine. Even though what I basically did was code, LSP tools, especially IntelliSense, turned the CPU and RAM of old machines into garbage. Because of this compulsion, I stopped using my old computers, which I used to love. In my search for a solution, I first encountered Linux distros. Afterwards, I was introduced to terminal programming. This caused me to learn bash and regex in order to do things faster. Before I even realized it, the necessary infrastructure for VIM had begun to form.
ISSUES TURN INTO DEVELOPMENT PROCESS
In the place where I live in Turkey, there was almost no one in my work environment who used this editor. In a place where everyone spoke Turkish, I started to improve my English and read blogs in order to access English resources. We can add this to the benefits of this journey. Difficulties are actually ladders lined up in front of one to climb. The next stage always comes after a challenge.
BLUE PILL AGAINST RED PILL
If you are not a computer enthusiast (geek), you can buy a product with money and end up reading this article without constantly choosing this intermittent method. The rest of the article involves long and laborious experience processes. But if you are wondering what can be done against Microsoft hegemony, you can continue my article. We continue with those who chose the red pill.*
PS: The red pill and the blue pill are symbols originating from the 1999 science fiction film The Matrix. The pills represent a choice between remaining in a state of blissful ignorance (blue) or accepting a painful reality (red).
VIM SCREEN: GENERALLY BLACK SCREEN BUT BLUE SCREEN FOR ME
When I first encountered the Vim screen, I could hardly do anything on the screen. I didn't know the mods. I had no idea what they were talking about. I could turn the screen on and off with basic commands on the screen. But I once vowed not to go back to Microsoft products and not to use other editors that constantly gave me error messages. I continued patiently. I started researching what could be done on YouTube and watching training videos. I must admit that, at first, I could only find a few useful and educational videos among hundreds of videos. Especially after understanding the mode system and blowing up a few hundred files, I could now use VIM. After a long training period and test rides, I started riding on this motorcycle. This process took me about 2 weeks due to time constraints.
NEOVIM : THE AGE OF DISCOVERIES
After I started to understand the basic concepts, I discovered that there is such a thing as Neovim. ( It wasn't India, but only found the Red Indians.) I've seen people in this ecosystem talk about text editors and plugins like Neovim, NVChad, AstroVim, LunaVim on thousands of blog pages, dotfiles, and videos. When I looked at the communities on Reddit, I realized that there were thousands of people like me who were fed up with Microsoft fascism. Knowing that while fascist Microsoft makes deals with hardware providers and forces you to do something, someone is also developing an alternative world through open source code, made me re-examine my choice, and I saw that the free world extends from Africa to China, from India to Russia, from Iran to the Baltic Sea, and it uses customizable products such as NEOVIM. I fell in love with open-source products at first sight.
TUTORIALS : CURIOSITY KILLS THE CAT
My curiosity led me to watch educational videos online. Even though I didn't know the concepts at first, as I watched and saw what was done, I started to become familiar with the concepts. As I watched installations, demonstrations, and other videos, I started taking short notes. How could I do what I see here? As I started asking myself questions about what I could change in the codes I saw, the development process began.
I made the first videos on the devaslife channel of the famous Japanese Takuya. He was doing many things on the screen at once. I didn't understand at first. Of course, afterwards, I watched ElijahManor to understand the transactions made here. I discovered how plugins work with vimjoyer. Afterwards, I started watching installation videos with Lazy. After learning the working logic of Lazy, I continued on my way. I also started watching the Twitch channels of Primeaegen and others. Incidentally, Twitch was a better place before the Subscribe feature came along; it's not like that anymore.
YOUTUBE : PARALLEL UNIVERSE ( GET RID OF LASER SHOWS AND GARBAGE )
I must warn you that YouTube is an open-ended parallel universe. Of course, this universe also has some restrictions and limits. The first of these is the problem of quality content. Since most of the videos were made to attract attention rather than to teach, there were some that impressed me with their bright texts and computer effects rather than information. Some of them shot a video just to show the computer screen and understand it if you can. It was necessary to get rid of videos with subpar or high-quality Hollywood studio effects. I sifted it with a strainer in my hand for a long time. I can share with you a few channels that remain popular after filtering them:
Youtube Accounts:
- Antonygg
- ElijahManor
- ThePrimeagen
- TheVimeagen
- Typecraft_dev
- chrisatmachine
- devaslife
- devopstoolbox
- vimjoyer
PACKAGE MANAGERS : NO PAIN NO GAIN!
During my first move to Neovim, I tried all the installers in order. Packer was my first favorite until I met LazyVim. I transferred here after meeting Lazy. The positive aspects of Lazy were that it was atomic-level fast, automatically installed plugins and missing packages, and made suggestions. The negative aspect of this Lazy was that it was extremely sensitive to syntax errors. I went around and debugged it hundreds of times with the % symbol and Telescope inside the parentheses. While doing these, I discovered the working logic and these parts were not enjoyable at all. Learning is a painful and patience-requiring process. The fruit is delicious, but the growing process is painful. No pain no gain!
With ElijahManor I fully understood Lazy. Afterwards, minor touch-ups remained.
Lazy.nvim
ElijahManor - Zero To IDE Lazy
ElijahManor - Packer To Lazy
GITHUB : THE PLACE WHERE PLUGINS BORN
After understanding package managers, I started making tours on Github. My advice to you here is to learn to limit your searches. Doing a little research on Advanced Search will save you a lot of trouble and unnecessary reading. If you search by typing the codes below on your Github search screen, it will protect you from a lot of waste content. Personally, I discovered this after encountering many troublesome repos. Learn to learn from the experience before it's too late.
topic:neovim language:Lua
# language:vim optionally
By the way, let me tell you that you can actually implement many packages that claim to increase your productivity with short NEOVIM keymap assignments or AutoCommand statements. Minimalist approach saves lives. Instead of drowning in many plugins, work with as few plugins as are useful to you.
COLOR SCHEMES : STOP POINTING LASER AT MY EYES
I experienced the most troublesome processes when customizing color schemes. Since most of them did not have telescope support or other plug-in support, I had to constantly navigate through the settings. I said goodbye to many themes, especially due to syntax highlight problems. I browsed through Solarized themes and found 4 useful themes. When you start writing code for long periods of time, you have to learn to stay away from colorful screens and screens that constantly have notifications popping up left and right. Choose themes in pastel tones. Themes like rose-pine, catppuccin, solarized-osaka save lives. My advice, stay away from laser shows and dance parties!
LSP : SPAGHETTI CODE
The Language Server Protocol is an open, JSON-RPC-based protocol for use between source code editors or integrated development environments and servers that provide "language intelligence tools
Language Server Protocol (LSP) is the required plugin, but you will need many preliminary plugins during the installation phase. Watch as many videos as you can before starting this process, which will be a pain in the ass for new users. It takes a long time to set up the settings, but knowing these basics will give you an idea of what you are doing. Go to YouTube and search for the following plugins by typing Neovim next to them:
- Mason
- cmp
- luasnip
- treesitter
- lspsaga
PLUGINS : PRODUCTIVITY OR WHAT?
After trying many plugins, I designed the system that works for me as follows. This issue is open to discussion, but since it is a set that can do all my basic work, I do not need more.
- Telescope: It is useful to browse through all folders and buffers and view many plugins using zf in project management.
- Oil.nvim: manage your file system with vim codes
- Harpoon: Allows fast navigation between marks
- surround: Allows making quote, bracket and tag edits from selected texts.
- lazygit: Streamlines your Git workflow
- todo-comments: allows quick navigation through your todo notes
- whichkey: If you want to remember what you assigned to which key, be sure to use it.
- auto-pairs: enables automatic closing of tag, bracket expressions.
Of course, from here you can personalize it by adding other plugins. This is basically my plugin customization for now.
CONCLUSION
I end my article here by sharing screenshots.
Github Repo with settings:
Communication
Those who want to reach me can reach me through the link below:
Top comments (0)