bouncer
← Back

San Gabriel Valley Linux Users Group (SGVLUG) · 53.9K views · 1.1K likes

Analysis Summary

20% Minimal Influence
mildmoderatesevere

“Be aware that the 'PDE' terminology is a personal branding exercise by the speaker to elevate Neovim above standard text editors, though he openly admits to this framing.”

Transparency Transparent
Human Detected
100%

Signals

The transcript displays highly natural, spontaneous human speech with characteristic disfluencies and personal anecdotes that are impossible for current AI to replicate in a long-form presentation context. The metadata confirms this is a recorded Linux User Group meeting featuring a well-known community member.

Speech Patterns Frequent use of filler words ('uh', 'sort of', 'like'), self-correction, and informal conversational phrasing ('this idiot college kid', 'tooting your own horn').
Contextual Authenticity Specific personal anecdotes about contributing to open source in 2016 and references to a Billy Mays inspired infomercial video.
Interactive Elements The speaker acknowledges a live chat and invites audience participation, indicating a real-time human event.

Worth Noting

Positive elements

  • This video provides a high-quality technical overview of Neovim's architecture, specifically its transition to Lua and its integration of LSP (Language Server Protocol).

Be Aware

Cautionary elements

  • The speaker uses 'revelation framing' to invent the term 'PDE', which makes a subjective preference for tool-tinkering feel like a distinct, necessary category of software.

Influence Dimensions

How are these scored?
About this analysis

Knowing about these techniques makes them visible, not powerless. The ones that work best on you are the ones that match beliefs you already hold.

This analysis is a tool for your own thinking — what you do with it is up to you.

Analyzed March 13, 2026 at 16:07 UTC Model google/gemini-3-flash-preview-20251217 Prompt Pack bouncer_influence_analyzer 2026-03-08a App Version 0.1.0
Transcript

