Skip to content

Piero Bosio Social Web Site Personale Logo Fediverso

Social Forum federato con il resto del mondo. Non contano le istanze, contano le persone

Today's follow-up #FreeSoftwareAdvent entry is vi/vim.

Uncategorized
1 1 8
  • Today's follow-up entry is vi/vim.

    Which I use depends on the situation. Classic vi/nvi tends to be lighter weight and start faster, while vim offers extra features that I find particularly useful). I usually just type `vi` which gets me `vi` on OpenBSD, `nvi` on FreeBSD, and `vim` (or `vim-tiny`) on most flavors of Linux. If I specifically want vim features, I'll invoke it as such directly.

    I could go on for ages about favorite features, but a select few:

    • the ability to keep my hands on the home row and not use a mouse is helpful for preventing RSI symptoms

    • it's a language¹ of editing, involving counts, verbs/commands, and objects/motions, so I can express my editing *intent* and then use the period command to re-issue that same editing *intent*

    • the :global or :substitute commands can make massive-yet-precise edits across huge files

    • the :*do commands extend that power across multiple files, allowing me to precisely edit millions of lines across thousands of files with targeted precision

    • it's ubiquitous—even as some Linux distros have started removing ed(1) from the base installs , relegating it to packages, I can always type `vi` on any Unix-like/POSIX system and be editing with a powerful editor. And with builds for Windows and my phone, I can use it everywhere. No need to install anything

    • they work just fine over a SSH connection without a GUI, and use minimal resources so they work even on that old hardware from the 90s.


    ¹ https://gist.github.com/nifl/1178878

  • stefano@mastodon.bsd.cafeundefined stefano@mastodon.bsd.cafe shared this topic on

Gli ultimi otto messaggi ricevuti dalla Federazione
Post suggeriti
  • 0 Votes
    1 Posts
    11 Views
    Today's #FreeSoftwareAdvent entry is my podcatcher, castget(1). I've used several CLI podcatchers over the years, changing mostly because hpodder (my then-favorite) became deprecated and dropped out of repos, so I had to find a replacement.Configuration is a simple INI-style file, it allows me to post-process files (certain ones I cut off the 7-minutes of advertising at the beginning, customize ID3/ID3v2 tags), and give them a naming-convention that works for how I listen.It runs nightly from cron(8) downloading to my queue directory-tree, emailing me the resulting output, and saves its state in files that can be fairly easily tracked in version-control (annoyingly it doesn't sort them, so every run mangles them, but a little processing with vim makes quick work of them, meaning the resulting diff output is just the new podcasts and a top-level timestamp change, not a complete remunging of the file). About every 3–4GB of queued-up files, I've usually reached the ones on my player/phone, delete those, and replace them with the fresh queue. It does mean that news podcasts are largely worthless because there could be a 3–4wk lag between when the episode releases and I eventually catch it in my player.It's simple, it works, and it plays well with the rest of my ecosystem. I like it.
  • 0 Votes
    1 Posts
    7 Views
    Today in #FreeSoftwareAdvent, it's pf(4)Having lived through several iterations of firewall management tools on Linux (and FreeBSD offers both IPFW, IPFilter, and pf in the base system), I've come appreciate the simplicity and declarative nature of pf.conf for my firewall management.The only downside is the quirky syntax of pfctl(8) but I do like being able to run my rules through it to sanity-check them from vi/ed with:w !pfctl -nvf -before installing them.
  • 0 Votes
    1 Posts
    9 Views
    Today's #FreeSoftwareAdvent is all about XMPP.Snikket (https://snikket.org/) is an easy-to-install, and easy-to-administer, XMPP server. It is designed for families and other small groups. The apps for Android and iOS (based on Conversations, I think) are great.Dino (https://dino.im/) is my desktop XMPP client of choice.Profanity (https://profanity-im.github.io/) is a terminal / console XMPP client, which is incredibly convenient.Why not have a fun festive project of setting up an XMPP-based chat server for you and your family and friends?#XMPP #FOSS #SelfHosting
  • 0 Votes
    1 Posts
    8 Views
    Though a bit niche, my #FreeSoftwareAdvent today is ed(1). As the goofball behind @ed1conf, I certainly play it up, but I certainly use it more than the average Unix/BSD/Linux user.A while ago I wrote up list of reasons¹ why one might use ed, and some are more obscure/improbable reasons (though I've encountered all of them in that post), there are a couple of those that drive me back to ed regularly:• I can still see the output of previous commands on the screen while I edit, where a full-screen editor would obscure that output that I need to incorporate in my edit• it's just darn fast for a quick edit, changing a variable name or adding/removing an entry in a list, etc. No startup costs for a honkin' huge $VISUAL with dozens of plugins and language-server processes and GUI rendering• very usable on low-bandwith/high-latency connections like I sometimes get when I remote into machines (less of a problem now, but I still experience sessions where I'll SSH in, invoke ed, make the change, write & quit, and exit the shell, in a couple seconds, while the screen repaints things oh-so-slowly• and most importantly, there's quality geek-cred for using it in front of others 😆⸻¹ https://blog.thechases.com/posts/cli/why-ed1/