Vi, born from the ashes of the ed editor, was created by Bill Joy in 1976. Seeking a more visual and interactive editing experience, Joy leveraged the ex editor, adding the visual mode which became the defining characteristic of "vi" (visual). Later, Bram Moolenaar picked up the torch, porting Vi to the Amiga and significantly expanding its functionality, including multi-level undo, support for multiple files and windows, and an extensible plugin system. This enhanced version became Vim (Vi IMproved), evolving from a simple visual editor into a powerful and highly customizable text editor used by generations of programmers and developers.
Bcvi allows running a full-screen vi editor session over a limited bandwidth or high-latency connection, such as a serial console or SSH connection with significant lag. It achieves this by using a "back-channel" to send screen updates efficiently. Instead of redrawing the entire screen for every change, bcvi only transmits the differences, leading to a significantly more responsive experience. This makes editing files remotely over constrained connections practical, providing a near-native vi experience even with limited bandwidth. The back-channel can be another SSH connection or even a separate serial port, providing flexibility in setup.
Hacker News users discuss the cleverness and potential uses of bcvi
, particularly for embedded systems debugging. Some express admiration for the ingenuity of using the back channel for editing, highlighting its usefulness when other methods are unavailable. Others question the practicality due to potential slowness and limitations, suggesting alternatives like ed
. A few commenters reminisce about using similar techniques in the past, emphasizing the historical context of this approach within resource-constrained environments. Some discuss potential security implications, pointing out that the back channel could be vulnerable to manipulation. Overall, the comments appreciate the technical ingenuity while acknowledging the niche appeal of bcvi
.
Summary of Comments ( 100 )
https://news.ycombinator.com/item?id=43691020
HN commenters discuss the evolution of Vi and Vim, praising the editor's modal editing, efficiency, and ubiquity in *nix systems. Several share personal anecdotes about their introduction to and continued use of Vim, highlighting its steep learning curve but ultimate power. Some discuss Bram Moolenaar's influence and the editor's open-source nature. The discussion also touches on the differences between Vi and Vim, Vim's extensibility through plugins, and its enduring popularity despite the emergence of modern alternatives. A few commenters mention the challenges of using Vim's modal editing in collaborative settings or with certain workflows.
The Hacker News post titled "Understanding the Origins and the Evolution of Vim Text Editor" sparked a lively discussion with several insightful comments.
Many commenters reflected on their personal history with vi/vim, sharing anecdotes about their initial struggles and eventual mastery of the editor. Some expressed a deep appreciation for its efficiency and power, highlighting the modal editing, extensibility, and ubiquity as key strengths. The discussion also touched on the steep learning curve, with some users recounting the frustrating early experiences and acknowledging the dedication required to become proficient.
Several comments delved into the technical underpinnings of vi/vim, discussing its evolution from ed, ex, and the influence of software like QED. The conversation explored the design choices that shaped the editor, including its focus on keyboard-driven commands and the origins of its modal nature. Some users praised the efficiency of this design, emphasizing its suitability for tasks involving extensive text manipulation, while others acknowledged its initial difficulty for newcomers.
The portability and availability of vi/vim across various systems were also highlighted, with commenters mentioning its presence on everything from minimal embedded systems to powerful servers. This ubiquity was cited as a significant factor contributing to its enduring popularity, particularly among system administrators and developers working in diverse environments.
A few comments touched upon the broader context of text editors and IDEs, comparing and contrasting vi/vim with alternatives like Emacs, nano, and modern graphical editors. The debate often centered around the trade-offs between power and ease of use, with proponents of vi/vim arguing that the investment in learning its intricacies is rewarded with long-term productivity gains. The discussion also acknowledged the influence of vi/vim on subsequent editors, noting how its design principles have been adopted and adapted in various forms.
Some of the more compelling comments included personal stories of overcoming the initial challenges of learning vi/vim and the eventual realization of its power and efficiency. These anecdotes provided a human element to the technical discussion, showcasing the dedication and perseverance often required to master the editor. The technical deep dives into the history and evolution of vi/vim, tracing its lineage back to earlier editors and explaining the rationale behind its design choices, were also particularly engaging. These comments provided valuable insights into the origins and philosophy of the editor, shedding light on its enduring appeal and influence. Finally, the comparisons with other editors offered a broader perspective on the text editing landscape, highlighting the strengths and weaknesses of different approaches and stimulating a thoughtful discussion about the trade-offs involved.