hello uh this is my stream review uh so yeah today i wanted to talk a little bit about neovim as a pde and i'll get to explaining what i mean by pde um later but first i'll just do sort of a little introduction about myself so who am i my name's tj devries uh that's my github handle i'm one of the neo-vim core members i've been a core member for a few years i've been working on neovim uh just sort of generally or at least like have at least been doing some sort of pr since probably like 2016 ish was probably my first uh first pr it was a super great experience for me it was the first open source project that i had ever contributed to and people were just super nice and super helpful and i was just like this idiot college kid who didn't really know how to write code or like how to do anything uh and they helped me like figure out like okay here's like some of the things you need to do to like run our tests and here's how you add new tests and so um i kind of fell in love with the community then and i was already pretty uh in love with neovim as an editor uh at that point um i also am the author of telescope envim which is a somewhat popular fuzzy finder sort of like library for neovim and i'll show off a little bit about that as some self-promotion of course you can't do a talk without tuning your own horn i think that's the rules um and then also some other interesting things is i i live stream on twitch uh i i don't really play games there i just live stream coding and so we work on neovim most of the time or neo-vim like adjacent projects like telescope or other sort of exploratory projects that i'm interested in doing and then i uh post stuff on youtube i'll get i'll send these slides out as a link later and you'll be able to see them they're just a markdown file so you can see see these later the actual links if you're interested in watching any of those i did just draw my favorite youtube video i've ever made uh where i am sort of giving an introduction on how to use this neovim plugin and i created a billy mays uh inspired infomercial to introduce the plugin so if that's at all interesting to you you may enjoy my my youtube um also as we're going please feel free to message in the chat and say something i can see the chat right now so i should be able to respond or stop if you have any questions i want it to be interactive and uh hopefully i'm not the only one talking the whole time so but that will sort of uh keep on moving through the the presentation so in general i know everyone's first thought probably pde partial differential equation no i don't know how you would make me of them into that but it does seem kind of like an interesting topic but actually this is sort of a new term that i'm trying to sort of generally like bring to light because i i find the situation talking about editors kind of confusing and the reason that i think it's confusing because most people sort of have this idea of a spectrum between like there's text editors and there's ides and instead of it being a spectrum most people think of them as just two buckets and neovim gets like put in the text editor bucket along with vim and like emacs and notepad and nano and you're like well they're not like the same right there's kind of like a difference between some of those tools and they're good at some things uh and some of them aren't as good at other things and so maybe it would be helpful if we had some word that could describe what like neovim bim and emacs are i'll say nice things about emacs because i think it's a cool project um and so and so i think uh i'm sort of trying to introduce this idea of a personalized development environment right where it's somewhere in between this idea of a text editor and ide and i i think my checklist will of course be a little bit biased because they're all the things that i love about neovim uh but you know they're they're things that i think are a little bit different than an ide and they're definitely like very different from a text editor right like neovim's very different from like opening up notepad so what are the requirements of a pde i would say some assembly required um this is for some people a huge downside and for some people it's a lot of fun and it's very interesting i like tinkering i like exploring i like doing some of those things so the assembly required isn't like a big negative for me but some people uh perfectly reasonably say i just want to get to like writing the code for my project i don't want to do this other stuff and to them i say great if that's what makes you happy you should do that some other requirements sort of generally that i'm saying for what is a pde it has to be able to do all the coding basics the things that you expect like when you open up code it has syntax highlighting or it does folding or like it just can't be notepad right i'm going to keep saying that because i think it makes it clear why it's weird like neovim gets grouped in the text editors when i think of something very different i think it also needs to have some idea of what it means to have code intelligence and and this is basically just understanding that of course code is more than just the text that's on the computer right there's something semantic about it there's something more than just letters and it's important i think for a pde to be able to understand that whereas like a text editor doesn't have to understand that or provide the tools to create that understanding and the last bit this is the bit that i think sort of separates uh it from an ide is that pdes are more focused on things like composition of tools so i think a lot of this is like unix philosophy style things right sort of a reuse of an existing tool that works well or an adoption of a specification that people can agree on so that it can be used and that knowledge that you gain is more than just for that editor but it's for a larger overall idea for neovim this is things like and i'll mention some of these later but just like using lua is in my mind an example of a composition of tools right because it's a great language for embedding inside of a c-based project and so instead of us working really hard on making our own new language we get to just use a tool that exists the last bit of course my favorite part if you know anything about me or if you follow any of my stuff is that i love just scripting and extending uh neo them to do new things i think those are those are core focus now a difference between obviously like jetbrains has the ability to make plugins and it's really cool but i think when i say scriptable and extensible here i mean sort of by like your average end user my expectation i i will admit i did not find any you know peer-reviewed research about this idea i didn't get a certified result of survey of percentage of jetbrains users who have written a plugin versus percentage of neovim users who have written a plugin but i feel confident based on my personal experience that the knee of them users are more likely to write a plugin for their editor versus like jetbrains so the idea is kind of like it's end user scriptable and user extensible not just that it's possible to do those things but it's sort of a core part and focus of the editor and so these are all things that i think are interesting about neovim things that i like about it but most importantly for me um is that neovim like i have fun being inside of neovim and this is where i you all asked me to be here so i feel justified that i can go ahead and go on a rant if i want to um but the the rant i want to go on to is that when i was a younger lad i would often try and make the argument that them is faster you know than other people like added in text at the speed of thought and like the tool gets out of my way and unix is my id and like all these kinds of things and it's not that i don't believe those things anymore but i think that they don't work as an argument for people because it may not be true for that person they may not enjoy those aspects of the tool they may not have fun doing those things and so they'll never be motivated to like learn to combine those things in that way and that's totally fine there's nothing wrong with that like everybody can have their own different way of editing code and that's okay we're all different people that should be totally fine and that's like within our open source ethos right that we want people to be able to be sort of like themselves and do those different things and and that should be cool so i've uh i no longer make any arguments about whether neovim is faster or not and i would probably stay with using knee of them even if i was slower than likes any of them than i was in some other tools because i just have so much fun like erasing those little annoyances in my life or finding a way to make that plug-in that just brings a little bit more joy to my life and some other people's life those things are fun for me and i think that's sort of in my mind you know since i'm making up the term pde that's one of the things that i that i'm gonna add to the requirements of pd is that you're having fun uh you're having fun using it so oh i still have my uh my notifications on for this let me turn that off so that you don't get uh random notifications from my twitch stream okay cool so with all of that out of the way i just wanted to sort of share this is some background about the things that when i'm thinking of knee of him this is where my head space is at it's not just a text editor it's more than a text editor so what are some reasons that you uh might want to use neovim right allow me to sell you the first point is that it's vim so if you know vim if you're familiar with them movements if you're familiar with those things neovim is a fork of vim we still even merge upstream patches and tests and all these other things so the behavior feels exactly like vim for so so many things more than like any vim mode is going to be able to do because of most the cases they're running the exact same code that vim is running still got all the help and an existing plug-in still works so if you like vim i think is really low risk to sort of like try out neovim and see if you like it because a lot of things will just transfer over with no no differences um and vim itself there's a question asking if is vim development dead no bram is actively working on vim making new features and in fact he's developing a new language vim 9 script that's uh promising to be much faster than vimscript so that more high performance plugins could be uh written inside of him and so neovim merges a lot of patches though even now that are coming in from them to say like oh under this situation uh this plug-ins uh like this causes some problem to occur okay let's fix that and then we'll we'll merge that patch into the oven as well wherever we can so a lot of that sort of shared thing is still happening right it's not like it just worked in the past and there's been nothing the same we still try and keep those things going but on the other hand another main selling point is that it's not bim um so i think one of the cool things about knee of him is we've had this commitment to try and make the experience better for people even if sometimes that requires um breaking uh some aspect of compatibility some aspect of something that used to be a certain way in the past so just like simple examples that are easy to explain is like okay we moved where the config goes so that you can follow xdg config home so like if one thing that just really bothers you is having dot files strewn about your like home directory okay well put it in your xdg config and that's where we look for your dot files we also like change to false to try and make it better for people opening up neo them for the first time with no configuration and even to the point of changing some default mappings so that they're not so surprising to new users you don't have to see um top five them mappings that you need to map in your rc you know and it's always the same five and they're all like well maybe we should just like put those in if it makes everybody's life better maybe we should try and just do that thing right so there's sort of this um commitment and sort of a relentless pursuit of trying to make every aspect of it the the best that we can be and it's just in a different fashion than what vim is trying to to make it be the best right um this is a quote from the help behaviors options documentation are removed if they cost users more time than they save this also allows us to iterate faster and focus on the things that people really want uh which is exciting and some other ways that it's not bim is uh we have different goals like i mentioned so like one one thing is neom's always built with all the features there's not a bunch of different builds for vim we have a remote api that allows you to control neovim uh through another process through a gui guise are just plug-ins so uh every gui for any of them that you see communicates with neovim over rpc and every time we improve our pc for gui's we're improving it for plug-in authors we're improvising it for users all these sort of things work work together and and one of my uh favorite things is that we're using lua as the primary scripting language for knee of him that's a i'd say like 100 buy-in from the team is everybody loves lua everyone's thinking that it's such a great fit for neovim we get a lot of great bonuses from doing this too i mean first off is by default any of them ships with luagit and luagit is just like it's just crazy how fast it is it's unbelievable as one astute internet author said it seems like mike paul is a robot from the future right that's sort of the idea behind how fast luagit is and it allows us to do high performance things that we never in the past could have done uh directly in the editor so telescope plug-in that i work as a fuzzy finder written uh in lua for neovim and it primari primarily executes just like in the main thread of neovim which allows it a lot of really nice bonus features about not having to worry about sort of all these different conditions that you might occur from having a remote plug-in but it's crazy because it's like doing all this filtering sorting finding all just within within the main thread and lua just fast enough to be able to do that additionally we get things like libyuv bindings directly so you can do really high performance really fast and even asynchronous if needed operations with the file system or remote sockets or a web server all these kind of things just happen for free and of course there's existing lua development happening outside in the world you can use those uh you can use those projects and there's more people i think willing to contribute to learn the language and to get involved with the project and we've seen that with a lot of our larger sort of moonshot projects like including uh lsp inside of neovim we've had a lot of contributors i should have looked up the list before this but it's a lot i can tell you that um so just as an example like it's so easy to work with the api uh within within neovim to start doing things and just doing the common tasks that you want to do for a buffer this is just an example of some lua code here you say basically zero means the current buffer this says over all the lines kind of like python style indexing if you're familiar right from the zeroth line to the last line substitute all of these with just first line second line so what's interesting right is this is exposed in lua through vim.api it's exposed in vimscript with this function and then buffs that lines and is it's exposed over the remote plug-ins by a message called and buffs that lines and all of them are the same so sort of this unified way of working within neovim both for gooeys plugins authors and users uh and so fry's a really really standard way to work with me of him that at least i find really fun and the conventions i think are really helpful and as you learn them a little bit you're able to i think iterate very quickly the other aspect is not only are we using lu as a scripting language but we're trying to sort of luify everything so settings key maps commands soon auto commands i think not only is this good in terms of like performance and stuff like that but also it allows people to not like a new user doesn't have to learn eight different dsls for doing the things inside the editor they're just like regular function calls that you can call with the parameters as described in the help and you're able to configure the editor much more simply and straightforwardly and that's sort of like onboarding experience is really good for new users which hopefully there will be some of you in the audience uh crazy selling point is tree sitter i don't know if you've heard about tree sitter or not but it is just a wonderful technology in short it's basically a library that allows people to very easily write uh grammars for a language and then basically gets put into this engine and the engine has really great error recovery incremental parsing and a bunch of other um tools and it allows itself to be embedded in different places so it's not just for syntax highlighting but that's the first place people usually hear about it but it does so much more than that and i will show you in the live demo at the end uh because everyone knows that's the best way to embarrass yourself uh for a demo is to go ahead and do that and uh what's cool is right this is a technology that's getting used in more places than just them and neovim right like github is using this to power like a bunch of their highlighting and their code search and other editors are using tree sitter so this sort of shared idea and uh technology is getting improved and we get to reap those rewards without having to do all of that ourselves which is great because we only have so many contributor hours in a day and the last one is the built-in lsp if you're not familiar with lsp it provides a lot of really great tools like go to definition find references rename help a bunch of other stuff and i'll i'll i'll show you that in a second um working with inside of neovim it's cool because we shipped a client inside of neovim by default it's there and available for people to use um you still have to install your language servers on your machine we're not a package manager we still are just you know a pde right um we're not going to manage everything about your environment for you you also have to install the the language server itself but we implement what you need to connect to there all right and now we're going to do a live demo and we're going to hopefully cover uh all of these things so before we go on to the live demo does anyone have any questions about stuff that i've said so far i i'm trying to move kind of quickly through there to make sure we have time to do uh the interesting stuff i sure i'm sure what you want to hear is actually what's going on rather than just what i what i have to say so i'll uh just see if anyone has any questions and then i'll move on say you're supposed to wait seven seconds can you change syntax highlighting based on version of cpus plus oh that's an interesting question um i'm not sure if there are different tree set or grammars available for different uh versions of cfos plus then i think it would probably be possible i'm no c plus expert though but it would be possible to do or you could potentially have different um queries that highlight it differently depending on what version of c plus plus you have i uh i mostly uh i stick to c for knee of him i don't i don't write a lot of c plus plus so i uh can't answer that in more detail than that are you using tree center for all the syntax highlightings do any of your highlighters for dated so this is a great question we there are not trees that are grammars for every language so we have not removed vim's regex based syntax highlighted so for example if you had your own custom syntax highlighting for vim or whatever we still use that uh and and allow you to use that today if you didn't want to use the tree sitter language um but we there is a really large coverage you can check out the anvim-tree sitter on github that's the organization that's doing a lot of the interesting work uh that's outside of core to sort of make it uh for users and then it gets upstreamed eventually into neovimcore proper where it makes sense but there is a really large coverage for language every language that i write code in day to day um has uh has a three sitter grammar and in fact they're super easy to make too which is also one of the really cool things cool things about it okay i'll just uh i'll just start with uh with some of the live demo stop me as you're going is there uh trista grammar for julia probably yes if i had i had to guess uh the answer would be yes um but i don't know 100 for sure we can check i can look really fast let's find out oh no except for some reason it's going to take a long time julia yes there is so you can see this is uh this is the list here of languages and there's a lot of them uh a lot of them done so yep so so there you go so um let's let's do a live demo does this come out of the box with tree sitter so neovim ships with tree city by default and it has an engine for tree sitter um but there are some additional things that you'd need per language as of right now a lot of those are available in the neovim tree sitter repo separately that you would install um our goal is someday some of those things would get upstreamed um but we're not we're not sure how much we're going to do for that um that's still somewhat of an open question and once again it's a bit of a assembly required situation for some things right so uh okay so i'm just gonna open up an example go file here uh this go file doesn't have anything too crazy going on uh i've got a few things going on in this file and it's just it's just a terrible go file just to show some examples of cool things that we can do with tree sitter and lsp so the first thing i want to show you is uh this is this is just this is basically a text representation of uh of what the tree sitter like tree looks like and so you can see that it's like hey here's a package clause here's the identifier here's an import declaration and here's the different import specs tree sitter works by querying this tree so i can run this query right here and what's really cool is uh basically this is a scheme dialect that runs against the tree i'm not going to go too detailed into this that's a whole talk and a half by itself but if i suffice to say you can see each of the places where there is an identifier and it's highlighted uh because of some bonus plugins that happen but just so that you can see where this query uh would match if we instead wanted to look for something like call expression and i just called it like c or something like that right we'll be able to see um oh i didn't spell expression right there we go that's why you don't do live demos you can see where all the calls happen in this file okay so tree sitter allows you to run queries against this tree and return basically the sub nodes that match and it lets you do a lot of cool stuff and so highlighting is actually just basically like queries that run against the tree they match certain things and then we display certain colors so that's how highlighting works but you can do much more than that so if you're familiar with vim you're probably familiar with the idea of text objects but if you're not familiar with them i'll just give a brief introduction text objects are kind of this idea that you can do vim motions so for example i press w i move forward one word so i press w i'm moving forward the word i can press b to go back if i type d before i do w that's delete word okay right now there's a lot of different kinds of motions that you can do but one interesting thing is once you start combining tree sitter plus text objects ideas you can start to do things like d a f will delete around this function so d a f deletes that function now notice that i'm inside of this sort of like nested function inside of this other function and if i do daf i'm just going to delete that inner function right so you can start to imagine how this sort of idea of textual movement is really cool i can press bracket m for move to the next method and i keep on moving down each time to a new function declaration that is happening through tree sitter not regex's which is really cool you're like kind of moving around based on the tree but not only that we can actually start doing things like changing the text based on the tree so let's say i wanted to move i was like oh man i actually want to print this function in the first spot not this hello i actually have something that can move this parameter to the next spot notice how it moved down to the next line and switch places with that function and i can move it back as well if i want by um doing this so i can move that further and further uh along as we go so that's tracer plus this idea of vim motions that you kind of maybe already are familiar with but not only is this able to power sort of uh these movements it can also power things like selection a lot of editors have the idea of incremental selection right where you might incrementally select larger scopes of text until you're able to select the whole file well we can do that using treesitter as well another really cool thing is if you sort of know generally where you want to select there's a cool plugin by a friend of mine matthias where you can press to enter into basically a selection mode and i can type whatever letter i want here to select this area so if i wanted to select sort of this whole area here if i press i notice how i've now moved up to the beginning of this node and i capture the entire node in that selection so if i want to delete delete that so that i could move it down here we can we can do all those sorts of cool things additionally this is one of my really favorite things to show about tree sitter um if you're familiar with go you know that you basically write this if air not equal nil like 10 000 times a day right and then you write some return statement here about what you need to do so a little while ago i write i wrote a snippet that actually figures out from tree sitter what the return type is of the current function that you're residing in so that i can type this and it expands to say what each of the different values would be and you could say like you know rhett or whatever and call example and then you can move between these and things like that as well to keep on jumping between them and then you could move between all of these different text locations and it figures out what to fill in for this return value by determining what the types are here and substituting in the default return types for those uh items uh does it work even an improper program in the buffer yeah yeah so if we just had something like this that's like this is illegal right like this is illegal to do um let's see uh then we could still do this here and it will still know it like does its best guess of what the actual contents should be of that file right so this is a clearly really busted file like you can't just call this at a top level and go but this still works the rest of the way right so i could still do this and hello um uh hello that's what i meant to type sorry and actually there's even like ways to switch between whether i'm wrapping this or not i wrote this one you know and stuff like that we can keep on going right and so tree sitter works um to understand the buffer even when there's broken and yes is the parser doing work with every keystroke yes one of tree sitter's best attributes is its ability to incrementally parse the tree um yeah we can try i don't know for sure if this one will work or not but let's say we do v i f yup so that is inside of this function or if i do like daf it's going to delete still around that even though we've got this open one here basically tree sitter is trying to guess that what i actually want to do is something else up here entirely and this is one block down here so the parser is doing stuff every keystroke cherry sitter is awesome at incremental stuff and it's a great fit for text editors it was made for text editors actually so that's that's why it's awesome so um yeah that's a bunch of stuff that i wanted to show you for tree sitter right that's a bunch of stuff i want to show you for tree sitter um i can show you something else pretty cool as well where we could do something like let's say we don't have any errors in this file right uh we don't use the errors thing at all and then what i want to do is say air equals whoops uh errors so i have this selection here and notice how i'm getting this idea from lsp if i select this selection it adds the errors import up top and then i could say dot new it knows that dot new is one of the things from the errors module and gives me the help information for that item i can select that and i'm inside and i could say hello if i uh right it doesn't use error so it's not gonna work right now uh because the rest of the file's broken but that's okay because we just deleted a bunch of random stuff right before this so that's kind of the like okay tree center can do a lot of stuff i would not call that like text editor material there's something in between right where you're doing that um and then i also wanted to show just a cool example of of where this can go i've got another project here um in rust uh that's why i called it bragging because if you're gonna do a presentation you obviously want to show that you're using rust i mean come on that's a given right so uh i've got i've got a file here um you'll see some stuff popping up in the corner here that's actually my lsp telling me hey i'm working on getting set up okay i'm ready to go um i i've got a function here this is also sort of a nonsensical project just to give you some examples of of what we can do with rust uh you'll notice just a couple things that i'm sure you'll notice right off the bat this little text here this is not text that's inside of the buffer this is virtual text telling me where it's possible that i might run a test or debug a test because we can do that in neovim as well um and so let's just let's just show some examples of some of the cool stuff that we can do and i'll uh walk you through some of the tech that we're using uh to do that in between so the first thing would be let's put a break point on this line so you'll notice that i've got this uh cool we're just messing around with different unicode characters and this one looks like a silly bee i know that it's german hopefully that's okay i said it looks like a silly bee someone in chat told me it was fine to say so um so i this is where i've added a break point to this uh to this spot i've written some stuff that integrates a bit with cargo but in general this is just a combination of lsp plus cargo tools so this idea of composing these together i can say hey what can i run inside of this file i asked the lsp what i could possibly run the lsb says hey you can run bragging right because that's what i named my module because it's rust or we can run some of the tests um so i'd like to run the one that's a failure so that i can show what's going on there when i press enter that opens up my ui for debugging if you don't mind i'm going to make the text slightly smaller so that you can see generally a little bit more what's going on because otherwise i think it's too confusing normally i have my text much smaller but for presentations i like to keep it a little bit bigger um and we can do just like what you'd expect from a normal debugger we can step into this function and we can see what's happening we can see that we're returning from this buffer and now we see that x has been set to five and if i was debugging this and i saw a function named kind of double uh but it didn't double my thing that's where it would start getting suspicious and that helps me find out what's going wrong right so i can see that expected equals six just like i said and then we return and we notice that that is busted and we get the failure message from cargo that you would get if you would run cargo test manually for yourself and then once we're done with looking at that info we can be done lsp allows us to do really cool things like i'm on top of this identifier i can go to that definition that would work across files or projects assuming that your lsp is set up correctly we can do cool stuff like make a new name so this could be like we could just change it to definitely not double and sure enough it changes definitely not double and it changes it in each of these different locations i can even show like let's say we change this to be uh val right so now we've got two things in the buffer named val normally if you were just doing something like percent s val other thing oh dang i just changed this vowel is well up here that's not good that's not what we want to do so instead of doing that if i say let's uh still x instead of val notice that lsp understands the code at more than just a textual level right there's something going on there that's more than just text so it does what you expect from ide rename right and that it only renames the things that make sense it works for functions and depending on your lsp will work across your whole uh project as well so that's sort of uh lsp pre-sitter and debugging those are some of the main things that i wanted to show there's just a few other cool things um cool things to go over ah so someone asked how would debugging work with c does it use something like gdb under the covers so the plugin that i'm using right now is called nvim-dap debug adapter protocol very similar in concept to lsp and basically there is i'm pretty sure um a debug adapter for gdb so you could uh you could just use the same sort of setup within there's also some stuff built into them called term debug i don't have time to go over that today but it is possible to debug some c-like languages more natively but it's a topic that's a bit more complicated but it is possible to do um i just want to show a few sort of uh i'll call them goodies uh because i like them a lot some of these are with telescope the fuzzy finder library that um i created and helped maintain now um we've got a lot of really awesome contributors who've done a ton of work so it's definitely not all me but i was the i did help make it at least so i can say that so what if you wanted to do something like i want to figure out what symbols are in this file and navigate to there well we have this thing called document symbols it's an lsp request you can actually see that this has the name what type the thing is and then some sort of uh text from the line that that's on and we can show a preview for each of those things and highlight where they are this is all sort of telescope plus built-in lsp you get a bunch of these things for free if you're using lsp and telescope because they compose together well so idea of composability extends not only between other tools but as sort of a general ethos of a lot of the people in the neovim ecosystem of trying to play super nice uh together so we get this idea of document symbols i could start typing something like fail and it'll filter down to only the one that says fail and we can move to that file this could work across your project as well depending on your lsp's capabilities um and it does a lot of other cool stuff too like if we had more things inside of here you might want to filter down to only functions it allows passing tags and doing other cool stuff that interoperates with with the lsp we also have stuff like um finding all of your files in a git folder now i'm inside of my large config folder so i have a lot of different files inside of here um md files and everything as well as fuzzy finding the files in your directory under this this is like dim tags but bunch yes it's very similar in principle in a lot of ways to vim tags and some of the stuff integrates kind of with the tag stack as well so if you press go to definition you can press ctrl t to jump up the tag stack because we try to still use as many vim-isms as we can even in some of the new features that we're creating you can even do stuff like this is live grep is what we is what i call it and you can start typing things like um just like you're grabbing and see the results live of what's being typed so if you look for all the places i've typed let here i can see what the results of those are that uses rip graph under the hood to do the searching uh we didn't reimplement what grepping is right we just used some other tool and composed it inside to combine with a telescope and the oven so that you can see what's uh what's going on there so that's kind of that's that's all the like live demo that i had planned i wanted to try and cover all of those sort of as quickly as i could go over them just to give you a taste of all the different kinds of things that we can do inside of neovim and now i'm happy to answer any different questions you have so feel free to shoot them in the chat or ask them uh out loud it's fine too um i see that there's a plug-in for xml can i be used to validate against the schema and highlights um i'm not sure there's probably some stuff that can do that i'm not super familiar with the plugin that you're mentioning but i imagine there is a way to validate schema yeah definitely highlight what plug-in installer do you use is does any of him have an opinion about what type of installer to use bim plug or whatever neovim does not have any opinions about which one you should use i use a plugin installer called packer it does some interesting things uh in addition to normal uh package management including the ability to uh install some lua packages from lua rocks which is really interesting so if there's some lua package that exists out in the wild well if it's written in lua we can execute that code so you could reuse some code that other people have written which is exciting for thinking about not having to rewrite everything just to work inside your editor very good presentation oh thank you uh does the functionality show come pre-configured if not what's the process for setting up a particular language so obviously not like everything i showed here today is uh pre-configured but actually a lot of it is is relatively simple to set up um obviously some of like my custom customized snippets or things like that are not are not available but um for example if you wanted to just [Music] if you wanted to set up like lsp it goes mostly like this you install um a plugin called lsp config that makes it so that you don't have to know some like weird command line configuration to start a language server it just basically is a collection of configuration items so assuming you've installed that you could just say like local lsp config is require lsp config lspconfig.rustanalyzer.setup and then you can say on attach is a function here this function gets called when you attach to a particular buffer and then after reading a little bit of help or the wiki documentation on how to set up a thing you'll know that you can just basically do vim dot key map oops sorry keymap dot sets normal mode gd for go to definition vim.lsp.buff.definition like this and you can just sort of start extending this you can look at the help for a bunch of these things to know what they're doing right but after you do this once so configuration for you assembly required right then to add a new language um you could just say custom attach here local custom attach is this function and then you could say to add a new language all you'd have to do is say go please or something dot setup on attach equals custom attach like this so like once you have one language set up the cool thing is all these languages and all these other things use the same general like framework i guess i don't really like to say framework because it makes it sound like it's some monstrous uh some monstrous thing but once you have one language set up you can pretty much just copy your configuration between the different languages or like just put it into one function and then those languages will be attached for other things um so my project has several developer machines after i've customized my efm pde how do i copy it over to other machines in general um i recommend just having some of your dot files be uh github or some git repo that you have and that you're able to sync and so for example my uh my dot files are just in here this is just like a normal folder with all files that you can read because they are just files that get executed so if you commit that and push and pull on another machine all you have to do is run whatever your like plug-in installer uh tells you to do so for me that's pack or sync so once i run packer sync after i've got my new uh get files down then i'm all set to go same experience on both machines um assuming that you know i have like neovim running and stuff already on that computer obviously it doesn't like magically install everything but yeah does that make sense they're just files uh they get executed there's nothing special about them right so like my init.lua the file that gets executed when we start is just like a lua file that gets executed there's no like weird binary or like xml that you have to hope doesn't change between versions or something like that um you just have just have files yes yes uh that's why i that's why i mentioned that because i know i have uh i i have used jetbrains at various times in my life and i i really like jetbrains in a lot of ways but like getting my jet brain set up the same way between two machines was just not a possibility it seemed for me i could never get it to actually work um so yeah so you just can literally uh it's just files you can just commit them um i have like here is my repo that has not only my dot files for any of them but all my other dot files as well and so you can just see inside of here i've got a folder here with like a lot of lines of code you don't need this many lines of code to get working but remember part of the fun for me is just getting to tinker and write more code so i have i have definitely done that many times uh how does the rpc stuff work over a network can i edit locally and push changes to the remote or excellent tunnelback so the rpc uh is i think that's a little bit different you could for example edit our remote files using like ssh fs or um some other plug-ins to do that the rpc is generally like local over some socket between you and like a gui or something like that um i i the the rpc is mostly between like neo-vim and plug-ins it's not really between you and me of him if that makes sense i don't know if i'm 100 understanding the question though cool

