pytest.nvim is a Neovim plugin designed to seamlessly integrate the pytest testing framework into the Neovim editor. It provides a streamlined workflow for running tests, displaying results directly within the editor, and navigating between test files and their corresponding implementations. Features include running tests at various granularities (file, directory, nearest test, etc.), a visual test summary display with detailed information about passed and failed tests, and the ability to jump to test failures or specific test functions. It leverages Neovim's virtual text capabilities for displaying test statuses inline, enhancing the feedback loop during test-driven development. The plugin aims to improve the overall testing experience within Neovim by providing a tightly integrated and interactive environment.
Zxc is a Rust-based TLS proxy designed as a Burp Suite alternative, featuring a unique terminal-based UI built with tmux and Vim. It aims to provide a streamlined and efficient intercepting proxy experience within a familiar text-based environment, leveraging the power and customizability of Vim for editing HTTP requests and responses. Zxc intercepts and displays TLS traffic, allowing users to inspect and modify it directly within their terminal workflow. This approach prioritizes speed and a minimalist, keyboard-centric workflow for security professionals comfortable with tmux and Vim.
Hacker News users generally expressed interest in zxc
, praising its novel approach to TLS interception and debugging. Several commenters appreciated the use of familiar tools like tmux
and vim
for the UI, finding it a refreshing alternative to more complex, dedicated tools like Burp Suite. Some raised concerns about performance and scalability compared to established solutions, while others questioned the practical benefits over existing, feature-rich alternatives. A few commenters expressed a desire for additional features like WebSocket support. Overall, the project was seen as an intriguing experiment with potential, though some skepticism remained regarding its real-world viability and competitiveness.
Lilly is a TUI text editor built with Rust that aims to offer a modern, performant, and customizable alternative to Vim and Neovim. It prioritizes extensibility through plugins written in Lua, offering a familiar experience for Neovim users. Featuring built-in Language Server Protocol (LSP) support, tree-sitter for syntax highlighting, and asynchronous execution for responsiveness, Lilly seeks to combine the speed and efficiency of a terminal interface with the advanced features of modern GUI editors. The project is actively under development and welcomes contributions.
Hacker News users discuss Lilly, a TUI editor and potential Vim/Neovim alternative, focusing on its Lua extensibility and clean slate design. Some express excitement about a modern, scriptable TUI editor, praising its apparent performance and the potential of Lua for customization. Others question its long-term viability given the established competition, and some debate the merits of modal vs. non-modal editing. Several commenters highlight the difficulty of attracting users away from entrenched editors, while others suggest Lilly could find a niche among those seeking a simpler, more easily customized TUI experience. A few express interest in specific features like the integrated file explorer and fuzzy finder. Overall, the comments show cautious optimism tempered by an awareness of the challenges faced by new text editors.
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
.
Augment.vim is a Vim/Neovim plugin that integrates AI-powered chat and code completion directly into the editor. It leverages large language models (LLMs) to provide features like asking questions about code, generating code from natural language descriptions, refactoring, explaining code, and offering context-aware code completion suggestions. The plugin supports multiple LLMs, including OpenAI, Cohere, and local models, allowing users flexibility in choosing their preferred provider. It aims to streamline the coding workflow by making AI assistance readily accessible within the familiar Vim environment.
Hacker News users discussed Augment.vim's potential usefulness and drawbacks. Some praised its integration with Vim, simplifying access to AI assistance. Others expressed concerns about privacy and the closed-source nature of the plugin, particularly given its reliance on potentially sensitive code. There was also debate about the actual utility, with some arguing that existing language servers and completion tools already provided sufficient functionality. Several commenters suggested open-sourcing the plugin or using an open-source LLM to alleviate privacy concerns and foster community contribution. The reliance on a proprietary API key for OpenAI's models was also a point of contention. Finally, some users mentioned alternative AI-powered coding tools and workflows they found more effective.
This blog post details the author's highly automated Vim setup, emphasizing speed and efficiency. Leveraging plugins like vim-plug for plugin management and a variety of others for features like fuzzy finding, Git integration, and syntax highlighting, the author creates a streamlined coding environment. The post focuses on specific configurations and keybindings for tasks such as file navigation, code completion, compiling, and debugging, showcasing a personalized workflow built around minimizing friction and maximizing productivity within Vim. The ultimate goal is to achieve a near-IDE experience using Vim's powerful extensibility.
Hacker News users generally praised the author's approach to Vim automation, emphasizing the balance between leveraging Vim's powerful features and avoiding over-complication. Several commenters shared their own preferred plugins and workflows, highlighting tools like fzf
, vim-projectionist
, and CtrlP
for file navigation, and luasnip
and UltiSnips
for snippets. Some appreciated the author's philosophy of learning Vim gradually and organically, rather than attempting to master everything at once. A few commenters discussed the trade-offs between using a highly configured Vim setup versus a more minimalist approach, and the potential drawbacks of relying too heavily on plugins. There was also a brief discussion about the relative merits of using language servers and other external tools within Vim.
Daily-notes.nvim is a Neovim plugin designed for effortless time-based journaling and planning. It enables users to quickly create and access daily, weekly, monthly, or quarterly notes based on the current date, using fuzzy finding for easy navigation. The plugin supports custom date formats, integrates with the Telescope fuzzy finder, and offers features like opening notes for specific dates or creating notes if they don't exist. It aims to provide a streamlined and efficient workflow for maintaining a structured journal or planner within Neovim.
Hacker News users generally praised the daily-notes.nvim plugin for its simplicity and speed compared to alternatives like Obsidian. Several commenters appreciated its integration with Telescope.nvim for fuzzy finding. Some suggested improvements, including the ability to specify a custom date format and integration with the calendar.vim plugin. One commenter pointed out the potential benefit of using a simpler file naming convention for improved compatibility with other tools. Another user mentioned using a similar setup with plain Vim and expressed interest in trying the plugin. There was some discussion on the benefits of plain text notes versus a database-driven system, with proponents of plain text highlighting its flexibility and longevity.
After over a decade using Vim/Neovim, the author experimented with Zed, a new electron-based editor. While appreciating Zed's native performance, smooth scrolling, and collaborative features, the author found the Vim mode lacking compared to their highly customized Neovim setup. Specifically, plugins and keybindings didn't translate seamlessly, hindering their workflow. Although impressed by Zed's potential, particularly its speed and built-in collaboration, the author ultimately returned to Neovim, finding its flexibility and familiarity more valuable than Zed's current advantages. They remain optimistic about Zed's future and plan to revisit it as it matures.
HN commenters generally expressed interest in Zed, particularly its performance and native UI. Some compared it favorably to VS Code, highlighting Zed's speed and responsiveness. Several users questioned the viability of Zed's closed-source model and subscription pricing, especially given the strong presence of free and open-source alternatives. A few commenters noted the post author's seeming bias toward Zed, given their employment history. Others discussed specific features, such as collaborative editing, and the desire for Vim keybindings. The potential for vendor lock-in was also raised as a concern.
Llama.vim is a Vim plugin that integrates large language models (LLMs) for text completion directly within the editor. It leverages locally running GGML-compatible models, offering privacy and speed advantages over cloud-based alternatives. The plugin supports various functionalities, including code generation, translation, summarization, and general text completion, all accessible through simple Vim commands. Users can configure different models and parameters to tailor the LLM's behavior to their needs. By running models locally, Llama.vim aims to provide a seamless and efficient AI-assisted writing experience without relying on external APIs or internet connectivity.
Hacker News users generally expressed enthusiasm for Llama.vim, praising its speed and offline functionality. Several commenters appreciated the focus on simplicity and the avoidance of complex dependencies like Python, highlighting the benefits of a pure Vimscript implementation. Some users suggested potential improvements like asynchronous updates and better integration with specific LLM APIs. A few questioned the practicality for larger models due to resource constraints, but others countered that it's useful for smaller, local models. The discussion also touched upon the broader implications of local LLMs becoming more accessible and the potential for innovative Vim integrations.
Parinfer simplifies Lisp code editing by automatically managing parentheses, brackets, and indentation. It offers two modes: "Paren Mode," where indentation dictates structure and Parinfer adjusts parentheses accordingly, and "Indent Mode," where parentheses define the structure and Parinfer corrects indentation. This frees the user from manually tracking matching delimiters, allowing them to focus on the code's logic. Parinfer analyzes the code as you type, instantly propagating changes and offering immediate feedback about structural errors, leading to a more fluid and less error-prone coding experience. It's adaptable to different indentation styles and supports various Lisp dialects.
HN users generally praised Parinfer for making Lisp editing easier, especially for beginners. Several commenters shared positive experiences using it with Clojure, noting improvements in code readability and reduced parenthesis-related errors. Some highlighted its ability to infer parentheses placement based on indentation, simplifying structural editing. A few users discussed its potential applicability to other languages, and at least one pointed out its integration with popular editors. However, some expressed skepticism about its long-term benefits or preference for traditional Lisp editing approaches. A minor point of discussion revolved around the tool's name and how it relates to its functionality.
The author recreated the "Bad Apple!!" animation within Vim using an incredibly unconventional method: thousands of regular expressions. Instead of manipulating images directly, they constructed 6,500 unique regex searches, each designed to highlight specific character patterns within a specially prepared text file. When run sequentially, these searches effectively "draw" each frame of the animation by selectively highlighting characters that visually approximate the shapes and shading. This process is exceptionally slow and resource-intensive, pushing Vim to its limits, but results in a surprisingly accurate, albeit flickering, rendition of the iconic video entirely within the text editor.
Hacker News commenters generally expressed amusement and impressed disbelief at the author's feat of rendering Bad Apple!! in Vim using thousands of regex searches. Several pointed out the inefficiency and absurdity of the method, highlighting the vast difference between text manipulation and video rendering. Some questioned the practical applications, while others praised the creativity and dedication involved. A few commenters delved into the technical aspects, discussing Vim's handling of complex regex operations and the potential performance implications. One commenter jokingly suggested using this technique for machine learning, training a model on regexes to generate animations. Another thread discussed the author's choice of lossy compression for the regex data, debating whether a lossless approach would have been more appropriate for such an unusual project.
Summary of Comments ( 5 )
https://news.ycombinator.com/item?id=43591246
Hacker News users discussed the pytest.nvim plugin, generally praising its speed and tight Neovim integration. Several commenters appreciated features like the virtual text display of test status and the ability to run tests directly within Neovim. Some users compared it favorably to running tests in a terminal, citing improved workflow and less context switching. A few people mentioned using and enjoying similar plugins for other languages, highlighting a broader trend of IDE-like test integration within Neovim. One commenter pointed out a potential drawback: the plugin's reliance on a specific test runner could be limiting for projects using alternative tools. Another user mentioned potential conflicts with other plugins. Despite these minor concerns, the overall sentiment was positive, with many expressing interest in trying the plugin.
The Hacker News post "Pytest for Neovim" (linking to the pytest.nvim GitHub repository) has generated several comments discussing the plugin and related testing practices in Neovim.
Several commenters express enthusiasm for the plugin and its features. One user highlights the seamless integration and smooth workflow it provides, appreciating the ability to run tests directly within Neovim without needing to switch to a terminal. They specifically call out the virtual text feature for displaying test statuses inline, finding it a significant improvement over traditional methods.
Another commenter praises the plugin's performance, noting its speed and efficiency compared to alternative testing setups. They also appreciate the clear and concise output provided by the plugin, which makes it easy to identify and diagnose test failures.
The discussion also delves into broader testing practices. One commenter discusses the importance of effective test organization and how pytest.nvim facilitates this by providing tools for running specific tests or groups of tests. They also mention the benefits of using a dedicated testing framework like pytest, emphasizing its ability to streamline the testing process and improve code quality.
Some users share their personal experiences with the plugin, highlighting its usefulness in their daily workflow. One commenter describes how pytest.nvim has simplified their testing process and made it easier to maintain a high level of test coverage.
There's a brief exchange about the pros and cons of using Neovim's built-in terminal versus a dedicated terminal emulator for running tests. One user suggests that the built-in terminal offers better integration with Neovim's features, while another points out that a dedicated terminal might provide more flexibility and customization options.
A few comments focus on specific features of the plugin, such as the ability to run tests in parallel and the integration with other Neovim plugins. One user expresses interest in seeing support for additional test frameworks beyond pytest.
Overall, the comments reflect a positive reception for pytest.nvim, with users appreciating its features, performance, and seamless integration with Neovim. The discussion also highlights the broader importance of effective testing practices and the role of tools like pytest.nvim in facilitating those practices.