# Vim

Vim is a highly configurable text editor with scripting, plugins, programming-language support, and integrations with other tools.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Tools

DevFeed: [Tools](<https://devfeed.tech/articles/tools-25375.md>)

Original publisher: [Read original article](<https://kau.sh/tools/>)

Author: Kaushik Gopal

Published: 2026-09-15T04:00:36.743345Z

Content type: article

Language: en

Sources: [Kaushik Gopal's Site](<https://devfeed.tech/sources/kaushik-gopal-s-site.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Cloudflare](<https://devfeed.tech/topics/cloudflare.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>), [Vim](<https://devfeed.tech/topics/vim.md>), [Hugo](<https://devfeed.tech/topics/hugo.md>), [Firefox](<https://devfeed.tech/topics/firefox.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Obsidian](<https://devfeed.tech/topics/obsidian-md.md>), [Font](<https://devfeed.tech/topics/font.md>)

Tags: [cloudflare](<https://devfeed.tech/tags/cloudflare.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [hugo](<https://devfeed.tech/tags/hugo.md>), [mac](<https://devfeed.tech/tags/mac.md>), [macos](<https://devfeed.tech/tags/macos.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-font](<https://devfeed.tech/tags/programming-font.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [tools](<https://devfeed.tech/tags/tools.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

A personal tools page listing services, programming tools, macOS applications, audio equipment, desk items, and physical products. It mentions Buttondown, a customized Hugo site deployed on Cloudflare Pages, Ghostty, tmux, Vim, Zed, Obsidian, Raycast, Firefox, CleanShot, and Logic Pro.

### Source excerpt

Bits ## Services ### Newsletter via Buttondown Statically generate site with Henry (highly customized Hugo theme) Deployed on Cloudflare Pages Programming ### Berkeley Mono is my programming font of choice Ghostty for terminal stuff (along with tmux) Within the terminal I'm almost entirely using Vim. Zed as my regular text editor MacOS ### Obsidian for notes & todos Raycast is my launcher Firefox for browsing CleanShot for screenshots on my mac Logic Pro for editing AI Stuff ### With AI evolving so fast, my tag ai-model-choice is a better place to track what I'm using. Atoms ## Desk ### Nordik Leather Desk Mat LEUCHTTURM1917 Soft cover journal dotted Uniball Deluxe 0.5mm Micro pens Audio ### Earthworks Ethos - 400 microphone USBPre 21 audio interface AirPods Max (yes for podcasting!) Physical ### I drive a Tesla Model Y (and eagerly waiting to move to an R3) These are no longer sold but are built like a tank. I'd probably pick the Motu 2 if my USBPre 2 ever fails ↩︎

## Vim wants you to control, VSCode wants you to consume

DevFeed: [Vim wants you to control, VSCode wants you to consume](<https://devfeed.tech/articles/vim-wants-you-to-control-vscode-wants-you-to-consume-25508.md>)

Original publisher: [Read original article](<https://buttondown.com/hillelwayne/archive/vim-wants-you-to-control-vscode-wants-you-to/>)

Author: Hillel Wayne

Published: 2026-08-18T16:26:05Z

Content type: opinion

Language: en

Sources: [Newsletter feed for Hillel Wayne's Newsletter](<https://devfeed.tech/sources/newsletter-feed-for-hillel-wayne-s-newsletter.md>)

Topics: [Vim](<https://devfeed.tech/topics/vim.md>), [Neovim](<https://devfeed.tech/topics/neovim.md>), [Visual Studio Code](<https://devfeed.tech/topics/visual-studio-code.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Emacs](<https://devfeed.tech/topics/emacs.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [config](<https://devfeed.tech/tags/config.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [vim](<https://devfeed.tech/tags/vim.md>), [vscode](<https://devfeed.tech/tags/vscode.md>)

### AI overview

The article contrasts Vim and Neovim's programmable, state-oriented configuration with VSCode's static configuration and fixed built-in commands. It argues that Vim-based editors provide substantially more direct control over editor behavior, while also requiring more configuration and commitment.

### Source excerpt

Newsletter updates were sporadic in July because of two weddings, two conferences (with two different talks!), and finishing Logic for Programmers. Huge thank you to everybody who bought a copy, as well as for your patience with the schedule. There's some podcast appearances, a conf talk, and a book sale at the end of this post. Newsletter updates will be sporadic in August because I just started my Developer Educator job at Antithesis. I'll have less time to write because I'll be working 40 hour workweeks, about 8 hours of which being actual work and the other 32 being bashing my head against NixOS. NixOS is the standard developer OS at the company. It's also a notoriously difficult distro to learn even for Linux heads, and I'm coming from Windows. The only way I am going to get anywhere is to go all in and commit fully to the NixOS philosophy.1 For one, I'm seeing how long I can last without my customary 2000-line Neovim config. Which immediately raises the question as to why I have 2000 lines of Neovim config. It's because Vim2 (and Emacs) think of configuration in a very different way than more popular editors do. Control and Consumption Say we want to make ctrl+n to save the current file. In VSCode, you put this in keybindings.json: [ { "key": "ctrl+n", "command": "workbench.action.files.save" } ] In Neovim, you put this in init.lua: vim.keymap.set('n', '<c-n>', function() vim.cmd.write() end) Now, a couple of differences to see. First, the VSCode example is invoking a fixed, built-in command, while Neovim can bind an arbitrary function. Second, in VSCode you edit a static configuration file with static data, while in Neovim you execute a command that edits the running editor state. In fact, it doesn't even need to be in a configuration file: you can add a new keymap directly from the command line. Though you'd probably instead do that command in the OG Vim way: map <c-n> :w<CR> And that does something different than a function: it makes pressing ctrl+n mean "d

## Vim: por qué merece la pena frente a nano

DevFeed: [Vim: por qué merece la pena frente a nano](<https://devfeed.tech/articles/vim-por-que-merece-la-pena-frente-a-nano-34091.md>)

Original publisher: [Read original article](<https://tengoping.com/blog/vim-por-que-aprenderlo-en-vez-de-nano/>)

Author: Antonio Pérez

Published: 2026-08-01T13:00:00Z

Content type: tutorial

Language: es

Sources: [tengoping.com](<https://devfeed.tech/sources/tengoping-com.md>)

Topics: [Vim](<https://devfeed.tech/topics/vim.md>), [POSIX](<https://devfeed.tech/topics/posix.md>), [Unix](<https://devfeed.tech/topics/unix.md>)

Tags: [alpine](<https://devfeed.tech/tags/alpine.md>), [distro](<https://devfeed.tech/tags/distro.md>), [editor](<https://devfeed.tech/tags/editor.md>), [posix](<https://devfeed.tech/tags/posix.md>), [unix](<https://devfeed.tech/tags/unix.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

A practical Spanish tutorial explaining why Vim is worth learning instead of nano. It covers how to exit, save, undo, and redo, then argues that Vim is widely available on Unix systems because vi is required by POSIX. It also discusses BusyBox, Alpine, and Vim's modes.

### Source excerpt

Vim parece complicado pero no lo es: aprende a salir, moverte y editar con lo mínimo imprescindible, sin miedo y sin memorizar todo de golpe.

## Vim Classic 8.3.0 released

DevFeed: [Vim Classic 8.3.0 released](<https://devfeed.tech/articles/vim-classic-8-3-0-released-20815.md>)

Original publisher: [Read original article](<https://drewdevault.com/blog/Vim-Classic-8.3.0/>)

Author: June 2

Published: 2026-06-02T00:00:00Z

Content type: release

Language: en

Sources: [Drew DeVault](<https://devfeed.tech/sources/drew-devault.md>)

Topics: [Vim](<https://devfeed.tech/topics/vim.md>)

Tags: [release](<https://devfeed.tech/tags/release.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

The author announces the first release of Vim Classic, a fork of Vim, version 8.3.0.

### Source excerpt

Following up on my earlier announcement that I was forking Vim, I'm happy to announce the first release of my fork today: Vim Classic 8.3.0. I have written a release announcement for vim-classic.org, which you can read here. Happy editing!

## I have officially retired from Emacs

DevFeed: [I have officially retired from Emacs](<https://devfeed.tech/articles/i-have-officially-retired-from-emacs-20514.md>)

Original publisher: [Read original article](<https://nullprogram.com/blog/2026/04/26/>)

Published: 2026-04-26T00:00:00Z

Content type: article

Language: en

Sources: [Chris Wellons](<https://devfeed.tech/sources/chris-wellons.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>), [Vim](<https://devfeed.tech/topics/vim.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [GUI](<https://devfeed.tech/topics/gui.md>), [Maintainers](<https://devfeed.tech/topics/maintainers.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [cpp](<https://devfeed.tech/tags/cpp.md>), [elfeed](<https://devfeed.tech/tags/elfeed.md>), [emacs](<https://devfeed.tech/tags/emacs.md>), [gui](<https://devfeed.tech/tags/gui.md>), [maintainers](<https://devfeed.tech/tags/maintainers.md>), [net-11](<https://devfeed.tech/tags/net-11.md>)

### AI overview

The author describes retiring from Emacs after 20 years of daily use and gradually switching to modal editing and Vim. They replaced two Emacs-based applications they relied on, M-x calc and Elfeed, with stackcalc and Elfeed2, multi-platform native C++ GUI applications. The article also discusses the need for new maintainers and the trade-offs involved in achieving feature parity.

### Source excerpt

This article was discussed on reddit and on Hacker News. This past Tuesday I typed C-x C-c in Emacs for the last time after 20 years of daily use. Though nearly half that time was gradually retiring it, switching to modal editing, then to Vim. Emacs is a platform, and I'd grown accustomed to its applications, especially those I built myself. There was no particular hurry, so replacements came slowly. With my newly-acquired superpowers I could knock out the last two pieces in a few days' work, namely M-x calc with stackcalc and Elfeed with Elfeed2. I'm especially excited about the latter because it already exceeds the original. Both are multi-platform, native C++ GUI applications using native UI components. These actively-in-use packages require new maintainers (apply on the project's issues/discussion): @ (about) aio (about) bitpack Elfeed (apply here) Impatient (about) javadoc-lookup (about) json-rpc memoize (about) nasm-mode (about) simple-httpd (about) Skewer (about) weak-ref (about) x86-lookup (about) No wonder it took so long for me to move on! I'm not handing these off to just anyone, and you'll need to establish your reputation. Having already made contributions is a good sign, even if never merged. I'm willing to transfer them off my namespace, though you'll need to manage the Melpa hand-off (on which I'll sign-off). If there are no takers, these projects will be archived but not deleted. Trying out wxWidgets The Emacs Calculator is amazing and the best calculator I've ever used, which is why nothing I could find was going to replace it. My clone uses GMP and MPFR for multi-precision, so it's far faster, as to be expected, but it's not nearly at feature parity. It's missing esoteric features including symbolic processing. Though it's enough to cover all of my own usage. I can add more features later. The Emacs Calculator manual served as a specification when building stackcalc. Elfeed has been a cornerstone of my daily routines for the past 13 years. Nothing

## Linux File Viewing Series

DevFeed: [Linux File Viewing Series](<https://devfeed.tech/articles/linux-file-viewing-series-4523.md>)

Original publisher: [Read original article](<https://feeds.feedblitz.com/~/952800815/0/baeldung/linux~Linux-File-Viewing-Series>)

Author: baeldung

Published: 2026-04-01T15:45:15Z

Content type: article

Language: en

Sources: [Baeldung - Linux](<https://devfeed.tech/sources/baeldung-linux.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [Shell](<https://devfeed.tech/topics/shell.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Vim](<https://devfeed.tech/topics/vim.md>), [pdf](<https://devfeed.tech/topics/pdf.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [comparison](<https://devfeed.tech/tags/comparison.md>), [file-viewing](<https://devfeed.tech/tags/file-viewing.md>), [file-viewing-series](<https://devfeed.tech/tags/file-viewing-series.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [linux](<https://devfeed.tech/tags/linux.md>), [pdf](<https://devfeed.tech/tags/pdf.md>), [series](<https://devfeed.tech/tags/series.md>), [techniques](<https://devfeed.tech/tags/techniques.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

A Linux command-line guide to viewing and inspecting file content, covering pagers, text searching, Vim navigation, file comparison, and tools for opening specialized formats such as PDF.

### Source excerpt

This guide covers the essential techniques for viewing files in Linux. The post Linux File Viewing Series first appeared on Baeldung on Linux. Related Stories How To Open Visio Files in Linux Linux File Editing Series How to View Font Files in Linux

## A eulogy for Vim

DevFeed: [A eulogy for Vim](<https://devfeed.tech/articles/a-eulogy-for-vim-20795.md>)

Original publisher: [Read original article](<https://drewdevault.com/blog/Forking-vim/>)

Author: March

Published: 2026-03-25T00:00:00Z

Content type: opinion

Language: en

Sources: [Drew DeVault](<https://devfeed.tech/sources/drew-devault.md>)

Topics: [Vim](<https://devfeed.tech/topics/vim.md>), [genai](<https://devfeed.tech/topics/genai.md>)

Tags: [personal](<https://devfeed.tech/tags/personal.md>), [thoughts](<https://devfeed.tech/tags/thoughts.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

The author reflects on Vim's profound personal importance, mourns its creator Bram Moolenaar, and considers Bram's values and legacy. The article also criticizes the environmental and social costs the author associates with generative AI.

### Source excerpt

Vim is important to me. I'm using it to write the words you're reading right now. In fact, almost every word I have ever committed to posterity, through this blog, in my code, all of the docs I've written, emails I've sent, and more, almost all of it has passed through Vim. My relationship with the software is intimate, almost as if it were an extra limb. I don't think about what I'm doing when I use it. All of Vim's modes and keybindings are deeply ingrained in my muscle memory. Using it just feels like my thoughts flowing from my head, into my fingers, into a Vim-shaped extension of my body, and out into the world. The unique and profound nature of my relationship with this software is not lost on me. A picture of my right hand, with the letters "hjkl" tattooed on the wrist I didn't know Bram Moolenaar. We never met, nor exchanged correspondence. But, after I moved to the Netherlands, Bram's home country, in a strange way I felt a little bit closer to him. He passed away a couple of years after I moved here, and his funeral was held not far from where I lived at the time. When that happened, I experienced an odd kind of mourning. He was still young, and he had affected my own life profoundly. He was a stranger, and I never got to thank him. The people he entrusted Vim to were not strangers, they knew Bram and worked with him often, and he trusted them. It's not my place to judge their work as disrespectful to his memory, or out of line with what he would have wanted. Even knowing Bram only through Vim, I know he and I disagreed often. However, the most personal thing I know about Bram, and that many people remember about him, was his altruistic commitment to a single cause: providing education and healthcare to Ugandan children in need. So, at the very least, I know that he cared. I won't speculate on how he would have felt about generative AI, but I can say that GenAI is something I care about. It causes a lot of problems for a lot of people. It drives rising ene

## Why modal editing became associated with Vim

DevFeed: [Why modal editing became associated with Vim](<https://devfeed.tech/articles/modal-editing-is-a-weird-historical-contingency-we-have-through-sheer-happenstance-25494.md>)

Original publisher: [Read original article](<https://buttondown.com/hillelwayne/archive/modal-editing-is-a-weird-historical-contingency/>)

Author: Hillel Wayne

Published: 2025-10-21T16:46:24Z

Content type: article

Language: en

Sources: [Newsletter feed for Hillel Wayne's Newsletter](<https://devfeed.tech/sources/newsletter-feed-for-hillel-wayne-s-newsletter.md>)

Topics: [Vim](<https://devfeed.tech/topics/vim.md>), [GUI](<https://devfeed.tech/topics/gui.md>)

Tags: [keyboard](<https://devfeed.tech/tags/keyboard.md>), [shortcuts](<https://devfeed.tech/tags/shortcuts.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

The article explains modal editing, focusing on how Vim uses modes to assign different functions to the same keys. It argues that modal editing's popularity likely followed from vi's historical success rather than from an obviously superior feature.

### Source excerpt

A while back my friend Pablo Meier was reviewing some 2024 videogames and wrote this: I feel like some artists, if they didn't exist, would have the resulting void filled in by someone similar (e.g. if Katy Perry didn't exist, someone like her would have). But others don't have successful imitators or comparisons (thinking Jackie Chan, or Weird Al): they are irreplaceable. He was using it to describe auteurs but I see this as a property of opportunity, in that "replaceable" artists are those who work in bigger markets. Katy Perry's market is large, visible and obviously (but not easily) exploitable, so there are a lot of people who'd compete in her niche. Weird Al's market is unclear: while there were successful parody songs in the past, it wasn't clear there was enough opportunity there to support a superstar. I think that modal editing is in the latter category. Vim is now very popular and has spawned numerous successors. But its key feature, modes, is not obviously-beneficial, to the point that if Bill Joy didn't make vi (vim's direct predecessor) fifty years ago I don't think we'd have any modal editors today. A quick overview of "modal editing" In a non-modal editor, pressing the "u" key adds a "u" to your text, as you'd expect. In a modal editor, pressing "u" does something different depending on the "mode" you are in. In Vim's default "normal" mode, "u" undoes the last change to the text, while in the "visual" mode it lowercases all selected text. It only inserts the character in "insert" mode. All other keys, as well as chorded shortcuts (ctrl-x), work the same way. The clearest benefit to this is you can densely pack the keyboard with advanced commands. The standard US keyboard has 48ish keys dedicated to inserting characters. With the ctrl and shift modifiers that becomes at least ~150 extra shortcuts for each other mode. This is also what IMO "spiritually" distinguishes modal editing from contextual shortcuts. Even if a unimodal editor lets you change a k

## Notes on switching to Helix from vim

DevFeed: [Notes on switching to Helix from vim](<https://devfeed.tech/articles/notes-on-switching-to-helix-from-vim-21122.md>)

Original publisher: [Read original article](<https://jvns.ca/blog/2025/10/10/notes-on-switching-to-helix-from-vim/>)

Author: Julia Evans

Published: 2025-10-10T00:00:00Z

Content type: opinion

Language: en

Sources: [Julia Evans](<https://devfeed.tech/sources/julia-evans.md>)

Topics: [Vim](<https://devfeed.tech/topics/vim.md>), [Neovim](<https://devfeed.tech/topics/neovim.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [comparison](<https://devfeed.tech/tags/comparison.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [switching](<https://devfeed.tech/tags/switching.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

The article records the author's experience switching from Vim and Neovim to the Helix text editor after three months of use. It discusses Helix's built-in language server support, repository search with match context, quick-reference help, multiple cursors, buffer switching, and several differences or annoyances compared with Vim and Neovim.

### Source excerpt

Hello! Earlier this summer I was talking to a friend about how much I love using fish, and how I love that I don't have to configure it. They said that they feel the same way about the helix text editor, and so I decided to give it a try. I've been using it for 3 months now and here are a few notes. why helix: language servers I think what motivated me to try Helix is that I've been trying to get a working language server setup (so I can do things like "go to definition") and getting a setup that feels good in Vim or Neovim just felt like too much work. After using Vim/Neovim for 20 years, I've tried both "build my own custom configuration from scratch" and "use someone else's pre-buld configuration system" and even though I love Vim I was excited about having things just work without having to work on my configuration at all. Helix comes with built in language server support, and it feels nice to be able to do things like "rename this symbol" in any language. the search is great One of my favourite things about Helix is the search! If I'm searching all the files in my repository for a string, it lets me scroll through the potential matching files and see the full context of the match, like this: For comparison, here's what the vim ripgrep plugin I've been using looks like: There's no context for what else is around that line. the quick reference is nice One thing I like about Helix is that when I press g, I get a little help popup telling me places I can go. I really appreciate this because I don't often use the "go to definition" or "go to reference" feature and I often forget the keyboard shortcut. some vim -> helix translations Helix doesn't have marks like ma, 'a, instead I've been using Ctrl+O and Ctrl+I to go back (or forward) to the last cursor location I think Helix does have macros, but I've been using multiple cursors in every case that I would have previously used a macro. I like multiple cursors a lot more than writing macros all the time. If I want to

## Hidden Gems: Part 1

DevFeed: [Hidden Gems: Part 1](<https://devfeed.tech/articles/hidden-gems-part-1-13482.md>)

Original publisher: [Read original article](<https://zed.dev/blog/hidden-gems-part-1>)

Author: Joseph Lyons

Published: 2025-10-07T00:00:00Z

Content type: tutorial

Language: en

Sources: [Zed Industries - Blog](<https://devfeed.tech/sources/zed-industries-blog.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Vim](<https://devfeed.tech/topics/vim.md>), [Rust](<https://devfeed.tech/topics/rust.md>)

Tags: [features](<https://devfeed.tech/tags/features.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [rust](<https://devfeed.tech/tags/rust.md>), [ui](<https://devfeed.tech/tags/ui.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

This article introduces hidden features and workflows in Zed, including command palette actions, customizable keybindings, Rust testing workflows, context-menu features, project-panel comparisons, and a focused writing setup.

### Source excerpt

Favorite workflows and hidden features from the Zed team and community.

## Vim Roadmap 2025

DevFeed: [Vim Roadmap 2025](<https://devfeed.tech/articles/vim-roadmap-2025-13564.md>)

Original publisher: [Read original article](<https://zed.dev/blog/vim-2025>)

Author: Conrad Irwin

Published: 2025-01-22T00:00:00Z

Content type: opinion

Language: en

Sources: [Zed Industries - Blog](<https://devfeed.tech/sources/zed-industries-blog.md>)

Topics: [Vim](<https://devfeed.tech/topics/vim.md>), [Neovim](<https://devfeed.tech/topics/neovim.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

The article outlines Zed's 2025 roadmap for Vim mode. It describes current improvements, including operator support, command-palette work, and Vim plugin integrations, then identifies planned work around editor-adjacent workflows, Vim compatibility, multi-cursor support, persistent state, collaboration shortcuts, and Git integration.

### Source excerpt

What's next for Vim mode in Zed?

## What's involved in getting a "modern" terminal setup?

DevFeed: [What's involved in getting a "modern" terminal setup?](<https://devfeed.tech/articles/what-s-involved-in-getting-a-modern-terminal-setup-21116.md>)

Original publisher: [Read original article](<https://jvns.ca/blog/2025/01/11/getting-a-modern-terminal-setup/>)

Author: Julia Evans

Published: 2025-01-11T09:46:01Z

Content type: opinion

Language: en

Sources: [Julia Evans](<https://devfeed.tech/sources/julia-evans.md>)

Topics: [Terminal](<https://devfeed.tech/topics/terminal.md>), [Shell](<https://devfeed.tech/topics/shell.md>), [Neovim](<https://devfeed.tech/topics/neovim.md>), [Vim](<https://devfeed.tech/topics/vim.md>), [Git](<https://devfeed.tech/topics/git.md>), [Firefox](<https://devfeed.tech/topics/firefox.md>)

Tags: [autocomplete](<https://devfeed.tech/tags/autocomplete.md>), [commands](<https://devfeed.tech/tags/commands.md>), [config](<https://devfeed.tech/tags/config.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [git](<https://devfeed.tech/tags/git.md>), [history](<https://devfeed.tech/tags/history.md>), [ls](<https://devfeed.tech/tags/ls.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

The article discusses what a modern terminal setup means to the author, including safe multiline paste, persistent shell history, useful prompts, 24-bit color, clipboard integration, command-specific autocomplete, shell colors, synchronized themes, automatic terminal recovery, keybindings, and scroll-wheel support. It emphasizes that achieving these conveniences requires coordinating the shell, terminal emulator, text editor, operating system, and applications.

### Source excerpt

Hello! Recently I ran a terminal survey and I asked people what frustrated them. One person commented: There are so many pieces to having a modern terminal experience. I wish it all came out of the box. My immediate reaction was "oh, getting a modern terminal experience isn't that hard, you just need to....", but the more I thought about it, the longer the "you just need to..." list got, and I kept thinking about more and more caveats. So I thought I would write down some notes about what it means to me personally to have a "modern" terminal experience and what I think can make it hard for people to get there. what is a "modern terminal experience"? Here are a few things that are important to me, with which part of the system is responsible for them: multiline support for copy and paste: if you paste 3 commands in your shell, it should not immediately run them all! That's scary! (shell, terminal emulator) infinite shell history: if I run a command in my shell, it should be saved forever, not deleted after 500 history entries or whatever. Also I want commands to be saved to the history immediately when I run them, not only when I exit the shell session (shell) a useful prompt: I can't live without having my current directory and current git branch in my prompt (shell) 24-bit colour: this is important to me because I find it MUCH easier to theme neovim with 24-bit colour support than in a terminal with only 256 colours (terminal emulator) clipboard integration between vim and my operating system so that when I copy in Firefox, I can just press p in vim to paste (text editor, maybe the OS/terminal emulator too) good autocomplete: for example commands like git should have command-specific autocomplete (shell) having colours in ls (shell config) a terminal theme I like: I spend a lot of time in my terminal, I want it to look nice and I want its theme to match my terminal editor's theme. (terminal emulator, text editor) automatic terminal fixing: If a programs prints out some

## How to enable mouse to copy & paste in vim

DevFeed: [How to enable mouse to copy & paste in vim](<https://devfeed.tech/articles/how-to-enable-mouse-to-copy-paste-in-vim-41913.md>)

Original publisher: [Read original article](<https://www.cyberciti.biz/faq/enable-vim-mouse-copy-paste-in-ubuntu-debian-linux-unix/>)

Author: Vivek Gite

Published: 2024-11-28T13:44:35Z

Content type: tutorial

Language: en

Sources: [nixCraft: Linux Tips, Hacks, Tutorials, And Ideas In Blog Format (RSS/FEED)](<https://devfeed.tech/sources/nixcraft-linux-tips-hacks-tutorials-and-ideas-in-blog-format-rss-feed.md>)

Topics: [Vim](<https://devfeed.tech/topics/vim.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Debian](<https://devfeed.tech/topics/debian.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [debian](<https://devfeed.tech/tags/debian.md>), [developers](<https://devfeed.tech/tags/developers.md>), [easy](<https://devfeed.tech/tags/easy.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [linux](<https://devfeed.tech/tags/linux.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

This tutorial explains how to enable mouse-based copy and paste in Vim on Ubuntu, Debian-based Linux distributions, and other Unix-like environments. It covers persistent configuration through Vim configuration files and mouse modes for terminal and GUI use.

### Source excerpt

Some Linux distro like Debian or specific BSD variants provide very little configuration support for mouse out of the box for Vim. Let us see how to paste in Vim using a mouse by enabling support, which is useful for new developers and sysadmin coming from Windows background. Love this? sudo share_on: Twitter - Facebook - LinkedIn - Whatsapp - Reddit The post How to enable mouse to copy & paste in vim appeared first on nixCraft.

## Why Zed Uses Its Own Vim Mode Instead of Embedding Neovim

DevFeed: [Why Zed Uses Its Own Vim Mode Instead of Embedding Neovim](<https://devfeed.tech/articles/why-not-just-embed-neovim-13579.md>)

Original publisher: [Read original article](<https://zed.dev/blog/zed-decoded-vim>)

Author: Thorsten Ball, Conrad Irwin

Published: 2024-06-13T00:00:00Z

Content type: article

Language: en

Sources: [Zed Industries - Blog](<https://devfeed.tech/sources/zed-industries-blog.md>)

Topics: [Neovim](<https://devfeed.tech/topics/neovim.md>), [Vim](<https://devfeed.tech/topics/vim.md>)

Tags: [video](<https://devfeed.tech/tags/video.md>), [vim](<https://devfeed.tech/tags/vim.md>), [zed](<https://devfeed.tech/tags/zed.md>)

### AI overview

A Zed Decoded article discusses Zed's Vim mode, including its supported features, limitations, and the reasons Zed does not embed Neovim.

### Source excerpt

In this episode of Zed Decoded, Thorsten talks Conrad about Zed's Vim mode and asks him: why not just embed Neovim?

## How to reload .vimrc file without restarting vim on Linux/Unix

DevFeed: [How to reload .vimrc file without restarting vim on Linux/Unix](<https://devfeed.tech/articles/how-to-reload-vimrc-file-without-restarting-vim-on-linux-unix-41923.md>)

Original publisher: [Read original article](<https://www.cyberciti.biz/faq/how-to-reload-vimrc-file-without-restarting-vim-on-linux-unix/>)

Author: Vivek Gite

Published: 2024-05-19T11:03:00Z

Content type: tutorial

Language: en

Sources: [nixCraft: Linux Tips, Hacks, Tutorials, And Ideas In Blog Format (RSS/FEED)](<https://devfeed.tech/sources/nixcraft-linux-tips-hacks-tutorials-and-ideas-in-blog-format-rss-feed.md>)

Topics: [Vim](<https://devfeed.tech/topics/vim.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Unix](<https://devfeed.tech/topics/unix.md>)

Tags: [configuration](<https://devfeed.tech/tags/configuration.md>), [customization](<https://devfeed.tech/tags/customization.md>), [easy](<https://devfeed.tech/tags/easy.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [linux](<https://devfeed.tech/tags/linux.md>), [unix](<https://devfeed.tech/tags/unix.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

A practical tutorial showing how to edit and reload Vim's ~/.vimrc configuration file without restarting the Vim session. It covers sourcing the file with Vim commands and adding key mappings for faster editing and reloading.

### Source excerpt

I am a new vim text editor user. I usually load ~/.vimrc using :vs ~/.vimrc for configuration. Once edited my ~/.vimrc file I need to reload it without having to quit Vim session. How do I edit my ~/.vimrc file and reload it without having to restart Vim on Linux or Unix-like system? Love this? sudo share_on: Twitter - Facebook - LinkedIn - Whatsapp - Reddit The post How to reload .vimrc file without restarting vim on Linux/Unix appeared first on nixCraft.

## How to perform find and replace operations within a visual selection in Vim

DevFeed: [How to perform find and replace operations within a visual selection in Vim](<https://devfeed.tech/articles/how-to-perform-find-and-replace-operations-within-a-visual-selection-in-vim-41965.md>)

Original publisher: [Read original article](<https://www.cyberciti.biz/tips/how-to-perform-find-and-replace-operations-within-a-visual-selection-in-vim.html>)

Author: Vivek Gite

Published: 2024-05-07T06:14:33Z

Content type: tutorial

Language: en

Sources: [nixCraft: Linux Tips, Hacks, Tutorials, And Ideas In Blog Format (RSS/FEED)](<https://devfeed.tech/sources/nixcraft-linux-tips-hacks-tutorials-and-ideas-in-blog-format-rss-feed.md>)

Topics: [Vim](<https://devfeed.tech/topics/vim.md>), [Code](<https://devfeed.tech/topics/code.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Unix](<https://devfeed.tech/topics/unix.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [file](<https://devfeed.tech/topics/file.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [developers](<https://devfeed.tech/tags/developers.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-desktop](<https://devfeed.tech/tags/linux-desktop.md>), [redhat-fedora-linux](<https://devfeed.tech/tags/redhat-fedora-linux.md>), [sys-admin](<https://devfeed.tech/tags/sys-admin.md>), [tips](<https://devfeed.tech/tags/tips.md>), [ubuntu-linux](<https://devfeed.tech/tags/ubuntu-linux.md>), [unix](<https://devfeed.tech/tags/unix.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

A practical Vim tutorial explaining how to perform find-and-replace operations within a visually selected range. It covers character-wise, block-wise, and line-wise selections, the substitution command, replacement confirmation, and saving the edited file.

### Source excerpt

Here's a quick tip for vim users. You can perform find and replace operations within a visual selection in Vim for text or code block. Visual selection for finding and replacing text in Vim allows developers and Linux/Unix users precise and efficient text editing. It's handy when you want to change specific portions of text or code blocks within a larger file without affecting other occurrences. This method required to minimizing manual search and reducing the risk of unintended code or text modifications. Let us see how to find and replace in Vim visual mode selection. Love this? sudo share_on: Twitter - Facebook - LinkedIn - Whatsapp - Reddit The post How to perform find and replace operations within a visual selection in Vim appeared first on nixCraft.

## Nix Weekly Recap: 2024-03-17

DevFeed: [Nix Weekly Recap: 2024-03-17](<https://devfeed.tech/articles/nix-weekly-recap-2024-03-17-34710.md>)

Original publisher: [Read original article](<https://nixpkgs.news/archive/2024-03-17/>)

Published: 2024-03-17T00:00:00Z

Content type: news

Language: en

Sources: [nixpkgs.news](<https://devfeed.tech/sources/nixpkgs-news.md>)

Topics: [Nix](<https://devfeed.tech/topics/nix.md>), [Release notes](<https://devfeed.tech/topics/release-notes.md>), [releases](<https://devfeed.tech/topics/releases.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [Deployment](<https://devfeed.tech/topics/deployment.md>), [JSON Web Tokens](<https://devfeed.tech/topics/jwt.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [Vim](<https://devfeed.tech/topics/vim.md>), [vs-code](<https://devfeed.tech/topics/vs-code.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>)

Tags: [announcements](<https://devfeed.tech/tags/announcements.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [cache](<https://devfeed.tech/tags/cache.md>), [caching](<https://devfeed.tech/tags/caching.md>), [community](<https://devfeed.tech/tags/community.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [linux](<https://devfeed.tech/tags/linux.md>), [macos](<https://devfeed.tech/tags/macos.md>), [news](<https://devfeed.tech/tags/news.md>), [recap](<https://devfeed.tech/tags/recap.md>), [release](<https://devfeed.tech/tags/release.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [repository](<https://devfeed.tech/tags/repository.md>), [vim](<https://devfeed.tech/tags/vim.md>), [vs-code](<https://devfeed.tech/tags/vs-code.md>), [weekly](<https://devfeed.tech/tags/weekly.md>)

### AI overview

A weekly recap of Nix community discussions, the Nix 2.21 release, FlakeHub Cache's private beta, portable services-flake, the teraflops deployment tool, a Vim port, and new Nixpkgs packages.

### Source excerpt

Weekly recap of the announcements and activity in the Nix community and on the NixPkgs package repository.

## Between Editors and IDEs, Where Zed Falls

DevFeed: [Between Editors and IDEs, Where Zed Falls](<https://devfeed.tech/articles/between-editors-and-ides-where-zed-falls-13428.md>)

Original publisher: [Read original article](<https://zed.dev/blog/between-editors-and-ides>)

Author: Thorsten Ball

Published: 2024-03-13T00:00:00Z

Content type: article

Language: en

Sources: [Zed Industries - Blog](<https://devfeed.tech/sources/zed-industries-blog.md>)

Topics: [ide](<https://devfeed.tech/topics/ide.md>), [Vim](<https://devfeed.tech/topics/vim.md>), [Emacs](<https://devfeed.tech/topics/emacs.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>)

Tags: [emacs](<https://devfeed.tech/tags/emacs.md>), [ide](<https://devfeed.tech/tags/ide.md>), [interviews](<https://devfeed.tech/tags/interviews.md>), [latency](<https://devfeed.tech/tags/latency.md>), [minimalism](<https://devfeed.tech/tags/minimalism.md>), [performance](<https://devfeed.tech/tags/performance.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [vim](<https://devfeed.tech/tags/vim.md>), [vs](<https://devfeed.tech/tags/vs.md>)

### AI overview

An interview with Zed's co-founders explores the product philosophy behind Zed, including where it sits between a lightweight editor and a full IDE. They discuss balancing powerful features with a fast, minimal user experience, as well as approaches to extensibility and scriptability.

### Source excerpt

Thorsten interviews co-founders Nathan, Max, Antonio about the product philosophy behind Zed and how they think about text editing along multiple axes: Emacs vs. Vim, IDE vs. Editor, Batteries included vs. Extensibility.

## Zed2 Development Progress Report

DevFeed: [Zed2 Development Progress Report](<https://devfeed.tech/articles/zed-weekly-28-13597.md>)

Original publisher: [Read original article](<https://zed.dev/blog/zed-weekly-28>)

Author: Joseph Lyons

Published: 2023-12-04T00:00:00Z

Content type: article

Language: en

Sources: [Zed Industries - Blog](<https://devfeed.tech/sources/zed-industries-blog.md>)

Topics: [ide](<https://devfeed.tech/topics/ide.md>), [ui](<https://devfeed.tech/topics/ui.md>), [telemetry](<https://devfeed.tech/topics/telemetry.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>), [Vim](<https://devfeed.tech/topics/vim.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [autocomplete](<https://devfeed.tech/tags/autocomplete.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [community](<https://devfeed.tech/tags/community.md>), [features](<https://devfeed.tech/tags/features.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [progress-report](<https://devfeed.tech/tags/progress-report.md>), [telemetry](<https://devfeed.tech/tags/telemetry.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [ui](<https://devfeed.tech/tags/ui.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

This progress report describes the Zed team's three-phase transition from Zed1 to Zed2: making the editor runnable, adding productivity features, and completing larger flagship features. The team aimed to release a working Zed2 preview by the end of 2023 and planned to open source it after Zed2 superseded Zed1.

### Source excerpt

Progress report on Zed2

## Zed Weekly: #21

DevFeed: [Zed Weekly: #21](<https://devfeed.tech/articles/zed-weekly-21-13590.md>)

Original publisher: [Read original article](<https://zed.dev/blog/zed-weekly-21>)

Author: Joseph Lyons

Published: 2023-09-29T00:00:00Z

Content type: article

Language: en

Sources: [Zed Industries - Blog](<https://devfeed.tech/sources/zed-industries-blog.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [Storybook](<https://devfeed.tech/topics/storybook.md>), [Prettier](<https://devfeed.tech/topics/prettier.md>), [Vim](<https://devfeed.tech/topics/vim.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [feature](<https://devfeed.tech/tags/feature.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [storybook](<https://devfeed.tech/tags/storybook.md>), [ui-components](<https://devfeed.tech/tags/ui-components.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

A weekly development update for Zed covering Prettier integration, improved language-server logs, a Storybook setup for rebuilding the UI, Vim mode updates, collaboration work, and dashboard chart optimization.

### Source excerpt

Improving following in collaboration, polishing channels, and continuing to rebuild Zed's UI

## Zed Weekly: #17

DevFeed: [Zed Weekly: #17](<https://devfeed.tech/articles/zed-weekly-17-13586.md>)

Original publisher: [Read original article](<https://zed.dev/blog/zed-weekly-17>)

Author: Kirill Bulatov

Published: 2023-08-22T00:00:00Z

Content type: article

Language: en

Sources: [Zed Industries - Blog](<https://devfeed.tech/sources/zed-industries-blog.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Code](<https://devfeed.tech/topics/code.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [Embeddings](<https://devfeed.tech/topics/embeddings.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [tokenization](<https://devfeed.tech/topics/tokenization.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Vim](<https://devfeed.tech/topics/vim.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [algorithm](<https://devfeed.tech/tags/algorithm.md>), [code](<https://devfeed.tech/tags/code.md>), [embeddings](<https://devfeed.tech/tags/embeddings.md>), [performance](<https://devfeed.tech/tags/performance.md>), [tokenization](<https://devfeed.tech/tags/tokenization.md>), [ui](<https://devfeed.tech/tags/ui.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

Zed Weekly #17 covers work on AI features, including an inline assistant and incremental application of GPT-generated text. It also reports progress on the Semantic Index, Search UI, background operation queues, planned embeddings caching and tokenization optimizations, language server support, performance, and Vim emulation.

### Source excerpt

Work on AI, language servers, channels and more.

## A brief and incomplete history of modal text editors

DevFeed: [A brief and incomplete history of modal text editors](<https://devfeed.tech/articles/a-brief-and-incomplete-history-of-modal-text-editors-37705.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/ed/>)

Author: Carlos Alexandro Becker

Published: 2023-08-20T00:00:00Z

Content type: article

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [Vim](<https://devfeed.tech/topics/vim.md>), [Unix](<https://devfeed.tech/topics/unix.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [editor](<https://devfeed.tech/tags/editor.md>), [history](<https://devfeed.tech/tags/history.md>), [text](<https://devfeed.tech/tags/text.md>), [unix](<https://devfeed.tech/tags/unix.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

The article provides a brief, explicitly incomplete history of modal text editors, covering the author's early experiences with Turbo C and Vim before discussing Ed, Ex, and Vi. It explains modal editing and describes how Vi developed from Ex and Ed.

### Source excerpt

In this post I'm going to talk about some old text editors you probably never heard of, what is modal text editing, and why people like it so much.

## This Week at Zed Industries: #13

DevFeed: [This Week at Zed Industries: #13](<https://devfeed.tech/articles/this-week-at-zed-industries-13-13548.md>)

Original publisher: [Read original article](<https://zed.dev/blog/this-week-at-zed-13>)

Author: Mikayla Maki

Published: 2023-07-28T00:00:00Z

Content type: article

Language: en

Sources: [Zed Industries - Blog](<https://devfeed.tech/sources/zed-industries-blog.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Vim](<https://devfeed.tech/topics/vim.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [Figma](<https://devfeed.tech/topics/figma.md>), [Tree-sitter](<https://devfeed.tech/topics/tree-sitter.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [figma](<https://devfeed.tech/tags/figma.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [ui](<https://devfeed.tech/tags/ui.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>), [vim](<https://devfeed.tech/tags/vim.md>)

### AI overview

This weekly Zed update covers work on text-based channels for code conversations and public collaboration sessions, including streaming, project editing, and read-only participation. It also discusses Vim emulation improvements, drag-and-drop experimentation, GPUI and interface design work, and dynamically styled syntax through tree-sitter queries.

### Source excerpt

Settling back into the long term.

## Writing prettier Haskell with Unicode Syntax and Vim

DevFeed: [Writing prettier Haskell with Unicode Syntax and Vim](<https://devfeed.tech/articles/writing-prettier-haskell-with-unicode-syntax-and-vim-27911.md>)

Original publisher: [Read original article](<http://alt-romes.github.io/posts/2023-06-21-haskell-unicode-syntax-vim.html>)

Published: 2023-06-21T00:00:00Z

Content type: tutorial

Language: en

Sources: [Romes' Musings](<https://devfeed.tech/sources/romes-musings.md>)

Topics: [Haskell](<https://devfeed.tech/topics/haskell.md>), [Vim](<https://devfeed.tech/topics/vim.md>)

Tags: [haskell](<https://devfeed.tech/tags/haskell.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [vim](<https://devfeed.tech/tags/vim.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

This tutorial explains how GHC Haskell's UnicodeSyntax extension lets programmers use Unicode symbols for selected keywords and identifiers. It also shows how Vim digraphs provide convenient two-key input for Unicode symbols, with examples of common Haskell notation and configuration options.

### Source excerpt

Contents 1 Haskell's Unicode Syntax Extension 2 Digraphs in Vim 3 Conclusion 1 Haskell's Unicode Syntax Extension Haskell (well, GHC Haskell) features an extension called UnicodeSyntax. When enabled, this extension allows the use of certain unicode symbols in place of their corresponding keywords. A great example is the forall keyword being equivalent to the unicode symbol ∀, the two of which can be used interchangebly when UnicodeSyntax is enabled. Furthermore, with Haskell being a unicode-friendly language, one can define common Haskell functions, operators or type variables using unicode symbols - which doesn't even require UnicodeSyntax to be enabled. For example, one can define the predicate ∈ on lists as an alias for elem as follows: -- 5 ∈ [1,3,5] == True (∈) :: ∀ α. Eq α => α -> [α] -> Bool (∈) = elem In practice, I use just a handful of unicode symbols both as keywords and as identifiers, but a mostly comprehensive list of the keywords that have unicode alternatives is presented in the GHC user's guide UnicodeSyntax extension page. Specifically, in most of my programs you can be sure to find the following: ∀ instead of forall, which is faster to input than the whole word. A lot of unicode type variables, α, β, τ, σ, δ, κ, ρ - they are really easy to type too. ⊸ instead of %1 ->, to use the so-called "lollipop" notation for linear functions. In my opinion, those are low-hanging niceties (with vim) that make the program look better overall, but there are others that I haven't yet reached for which you may still find good/useful. For example, there's a library in hackage, containers-unicode-symbols, which exposes multiple unicode variants of functions on containers (Maps,Sets,...) such as ∈,∉,∅,∪,∩,⊆,⊈. Finally, I usually add default-extensions: UnicodeSyntax to my cabal file to make the extension available by default on all modules. However, you can also enable it on a per module basis as usual with {-# LANGUAGE UnicodeSyntax #-} at the top of the module. 2 Dig

[Next page](<https://devfeed.tech/topics/vim.md?cursor=WyIyMDIzLTA2LTIxVDAwOjAwOjAwKzAwOjAwIiwgImIzODBhOTAyLWJlMDctNDA2Mi1hNTZiLTY4NWVlZWE1ZGEyNSJd>)