This is a 12 year dream. I have always run a Windows workstation along side a Debian laptop. I am no stranger to Debian. I have a 12 year association with it. I am not a Linux wizard yet but have been adept with it.
Why not use Debian daily then? My personal computing usage unfortunately centered around consumption rather than creation. I watched videos, listened to podcasts, read technical articles, and browsed social media. On top of this, inertia and great software like Visual Studio, Notepad++, Excel, OneDrive held me back.
Visual Studio is an absolute must-have for all .NET developers. I built small pieces of complex web projects only occasionally. VS Code on Linux is decent for .NET development but it is not the same. Though Jetbrains Rider existed along-side, it is unthinkable to drop Visual Studio. At least for dark matter developers.
Notepad++ is a fabulous software program that had no complete alternatives on Linux. I used it for scripting, text manipulation, note taking, dumping and editing thoughts. Scintilla-based equivalents Geany, SciTE exist, but do not come close.
MS-Office Excel is another remarkable software program with no real alternatives in other ecosystems. It is worth the 5K INR per year. Organizing data, life planning, and creating simple reports are a few of its greatest capabilities. Also, the formulas system is amazing. OneDrive is another great and a utilitarian software program from the Microsoft stable.
So, why now? I had the most fun and growth when I built things. I love the independence that comes with the experience of building things. As far as I can remember, I was always a tinkerer, thinker, builder, doer and explorer. After a decade or so of inaction, I needed a change. A few things fell into place recently.
- Windows is about to get a whole lot more annoying. An increase in ads, baked-in Copilot, and a suffocating push to outlook user-linked usage.
- Jetbrains Rider became formidable now for CLI and web app development.
- I learnt enough of apt-pinning, backports and makedeb repository.
- The last straw is from an unexpected experience. I set up a Win 11 VM recently using the KVM+QEMU route. I noticed that the VM's performance was quite responsive. KVM+QEMU despite all the pain felt worthy. I cannot recommend it enough.
Immediately I decided to remove Windows, install Debian with a Windows VM inside. I will write about various experiments and experiences over the next year. These are some of the sub-projects on my mind in no particular order.
- Write about this setup
- Implement a nice 3-2-1 backup strategy
- Write about significant alternatives
- Write about significant issues
- Linking to phone
- Configure monitoring, notifications and alerts
- Configure auto dark mode
- Find a way to play an old strategy game on Linux
VS Code has gotten really fast recently but it is more of a combination of having the right plugin (TextFX in this case) and the general fastness. Someone should ideally just port that TextFX. I thought about doing that a lot of times, but it was a lack of time + lack of skill issue :)
Again I do use VS Code for the occasional frontend work. It is great but for all heavy duty manipulation sometime really is off in VS Code. It could be that I haven't out of inertia tried too much.
I don't know if I can qualifiedly explain what it is about the plugins, they work well and have sane defaults. Notepad++ with all its custom panels, that plugins create a quite a clunkiness in there, but having those separate panels sometimes gives it a unique and flexible usage experience.
About the edit thing, there are just so many options that sometimes I forget that TextFx plugin exists. There are 100 or so options in that edit menu neatly categorized into sub menus like Insert, Copy, Indent, Line Operations, Blank Operations, Auto-completion, Paste Special, On Selection, Multi-select All, etc each having 5 to 7 operations.
Line Operations for example has these:
Another great thing is the whole design and the options around managing bookmarks while searching. I should write a blog post on it :)
Given those options, you may want to try vim :) It's a bit different in how you interact with it (pressing stuff on the keyboard instead of clicking stuff in menus, plus it's more of an imperative vs declarative approach, i.e. you tell vim how to do stuff instead of what you need to be done; the good part is being independent of what sb thought you may need to do, the bad -- having to learn editing primitives and stuff), but it can certainly do stuff you've mentioned, sometimes with some help from external programs:
yyp
[(yy)ank_curren and (p)aste];J
orgJ
to join current line with the one below with or without space as a separator respectively. You can also combine it with:g
or:v
andnorm
or macros to make this edit on lines matching (g
) or not (v
) a specific regex (e.g.:g/join me/norm J
will join all lines containing "join me" with that below). Splitting also depends;v10j:.!tac
will reverse 11 lines, including the one with the cursor, via calling (!
)tac
on the selection (v
) of the current line and 10 below (10j
) and pasting its output in the file you're editing (.
) (it'll replace stuff you've selected). Replacetac
withshuf
orsort
for the other options mentioned. Removing duplicates without sorting - https://stackoverflow.com/questions/11532157/remove-duplicate-lines-without-sorting#11532197Bonus: neovim integrates with vscode quite well, and on itself it handles reasonably huge files without an issue.
Whoa, thank you for the elaboration. As I said in another comment, I was vim user for a short time but it may take a long time to use it again. I don't rule out vim from my OSS life. Who knows what will transpire :)