Video description

Speaker BIO: TJ DeVries loves developer tools and is a member of the core team for Neovim. He also makes a lot of other tools related to Neovim on his stream on twitch (twitch.tv/teej_dv) and publishes YouTube videos about many of the same topics as well (youtube.com/c/TjDeVries). Talk Description: The speaker, TJ DeVries, will go through some of the features of Neovim (some shared with vim and others unique to Neovim) and then show some of his favorite customizations that tackle common parts of his workflows. Topics will include the following: LSP, Debugging, Fuzzy Finding, Navigation and more. About the SGVLUG: The SGVLUG is one of the oldest and most active Linux User Groups in the Greater Los Angeles area. In addition to Linux, the group also shares interests in other free and open source software, all forms of technology, and the discussion of issues that arise with these new tools, such as privacy rights. The SGVLUG attracts members from throughout LA County including Pasadena, Glendale, Burbank, and eastward throughout the San Gabriel Valley. Our members include software developers, system administrators, hardware engineers, and software users of all levels of expertise. Many work in the technology field as employees, contractors or consultants, and enjoy the learning and networking opportunities available from the group. We also have many members that serve as volunteers of their time and skills at various local events, including the annual Southern California Linux Expo (SCaLE).

© 2026 GrayBeam Technology Privacy v0.1.0 · ac93850 · 2026-04-03 22:43 UTC