vim-be-good
tree-sitter
vim-be-good | tree-sitter | |
---|---|---|
22 | 62 | |
2,682 | 16,555 | |
- | 2.7% | |
2.5 | 9.8 | |
30 days ago | 2 days ago | |
Lua | Rust | |
- | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
vim-be-good
-
Ask HN: Comment here about whatever you're passionate about at the moment
Sure! The first thing I did was follow this video: https://www.youtube.com/watch?v=w7i4amO_zaE
This is ThePrimeagen's 0 to LSP, Neovim RC from Scratch. In this video he performs a clean installation of Neovim and goes step by step adding the things he considers essential. This was very important for me to acquaint myself with how things work, how to install plugins, how to define custom key maps. I remember the first times I tried using Vim, I couldn't figure out how to get Nerdtree to work. This video made me realize I just lacked the knowledge of how Vim config works.
This video was such a good start because It provided me with the tools to continue my exploration of Vim autonomously. In a week I was already able to install new plugins and tweak them using Lua config files the way I specifically wanted. It's such a cool experience!
Keep in mind that both the author of this video and I use Neovim, which is a fork of Vim. As a text editor they both function essentially the same. The difference lies on the config files and in broader UI capabilities by Neovim. While Vim uses Vimscript, Neovim prefers Lua, although Neovim is fully backwards compatible, so you can choose to use Vimscript for your configuration if you want as well. This also means that Vim plugins just work with Neovim!
The docs are also a huge source of knowledge for me. In the beginning I resorted to :help key-codes a lot when defining key mappings.
To learn the Vim motions, which is the most challenging part of using Vim, I suggest you find a cheatsheet online and refer to it all the time. One very cool plugin that will help you get comfortable with Vim motions is ThePrimeagen's VimBeGod: https://github.com/ThePrimeagen/vim-be-good. It's a set of game-like exercises to practice the motions. This is also pretty cool and helped a lot: https://vimsnake.com/. It's a classic snake game where instead of using arrow keys, you use HJKL. And speaking of arrow keys, one thing I did very early on was disabling them (or, in reality, remapping them to noop) in normal mode so I was forced to move around the text using Vim Motions.
At first you will get frustrated because your brain will need some time to rewire in a way to absorb all the new abstractions Vim presents. It's a whole new logic of editing text. The most important thing is to stick to it and you will be surprised with how fast you end up picking things up. Of course, don't expect to be crazy fast in a few weeks. But right now, after a little over a month, I no longer feel that discomfort using Vim anymore. I suppose I'd still be faster on VS Code, but I really want to master Vim, so I'm sticking with it and I feel a constant improvement.
-
Ask HN: How do I code offline for a week?
If you're not familiar with Vim, I'd encourage you to download a few Vim cheatsheets, the VimBeGood extension[1] and practice navigating code in Vim.
[1] https://github.com/ThePrimeagen/vim-be-good
-
Practicing VIM
For Neovim, then this Hardtime plugin will help you change the habit, and this vim-be-good from Primeagen helps learn vim motion. TJ DeVries is also a good source to learn.
- Resources for mastering vim motions
-
Vim for The VS Code User: Part 1 - Initial Setup
A game for learning vim, in vim: https://github.com/ThePrimeagen/vim-be-good
- recommendation on vimgolf challenges
-
Please help a noob.
I'm trying to NeoVim (and vi) in general having never used it. I decided to start with VimBeGood but I can't get it to launch a game. I've gotten the plugin installed but when I run :VimBeGood it just shows the screen saying "to play a game delete that line." I deleted words and noob but after that I'm lost. Nothing happens. What did I do wrong?
-
Question regarding vertical movement
I recommend vim-be-good for practicing this
-
Whats the next step?
There are plugins like https://github.com/ThePrimeagen/vim-be-good that can help with practice.
-
Atom has been archived
I found https://github.com/ThePrimeagen/vim-be-good to be kind of a nice way to build some muscle memory for vim.
tree-sitter
-
Lezer: A Parsing System for CodeMirror, Inspired by Tree-Sitter
I learned from a google search that these days upstream tree-sitter provides WebAssembly bindings.
Source: https://github.com/tree-sitter/tree-sitter/tree/master/lib/b...
NPM: https://www.npmjs.com/package/web-tree-sitter
Download from the latest Github release: js file (https://github.com/tree-sitter/tree-sitter/releases/download...) and wasm file (https://github.com/tree-sitter/tree-sitter/releases/download...)
-
Difftastic, a structural diff tool that understands syntax
Tree-sitter optimizes for performance (to use in editors), not for correctness. In fact even TS' core developers advocate for not bothering too much with correctness of grammars[1]. I imagine this constraint would be a deal-breaker for GitHub or anyone else in their position.
[1] https://github.com/tree-sitter/tree-sitter/issues/130#issuec...
-
Effective Neovim Setup. A Beginner’s Guide
This is a plugin that provides a simple way to use the tree-sitter in Neovim and also provides functionalities like highlighting, etc.
- An incremental parsing system for programming tools
-
Topiary: A code formatting engine leveraging Tree-sitter
From the tree-sitter side, I am tracking https://github.com/tree-sitter/tree-sitter/issues/1942
-
Shiki Syntax Highlighter
Is tree-sitter really slower than TextMate grammars? Some benchmarks indicate that this isn't really the case [1]. On the other hand, breaking parse trees is a real issue, because the error-recovery in tree-sitter is pretty rudimentary [2][3], but as you said, it's not an issue for Shiki.
Several TextMate grammars suffer from inaccuracy bugs, and issues of maintainability. Perhaps the biggest hindrance in the adoption of tree-sitter, is that the most popular editor, VSCode, still doesn't support it.
[1]: https://github.com/microsoft/vscode/pull/161479
[2]: https://github.com/tree-sitter/tree-sitter/issues/1870
[3]: https://github.com/tree-sitter/tree-sitter/issues/224
-
It seems that some BIG improvements of Treesitter on BIG FILEs have been merged into Nightly! (minutes ago!)
u/lewis6991 I think the biggest performance gain was made by tree-sitter itself: https://github.com/tree-sitter/tree-sitter/pull/2085
-
Looking for Tree-sitter query documentations and guides
I asked on the repo's discussions but responses are limited and not explanatory (I'm not shaming anyone here, discussions aren't a place for detailed how-tos and documentations anyway).
-
Will Treesitter ever be stable on big files?
The following discussion here. TS query cannot be incremental, that is why I regard it as design fault.
-
Detailed syntax highlighting
Hi, so I've recently decided to give Neovim yet another try, this time using some predefined plugins with kickstart.nvim, for syntax it uses tree-sitter.
What are some alternatives?
10-minute-vim-exercises - The exercise files from 10 Minute Vim, for convenience of readers
nvim-treesitter - Nvim Treesitter configurations and abstraction layer
which-key.nvim - 💥 Create key bindings that stick. WhichKey is a lua plugin for Neovim 0.5 that displays a popup with possible keybindings of the command you started typing.
Visual Studio Code - Visual Studio Code
vim-sneak - The missing motion for Vim :athletic_shoe:
indent-blankline.nvim - Indent guides for Neovim
vim-surround - surround.vim: Delete/change/add parentheses/quotes/XML-tags/much more with ease
doom-emacs - An Emacs framework for the stubborn martian hacker [Moved to: https://github.com/doomemacs/doomemacs]
nvim-tree.lua - A file explorer tree for neovim written in lua
language-server-protocol - Defines a common protocol for language servers.
lens.vim - A Vim Automatic Window Resizing Plugin
coc-explorer - 📁 Explorer for coc.nvim