Preferences

wilkystyle
Joined 1,263 karma
https://onebadbit.com

  1. "Enable enhanced agentic features for an enriched experience across our operating system!"

        [      Always Allow     ]
        [       Allow Once      ]
        [ Remind me in 24 hours ]
  2. I don't even have this issue with uBlock Origin Lite on mobile Safari. I'm fully browser-based on mobile for YouTube these days. No ads, no delay.
  3. I suspect that the people making these claims that Safari is no longer the most battery efficient are not Apple users. It's quite easy to empirically validate which browsers are most efficient by looking at the average energy impact in Activity Monitor. Safari is the winner, Chrome/Brave are not far behind, and Firefox is the clear loser.
  4. I like this take. While I've primarily lived in Python for much of my career (and I don't see that changing soon), I've tried to find reasons to use other languages in at least a hobby capacity so that I can (1) keep my learning muscles warmed up and (2) because they can often shape how I think about software in general.

    Like the Alan Perlis (I think) quote goes: "A language that doesn't affect the way you think about programming is not worth knowing."

  5. My configuration[0] doesn't quite meet all of your requirements, but you might be able to get some ideas from it. If you delete my hacky and very opinionated color theme configuration, it's 418 lines.

    - I use Neovim in the terminal, so that's where I configure the font (Hack Nerd Font Mono) [1], which I install via homebrew on macOS[2].

    - LSP: Can't recommend mason.nvim and mason-lspconfig enough. Install LSP servers with mason.nvim, and then mason-lspconfig handles automatically configuring and enabling whatever you've installed.

    - I'm using mini.icons[3]

    - For the file browser, I highly recommend Oil.nvim[4], which I discovered from this video by TJ DeVries[5].

    - I was using fzf-lua, but switched back to Telescope because it was a better fit for me personally (I missed C-k to automatically append a file glob to live_grep. I missed being able to toggle the previewer. I missed being able to hit Esc and move around the picker input box with Vim motions)

    Might be misunderstanding "splits I can manage with the keyboard", but (Neo)vim is pretty configurable here! I actually just use the default keybindings of e.g.

    - `C-w` then HJKL to move

    - `C-w C-v` to open a side-by-side (vertical) split

    - `C-w C-q` to close the current split

    - `C-w C-o` to close other splits (make current split the only one)

    - `[NUMBER] C-w C-w` to jump to the [NUMBER]th split.

    - `C-w o` to jump back to the last split you were at

    [0] https://github.com/wilkystyle/nvim

    [1] https://www.nerdfonts.com/

    [2] https://gist.github.com/davidteren/898f2dcccd42d9f8680ec69a3...

    [3] https://github.com/wilkystyle/nvim/blob/db16245731dea45f0c58...

    [4] https://github.com/stevearc/oil.nvim

    [5] https://www.youtube.com/watch?v=-r1mMg-yVZE

  6. Are you referring to the eldoc help text in the echo area at the bottom? Hard to know without more specifics, but maybe one thing to check might be the value of eldoc-echo-area-use-multiline-p. I have mine explicitly set to `nil` because I find the default eldoc behavior of constantly resizing the echo area to fit more information to be very distracting. I instead have a keybinding to call `eldoc` (an alias for `eldoc-print-current-symbol-info`) on demand, which opens a side split that shows the full symbol information.
  7. > I'm currently using vim8 because it's what is available within my LTS distribution.

    I have come to love modern Neovim so much that I wrote a simple Python package[0][1] to solve this issue, at least for folks who already have to work within the Python ecosystem and use tools like `uv` or `pipx`.

    You can install Neovim 0.11.4 (latest version as of building that package) with `uv tool install binwheels-neovim` or `pipx install binwheels-neovim`, and quickly be up and running with a modern Neovim on Windows, macOS, or Linux.

    The package just wraps the official Neovim releases and relies on uv or pipx to select the right binaries for your operating system and architecture. The exception is Linux, where I actually build the binaries from source in a manylinux container[2] because I wanted older GLIBC support than the official Neovim releases are compiled for. Was tired of the official releases not supporting the older Linux systems I often need to work on.

    [0] https://pypi.org/project/binwheels-neovim/

    [1] https://github.com/wilkystyle/binwheels-neovim

    [2] https://github.com/wilkystyle/binwheels-neovim/actions/runs/...

  8. This is a great question! It's also a really hard one to answer.

    When newer developers come to me looking for a recommendation of an editor to use, I don't often recommend Neovim, and I pretty much never recommend Emacs. I do recommend learning Vim motions, however, and my go-to is VS Code with the vscode-neovim plugin (uses actual nvim binary under the hood—no crappy emulation slowness/inaccuracies!)

    For me personally, I've never met a situation where my Neovim or Emacs configuration couldn't handle a refactor or some other thing an IDE does. And then with all the other things like search/navigation (Consult+Orderless in Emacs is unparalleled) and working with files, git, or the filesystem (dired-mode in emacs, Oil.nvim for Neovim)... I'm just so much faster in one of those two editors than I am in any IDE. The ability to do everything you need in a single tool using the same paradigm and keybindings and concepts to get all of it done is pretty powerful.

    I do also have a nervous aversion to using products that are not fully open source. Probably an OCD fear of losing full control over my editing and development experience.

  9. > I also switched from lsp-mode to eglot and it's better. Less fragile.

    I agree with this, and it's a big reason why I made the switch myself. I also find myself favoring lightweight (and especially builtin) capabilities, because really large, comprehensive plug-ins tend to have their own paradigms or ways of doing things that break from the super well-designed Emacs system of everything just working together magically.

  10. I think that is an accurate assessment! It's actually the reason I prefer it. I only wanted the ability to expand to treesitter text objects and then contract that selection if desired. I almost wrote it myself but then found that plug-in.
  11. Yes! I was very happy to see this. It's simplified my configuration a little bit, but there are still some niceties I would consider as necessary in order to be productive, so I am using Mason, mason-lspconfig (automatically configure and use any lsp servers installed by mason), and Blink for fast and ergonomic autocomplete popup.

    IMO Neovim OOB experience isn't quite as nice as what Eglot and completion-preview-mode do for the Emacs OOB experience, but I love that every time I check back in on the latest state of either editor, they are sensibly adding really solid functionality to the core that continuously reduces my reliance on third-party plug-ins!

  12. For me personally, there's probably too much to put in a comment, but the essence of it is:

    - Vim modes are prolific, but they always fall short in some annoying way (Jupyterlab-vim plug-in is so bad it's almost not even worth considering Vim emulation). I inevitably find myself missing the full power of true Neovim, especially with the live find/replace in the buffer, `:cdo`, and things like `:g//norm` (which could be an entire tutorial in itself!)

    - Emacs: I have never met another editor (or even piece of software) that is not only so customizable but so designed to be customized. It's really hard to capture it in words, but it's such a comprehensive ecosystem of tools that all are designed to work together incredibly well and designed in such a way that when you make your customizations you can do it in a way that everything still plays really nicely together. For example, I can use Tramp to make my local, fully-customized Emacs edit on a remote filesystem as though my local setup is there, any arbitrary number of SSH hops away, even sudo'd to root on the target machine. I can further leverage the built-in /docker: protocol to edit with my local editor, on that remote machine, as root. Eglot plays nicely so my local editor uses remote LSP servers. dired-mode plays nicely so that I can browse and modify the filesystem on the remote target with my local editor. Because everything is nicely integrated together, pressing M-! to run a shell command while editing a remote buffer will run the shell command on the remote target in the same directory as that remote buffer. Similarly, M-x shell opens a terminal window on the remote target, in the same directory as the remote file I'm editing, as whatever user I have sudo'd to (if applicable). And it does everything with pure SSH, no remote daemon needed. And then there is the customization. Vim/Neovim score very well on the customization front, but I guess the way I would put it is that the difference in philosophy is that Vim/Neovim (and most other customizable software) are applications for which the developers give you a ton of APIs to affect the behavior of an otherwise closed system. With Emacs, by contrast, nearly all of the system is open. There are compiled C functions at the core, but anything in lisp is there for inspecting and modifying in real time while the system is running. And for all the things that are compiled that you cannot affect, there are further paradigms such as the advice system, which allows you to modify built-in behavior by wrapping existing functionality with things like pre- or post- actions (among other things too numerous to get into in a comment). emacs is built with the philosophy that there should never be an area of the software that you don't fully own, control, and have the ability to inspect and understand.

    I guess this turned into a classic Emacs-nerd rant about why Emacs is great, but to answer your question the long way:

    There's no Vim like (Neo)vim, and if you are an advanced enough (Neo)vim user, everything else falls short in ways that suck.

    And there is simply no software I have ever come across like Emacs. It takes a lot of work to make it your own, and I totally get that is not for everyone. But if it is for you, everything else is too limiting.

    (maybe to answer your actual question, I've never successfully made the switch. I always come back.)

  13. I've recently been on a little side quest to rebuild my editor configurations (20 year Emacs user, 15 year Vim user—in parallel with Emacs because I can't seem to pick a favorite). The goal is to see how quickly I can get to a daily-driving complete setup for enterprise-grade software work largely in Python. My goal for the rebuild is to see how much I can drop as far as reliance on third-party extensions and still have the functionality that I need (or which makes me unreasonably more productive).

    My Neovim configuration[0] is currently the best it's been IMO, but I ended up having a few more plugins than I thought I would need.

    I am earlier along in my Emacs rebuild, but what is really interesting to me is that there are a lot of improvements in modern versions of Emacs (30+) that dramatically reduce my dependence on third party plug-ins. Eglot has been fantastic for me, as a former long-time lsp-mode user. Completion preview mode is not quite a replacement for corfu, but it's pretty darn good and only going to get better.

    So far my list of must have plug-ins for Emacs:

    - Magit - Expreg (teeesitter expand region) - Multiple cursors - dape (debugging in coordination with Eglot)

    Thinking I will probably end up adding Consult + orderless, too, as that is a search/navigation superpower.

    [0] https://github.com/wilkystyle/nvim

    edit to add nvim repo link

  14. Hey all—author here. Releasing this fun little side project today, as it has been helpful to me and thought it might be beneficial to others as well. I work with Python in my day job, and I spend a lot of time in other environments that are ephemeral or which do not have a compiler (and I do not have admin privileges). I can usually get by with whatever Vim is present or available, but sometimes it's just nice to have my full development environment. This was a fun effort to see how much I could reduce the effort of getting my full Neovim configuration up and running. Happy to answer any questions!
  15. The silent killer
  16. An extremely infuriating one that repeatedly gets me because I forget about it: the AM/PM wheel when setting an iOS alarm. If I set an alarm the night before and the last thing I do is flick the wheel to AM, but then hit save before the animation has finished it's very subtle and slight easing/bouncing animation, the setting remains at its original value (PM because I'm creating the alarm at night) and thus the alarm does not go off in the morning when I expected it to.
  17. Yep. I exclusively pay via credit card for this reason alone. (I have my autopay set to pay down the entire balance each month)

    Rewards are nice, but not the primary reason I use a credit card.

  18. 100% agree. I started over in 2022 or 2023 after 10 years of Vim cruft building up by moving to a Lua-based Neovim setup with Packer (now-unmaintained package manager). It was definitely an improvement, and I was impressed by how smooth and easy it was to get set up with a modern, fully-featured Neovim setup. However, I felt a little uneasy with all the packages needed to get a really good LSP setup without a ton of work (lsp-zero, lspconfig, etc).

    Deleted my ~/.config/nvim/ directory the other day and started again just to see what the experience was like with modern Neovim capabilities, and it was so much easier!

This user hasn’t submitted anything.