Julia Evans expresses frustration with several common terminal shortcomings. She highlights the difficulty of accurately selecting and copying text, especially across multiple lines or with special characters, often resorting to workarounds like opening the command in a text editor. Additionally, she points out the inconsistency of terminal escape codes leading to unpredictable behavior between different terminals and programs. Finally, she laments the lack of a standardized method to directly interact with and manipulate the output of a previously executed command, requiring awkward copying or screenshotting for further analysis. These limitations, she argues, interrupt her workflow and make the terminal less efficient than it could be.
Julia Evans, in her blog post entitled "Some Terminal Frustrations," meticulously details several common yet persistently irritating issues she encounters while interacting with terminal emulators. She begins by lamenting the difficulty in reliably copying and pasting text, particularly when encountering unexpected whitespace or hidden characters. This often leads to tedious manual cleanup and reformatting, disrupting the desired workflow and requiring unnecessary effort. She illustrates this with the specific example of copying a command from a web page and having it fail to execute in the terminal due to invisible characters interfering with the shell's interpretation.
Furthermore, Evans expresses frustration with the inconsistent handling of terminal sizes and window resizing. She notes the frequent occurrence of programs failing to redraw correctly or becoming visually corrupted when the terminal window dimensions change. This necessitates manual intervention, such as restarting the application or resorting to awkward workarounds like maximizing and then restoring the window. She elaborates on the complexities this introduces when working with tools like tmux, where resizing panes can lead to similar redrawing issues.
The post further delves into the challenges posed by applications that inexplicably capture keyboard input, preventing standard keyboard shortcuts from functioning as expected. This can create a confusing and frustrating user experience, requiring the user to guess the correct key combination to regain control or force quit the offending application. This behavior is particularly problematic when the capturing application does not provide clear visual cues indicating its active state.
Finally, Evans touches upon the broader issue of the terminal's inherent limitations in conveying rich text and formatting. She points out the difficulty in representing elements like hyperlinks or embedded images, which are seamlessly integrated into graphical user interfaces. This lack of rich text support restricts the terminal's usefulness for certain tasks and forces users to rely on workarounds or alternative tools when dealing with formatted content. In closing, she expresses a desire for improvements in these areas, hoping for a more seamless and less frustrating terminal experience in the future.
Summary of Comments ( 3 )
https://news.ycombinator.com/item?id=42959824
HN users generally agreed with the author's frustrations regarding terminal emulators. Several commenters pointed to specific pain points like inconsistent copy/paste behavior, difficulties with selecting text, and the lack of proper mouse support across different terminals. Alacritty and Warp were frequently mentioned as modern alternatives attempting to address some of these issues, though some users expressed reservations about Warp's closed-source nature and Electron base. Others discussed the challenges inherent in terminal emulation given its historical baggage and the trade-offs between features, performance, and compatibility. The desire for a truly modern and consistent terminal experience was a recurring theme.
The Hacker News post "Some Terminal Frustrations" discussing Julia Evans' blog post of the same name generated a robust discussion with over 100 comments. Several key themes and compelling points emerged from the conversation.
Many commenters echoed Evans' frustrations with terminal emulators, highlighting inconsistencies and quirks across different platforms and implementations. The lack of standardization and the slow pace of improvement were common complaints. Several users shared their personal struggles with features like copy/paste, scrolling, and font rendering, agreeing that these seemingly basic functionalities often fall short.
A significant portion of the discussion revolved around the complexities of terminal escape codes. Commenters debated the balance between backward compatibility and the need for modernization. Some argued that the legacy of escape codes is holding back terminal development, while others emphasized the importance of preserving existing functionality for older applications. The difficulty of working with and debugging escape sequences was also a recurring theme.
Several commenters suggested alternative approaches to terminal emulation, including using web-based terminals or entirely new terminal implementations. Projects like Zellij and Warp were mentioned as potential solutions offering more modern features and user interfaces. The idea of treating the terminal as a more structured data interface, rather than relying solely on text manipulation, also gained traction.
The conversation also touched on the challenges of cross-platform compatibility. Users highlighted the differences in terminal behavior between operating systems like Linux, macOS, and Windows, making it difficult to develop applications that work consistently across different environments.
Some commenters shared their preferred terminal configurations and tools, offering recommendations for improving the terminal experience. These included tips for customizing keybindings, color schemes, and font settings, as well as suggestions for specific terminal emulators like Alacritty and Kitty.
A few dissenting voices argued that the existing terminal ecosystem is sufficient and that the proposed improvements are unnecessary or overly complex. However, the majority of commenters seemed to agree that the terminal experience could be significantly improved.
Finally, the discussion extended beyond purely technical aspects, touching on the cultural and historical significance of the terminal. Some commenters reflected on the enduring appeal of the command line interface, while others speculated about the future of terminal emulation in a world increasingly dominated by graphical user interfaces. The thread reflects a community grappling with the desire for a more modern and efficient terminal experience while acknowledging the complexities and historical baggage associated with this fundamental computing tool.