Make a Simple Vim/Neovim Plugin from Scratch: cyclist.vim

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
go back to here okay that's okay I got I got to where where you were thinking I got to where you were thinking so that's that's the main thing that's the main thing so how do I do this boop boop boop how does it show those well let's say where we are here do I have it in here nope not this guy cyclist chars cool so list chars is the thing you're looking for help list chars this is what you want to read this will give you a bunch of examples of how you can show different kinds of whitespace in the editor okay I wrote myself a little plug I'm not even a plug-in although we could make a plug-in you know what this would be such a simple plugin we could make this in like 10 minutes and it would show you exactly how you guys can set up making your own plugins in sort of a very Vimy way with just like vim script do you guys want to see how to make like a crazy simple vim plugin I have a fancy and robust list jars and knob leaders always ask me why my code is full of weird characters okay cool let's let's do that let's let's try it out let's try it out we'll make a new one I'll just quick make what should we call it we need a funny name that includes basically like oh I know cycle list like this because it's like cycle plus list chars okay cyclists that's pretty good right okay we'll try it out this one cyclist Doug boom cycle plus list cars initialize readme add a license MIT nothing special here I'm just doing a few things to set up this repo in another window I don't want to document cell for this we heal chars haha okay Weill chars wheel chars that is good that is good but we're gonna stick with cyclists because I already made the repo okay so the way I usually do this is all I like to put my plugins that I'm developing just in a special little folder because it's easier for me to to manage them but you don't have to do that okay there's nothing super specific like about putting them in this magical folder you just have to make sure that in like your anit them somewhere in your where you're making plugins you need to add it to your plug-in list so we'll do cyclist vodka okay this just is a wrapper for me that checks if this local plugin exists alright so there's a couple main folders that you need to know the first one is plugin okay plug-in automatically get sourced when neo vim starts okay so if we do something like and then plug in the typical way you'd want to do this is name the vim file here the file of your like you of your plugin basically okay so I'll call it cyclist stop them and it's it's in plug-in alright so if we do something like echo cyclists has been sore okay so this just basically says hey cyclists exists okay now when I start in vim again you see that cyclist has been sore shows up okay so that gets automatically happened at the beginning you guys follow me you guys follow me cool okay so this is where you want to put you know basically like all the stuff that always needs to get defined for your plugin so for example what will probably will need will come back to this file okay we're gonna have to put some stuff here yeah okay so the other thing that you want to know is there's auto load okay auto load does not get sourced at the beginning so let's make another cyclist stop them and we'll say echo this does not get source automagically okay we can quit out we can start it again notice that that did not get printed at the bottom okay it did not get printed at the bottom so you might be wondering how do auto load things get source the main way that you do this is you can write a function in vim you write functions by starting with functions if you forget any of this information you can check out help auto load no no so auto load does but it doesn't auto load at startup that's what plug-in is for auto load automatically finds and loads them when you ask for it okay so notice how this is in cyclists been in the auto load folder so be Griff shrift hey thanks for the follow thanks for hanging out we are working on making a simple vim plugin to demonstrate a bunch of different stuff about Lisp chars okay so what you want to do that is you name the first part of the function the name of the file that you're in you put a pound sign which is basically like separator and then after that you put the name of the function that you want to call basically so let's just call this something simple like I'm just going to call it an example cuz I don't have any good good things that we want to do with the plugin yet okay you're welcome oh thanks buddy so now if we do something like this call cyclists example whoops okay if we do this all right this is gonna say hey find autoload cyclists got them load it and then call this function okay so when we call this function this whole file gets sourced okay so now when we load up we can say but it does from getting source is the plug-in named pound function name convention or is there technical reason for doing that it's not plug-in named pound function name its file named pound function name and it is the technical reason is that it looks for this file to load it okay so remember when we didn't have this all right let's close out of here note only it says cyclist has been sourced but now when we call this function right and remember plug-in gets automatically loaded when we when we load neo him if this is on our path so now when we do it see how it says it has all three of the messages okay you guys follow me you follow what I'm saying here cool okay so that's how we can basically make the startup time of our plugin a lot better so what we would normally do is you would do this here we would make some mapping like no remap plug cyclist example something like this okay 102 IQ yeah yeah just a little bit above average right that's me so this way this doesn't affect how quickly we load neo vim okay let's say we have like a bunch of expensive stuff here this would basically like defer that loading until later until we actually use this plugin okay you guys follow generally what I'm saying so this is why when people ask like does adding a bunch of plugins slow down neo them or like slow down the startup no it doesn't do that if you're using plugins that are well-behaved okay like your plugin file should load in 0.0001 seconds so no matter how many you well-behaved plugins you add it shouldn't like slow down your startup any amount of time and and it shouldn't like make things happen all the time automatically yes some plugins do slow down dramatically though so why do some plugins use the no remap plug something and others use command something call something it's a good question I personally like being able to then later do something like this and map like leader will just call it CC because that's what I have in my thing this looks nice okay this looks nice to me in my opinion I think it looks better than leader cc cyclists example like this something like that I think this does not look as nice as this so I think a lot of its personal preference about what you think looks prettier additionally this lets you redefine whatever things you need to do right so if you decide you want to change the name of your functions or like your commands or like whatever you need to do you can do that a lot easier I think with this style then with this style but it's not a hard and fast rule and I think both were probably just fine for most things we might define some commands though as examples as well we'll have to see what to see what makes sense so we'll leave this one as example mapping for now somewhere to type plug manually call the remap know this plug thing here is a magic untie pible character so it is impossible to accidentally type it you can check it out with help plug and it'll tell you special keyed plug can be used for an internal mapping which is not to be matched with any key so you can and then you can check it out all the stuff they've got here cool okay I need like a five-minute break to go grab some coffee drink some water and go to the bathroom maybe less than five minutes okay so if people come here tell them that it's the coolest dream even when TJ's not here it doesn't even matter if TJ's here or not still too cool a stream still the best place to hang out okay that's what I need you guys to do for me run jokes rotate string oh okay yeah yeah you're right you're right you're right we need to add something to the left side over here as well let's do a Lua LSP convict okay oh no we gotta wait we got canceled okay okay see you guys later it's just hacker time uh-oh hey what's up guys this is just my dog can you guys see you're okay now yeah there you go woof woof right boys hey good girl good girl ember yeah yeah nuni open developer nice uh okay I got to bring her back I'll be right back again I gotta finish grab my coffee okay let's go oh okay oh wow that light right out my face is so bright okay let's put that over here okay let me scroll back up and see where we're at and stop this is too confusing oh is it gonna be able to work umm one amazing stream yo the coolest room ever best room in my life oh thanks guys thanks thanks thanks you can't get away with the second the mainframes oh no no no guys I think I might have broke it okay going to college I actually want to know how to get the read errors and warnings and stuff like that that's built in LSP by the way we'll go through it on some other day yep you guys saw my dog she's awesome oh thanks hey that's a that is a really great Lola mote there okay I think I accidentally broke broke vim abort abort guys we're in trouble okay we'll just switch over back to this guy and yeah we'll get back to where we were before I don't know what happened it's honestly just destroyed actually you know what I probably need to do is I think I should probably close out of this I actually just straight-up frozen we'll try this again let me choose a new that's not what I want okay all right what were we making again cyclists okay yeah we went we went really AM and just really killed it honestly I think has never been run for that long as I don't think it was built for that okay we can open this back up and then let's open up plug in and let's over here open up autoload let's I save this cyclist so that I can open this up over and over honestly I wouldn't be surprised if something like that happened buffer or fall is not completely unreasonable but that's what you guys came here to see you know I got dog hair in my mouth how'd that happen well gross yep I did sorry you guys had to see that okay are we good are we good to go yeah we're good to go all right so what do we want this plugin to do let's look back at I guess we can't really do this side let's put it on just like all right so here's here's what we need to do right there's a bunch of a bunch of things in help list jars which you guys probably can't read when I put it over here huh I can rotate it up here okay that's fine for now okay so basically what we've got going on here is each of these different options has different stuff that you can put in to represent what this displays as white space H Michael I can answer that with a command boom you both do 20 point O for I am a you know Linux new I just use boring basic Ubuntu but it's what we use at work so it's nice that I develop in the same environment is what we deploy to and stuff like that so that's why I use it and it works pretty well for me all right so so here's the deal yeah it gets the job done exactly right Nathan here here's one thing I don't like about this plug-in the way it is all right or this setting the way that it is you just got to do this in some ugly one setting string okay so like can you do echo and list jars like this you can see that's what my current settings are okay but it's kind of annoying to set them all as commas so I think what we should do is I'm gonna delete these echos we don't need them anymore you guys understand what happens here is what what we should do here is we're going to make a little nicer API for this first to set each of the different options okay so what we're gonna do here is we're gonna do let s list char ops is a dictionary okay we're going to make an Al end-of-line guy and it's going to have some defaults we're gonna do some tab guy and it's gonna have some default we don't actually need this or let's do this right now so that we can have some more space to read this alright so there's a couple of different options for tab so we'll need to read those later there's one for space Oh Kady are you making fun of me I know I was gonna write I was literally writing local I've been writing a lot of looy lately trail and whoops extends do we have any other things here proceeds oh my goodness there's so many of them Percy conceal and no nbsp okay is that all of them yeah that's all so what I want to do here is basically I want to do something basically like cyclist Satya bol okay and I think this is a good plank and then we can do something like so yet AOL can only have one one character at the end of each line so a single character so we can do char here something like this right okay so now we can just do something simple like let s list char op co l equals a char okay we better go over this what does this mean what's happening here s list char ops is this script local variable that we've got at the top so it's not accessible anywhere outside of this script let basically says hey let's set this value to whatever is to the right of the equal sign so you can't just do like this that's not valid you got to do this okay and VIN script and then what's up with this HR stuff in vim script the arguments here get added to a dictionary that looks like a like this until you access them prefixed with a so it's basically like a namespacing thing okay you guys follow me I just want to make sure we're all on the same page I don't want to jump too far out here because after this we're gonna start writing a lot more code okay aspirin for Oh aspirin for I don't know if you have chatted yet but hey it's great for great to see you here thanks for joining the join in stream I don't remember if I mentioned this yet but I'm trying to stream Tuesdays and Thursdays from basically the times that I've been streaming this week from going forward okay so so that part's not that exciting we actually need to write one other thing which is basically we need to write some new function here function cyclist update list char's its list chars write list chars yeah okay I want now what I want to do basically is I want to do something like okay we're gonna set list chars and we want it to equal some stuff over here right so what do we want it to equal well we want it to equal basically all these guys smushed together separated by commas I believe right yeah separated by commas and we need colons in between them to set their values okay so the thing is with set you can't actually put an expression over here what you need to do is let and list jars this is a little trick that if you don't know you put an and some in front of something here that basically just means it's a built in option so if you do like an echo and shift width it'll tell you what the shift with this which is two for this one or like echo and file type so you can do that so if you need to like do something like let my bar equal and file type you can do that that's how you can access those basically I don't know in a programmatic way okay so we need to set lists jars to something here so what do we need to do right now we'll just set it to to this we need to basically get all the keys and values here and smush the keys and values as colons and separate them by commas so I think we should be able to do that what we should check first is help dict functions so these are a bunch of dictionaries functions H Michael if you can upload the video to the YouTube later I'd be happy to do so because I'm not a native English speaker and I'd like to be able to watch it an environment with subtitles like YouTube oh okay yeah so H Michael that's a great great great idea I happen wanting to upload it to to YouTube I think I just need to make a new channel there and figure out the easiest way to download and then upload these so I can try and do that I also twitch deletes your vods after two weeks which is kind of annoying yeah H Michael has awesome English he he sort of acts you know he's like oh I don't have that good at English but it's really good I've never had any problems understanding anything he has to say just so you know buddy okay so here's what we want to do we want to yeah okay so this is kind of a funny story you guys I think will appreciate this my wife and I used to live in Madison Wisconsin we volunteered at this place called English conversation time and basically it was like a place to help to help like non-native speakers learn how to speak English but ER and so we went there like once a week on Friday nights and so we just like talk to people and hang out with them and help them it's actually how I met a bunch of people from China and why me my wife went there last summer but that's a story for a different day but but yeah so they would like always ask us questions about like why certain things in English aren't the way they are and most of the time I answer the best answer I could think was because it sounds good like I'd literally didn't know what the right answer to to this stuff was so it's kind of embarrassing but that's okay that happens okay yeah it was it was it's not I would always be like oh my goodness I'm embarrassed we I don't know why it sounds good but it does I mean a lot of them a lot of them basically just wanted to know what like the native way to say something would be they'd be like how is the best way to say this and so we could give them like the way that we would expect people to say and then that was that was helpful but it was I just thought it was pretty funny because I literally could not couldn't figure it out okay all right back to this back to this okay so we can use this function items on a dictionary or it turns a list with all the key value pairs of dictionary each list item is a list with two items okay so basically what we can do there is we could say something like let list char items equals items ask list char opps okay so that's so we can set that and we can do something like echo list list char items and will comment this line up is we're not ready yeah yeah I'm a native English Spanish speaker and it's just as weird sometimes yet languages are just really hard I think they're just really hard to figure out one really okay so this is a cool thing basically that I think is really nice about developing plugins in them if you just do source % it's gonna reload the file that you're in right now so if I make any changes to these functions I can just reload the whole file as opposed to like other places where you're developing plugins you might have like restart the editor like do all this complicated stuff you don't have to do that you can just source the file I have that mapped to I think for me its leader leader X which just saves and excuse the file it's just a little function that I have we can show that off later all right I can't get too distracted on this other stuff we got to do this I'm just gonna put this this guy right here this update list chars thing at the end here and so when I source this file it's gonna call it and do the thing that I want it to do okay so as you can see here right now we don't have we don't have anything exciting in any of the list chart options okay so this is kind of useless at the moment Rob Nix hey thanks for the follow really appreciate really appreciate the follow let's go back to list jars and let's add some of the defaults in here okay so the default is that trail is a - non-breaking space is a + and tab is this guy here like this okay you guys follow me I'm just putting in the defaults that are right here so that the default behavior that we have is exactly what vim vim would do all right so when we now when we source this you guys can see that trail is here and like non-breaking space is this and tab looks like this okay so that's what the items are I think that totally makes sense we can actually do something like this echo items like this so that now we see what items is okay now what I want to do is I want to map these just to string so let's look up help map so function one has to be a list or a dictionary so we've got a list or a dictionary and then expression two can be a string or function ref so function ref is much better we're gonna work with that and I'll show you how to make basically like anonymous functions in them so let's do let list char math is math list chart items okay and then this thing is pretty cool you can do key or I guess it's I think it's index when does it have it for a list if you want to make a list yeah that's that's gonna be fine index key okay and now we can do this this is how you write basically an inline function invent with this little arrow it's kind of like JavaScript ish we are going to return print F I think that's what it is princess yep and I want to do % s : % s like this and we're gonna pass in the index and the key oh sorry no no we're gonna pass in key 0 and key 1 alright let's break this down a little bit shall we okay what am I doing here we're gonna loop over did I I think we're good unexpected token I think it's fun yeah okay we're good I feel this jar man this might actually be I might have messed something up earlier yeah totally okay cool so what are we doing right this isn't the inline function map says hey help map this function is going to take the index and the value or the key and the value and so what we can do is then we're just going to return basically key colon value which is exactly what we wanted right so now when we're looking here we're starting to see exactly what we expect to show up for each of the list jar options but it's kind of dumb right to put space with nothing there okay you guys follow me right like why are we gonna tell it what spaces so instead what we're gonna do first is we're gonna do a little bit of a reduce I think it's reduce help functions I thought it was reduce ah filter help filter nope like this don't you need a comma as well ah we're almost there Katie we got one more step to do so filter works very similar to math oh whoops I think I messed up my let me let me restart them here yeah I have some bugs still in the in some built-in OSB stuff I'm working on a PR right now I'll help this I don't like this so we want to filter out all the values that have an empty thing as this as the as the value so let's actually just do this we'll do reduce this one right here K V and then we'll return does it filter it out if it's true the function must return true if the item should be kept so we'll do B naught equals this oops did I do that wrong oh I keep typing reduce I keep on typing reduced but that's not what I wanted to l want a filter yeah thanks Katie okay cool yeah you guys see that right so now we just dropped all the ones that aren't there that's exactly what we wanted to do and so now we only have the ones that we actually want to set and now we can do help I think it's just join yeah joy and we can just call it with a list but actually I like to write these basically all in one line so what we're gonna do I only I just did that so that you guys could see what my plan was basically color scheme name oh I'm so glad that you asked it's a color scheme that I made Dhruv buddy it's based on Dhruv box but it uses a super cool plugin use a super cool plug-in written by a super cool guy named me a super cool super cool experience in fact you know what Oh nope nope it's actually it's actually a plugin that are up and you know what I should really add color scheme right I should add color scheme for more self-promotion stuff just color or color scheme colors or color scheme and I should put in the two things right here right call our buddy alright we got to add this we gotta add this face on this I use this so we can do Colo or color scheme is there no way to like make a bunch of commands with exactly the same thing on this I'm just gonna say colors okay you guys will have to remember that it's colors colors very cool so now you guys can see that yeah Llano P it's a great question who could this super cool guy be feels like Nord and group box mix honestly some of it is just like I just was messing around with colors and that's what I ended on land Opie well there will be a bot so you can always watch the bond and and catch up with the rest if you want we're gonna all right we're gonna try and get as fat as far as we can okay so basically now what we have is mass here we can run this I didn't do this right invalid join what did I what I do wrong here I've got too many tokens here oh I've never put a comma here oh look at that right okay you guys see you guys see what I what's going on there Kay fangs hey thanks for the follow thanks for the follow tres comas yeah yeah if only okay cool so you see how basically we just turned this dictionary which we're gonna basically like make a bunch of really nice little helper guys here like this right we can just do s EO l and we can change this to tab I guess is the next one ask tab oops pol tab yeah all right and we can keep on doing that part basically okay and we can do the same thing here and we'll just put this and we'll do tab space and then we can do here and then the next one is s tab trail and then tab extends oops tab extends and then we can do another one here s tab I'll shoot what was the next one extends proceeds conceal nbsp and proceeds oops and then we've got conceal conceal and then now we can do the last one which is tab and the SP okay oh yeah you're totally right I could have been doing with just a slash laughs okay okay cool actually and we're gonna change a char to just like oh all right let's do char which i think is only the ones I want and we're gonna change this to just pattern or what is it what do they call it in helpless chars Street is come a string season list and for the list command as comma say list of string settings they don't really have a good name for it maybe I'll just call them chars instead because some of them can be more than one yeah let's let's do that char mmm yeah we'll call jars okay how do you get that pop up on the bottom with : s it is an e ovum built-in feature you can check out help Inc command and basically all you have to do is do set Inc command equals split and then once you do that you get the magic and it's beautiful and it doesn't actually like modify your buffer or anything like that there is nothing about it that changes it's all on the seaside built underneath them script and everything like that so it's impossible to basically like mess up what you got going on there it'll just it just works every time no matter what's so it's great that's a cool feature that I like about neogan that doesn't exist in vim and I love it ok cool all right so you guys see what we're doing here right so now instead of doing this echo map stuff actually what we can do is we can do something like us debug is let's just set it to false for right now but if we can do if s debug here then we can echo list list charm at something like this right you guys see what I'm saying here and then we can set this to list our map also highlight yank need I'm only true if you guys don't if you guys see this see how like I pressed Y W and it shows what I'm gonna do or I can do like yank inside I'll do an example here like yank inside parent boom you got it you ought to know how easy that is to set up where do I have this I think I've got it in Lua and knit that Lua probably where did I where did I install it I don't remember where I put it well I might actually just be in mind that dot them what where did I put it space GG highlight daeyang nope I actually don't even remember her oh I'm in the wrong I'm in the wrong project that's why where did I put it oh it wasn't here oh yeah okay I literally just skipped it cuz I wasn't paying attention it's literally just this easy you can put this part in your plug-in anywhere all techniques post star silent Luo require vim not highlight on yank boom it's so it is merged it and it works great I don't know why I actually have this in my lua folder here probably because the feature is Lulla so I like it in like maybe in a week or two depending on how fast I can fix some memory leak problems you'll be able to do something like this then defined Auto command text gank post star on event equals function and then you can put this you just got to do require vim got highlights dot on yank like this oh baby that's gonna be nice like that oops like that it'll be super nice we don't have it yet though but basically this is the thing you're looking for this will do that automatic island and stuff and it works great oh one super cool thing you can help VIN Vout highlight on yank if you don't want it to be if you don't want it to happen in visual mode you can use this mapping here but I don't mind actually you know what we should really let's just change it let's just change it cuz it really yeah so now if I select this area in visual mode boom doesn't it doesn't do it um how to make it not happen in macros that's a good question let's let's try one I do the yank yank and I move down and I quit it and I do like five at a I don't know it appears that that's a good it's a good question LAN or Katie we could can you make an issue on it and tag at claisen like that just tag him in the issue and tag me and we'll make it happen for you we'll find a way gluttony thanks for uh thanks for the follow I hope you can feast on some wonderful neo of em content here okay what what is vim command what does then document do so this is a Lula file then that command runs of em commands but we're not ready for that yet we're still working on a simple regular vim plugin we'll have to come back to this section later I was just showing you guys how you can get the basically the highlight on yank stuff to work I don't we're not we're not ready for Lua we're not ready for it [Music] but you would want it for that purpose right I'm not sure what purpose you're talking about thanks to POC all right we're back here we're back here so this is where things get pretty cool this is where things get pretty cool now we're actually setting this list chart with the map that we made right so I should be when I call this it'll set stuff so let's let's just try this out we can make all spaces look like underscores okay so we're gonna change this to the default it's an underscore we run this bada-boom bada-bing I just sourced this file again and it made spaces look like underscores okay you guys follow what just happen there we can change this back to nothing and those underscores will disappear that's what list chart does okay oh shoot I forgot to do this part call cyclist update list jars like this is there any way to go to the end of the next function I always forget one of this ah there we go oops okay so now what's pretty cool is we can do something like this let's do call cyclists set space and this is where we can set this to underscore like this oh no it didn't work oh we forgot to update this file okay here we go we can do this now not using TP power here's tell me okay you guys see that so now basically we set up a really nice way for you to be able to configure what they should look like you know I want to make it a tilde we can make it a tilde we wanted to make it a carrot for some reason we can make it a carrot what is a cool unicode character that we can use oh I've got one already actually this is a cool unicode character that I like for this that's the one that I sometimes use for spaces if I'm be if I want to be really obnoxious yeah you could use period it's fine too some people do that so you basically okay you guys see what we did there we basically just made some way to always update it based on the config that we got and then we just set little helper functions so that we can do nice things instead of having to remember how to do this syntax gross right not that good what does list even do yeah okay oh sweet you can see what it looks like here okay so what's we should show a few examples of what these other ones do I think AOL is a nice one wish my dad environment at work let me use mmm yeah that can be tough man that can be tough I call cyclists set AOL let's do this guy here I think this one's pretty pretty cute max Jowett hey thanks for the follow we are working on an example of a simple vim plugin how you set it up how do you write some example functions how do you do this kind of stuff that's what we're working on right now I want to change space back to something that's not this because it's too annoying for me that one's way too busy okay so I loved in the oven hey me to do it uh thanks for joining us on the street we are like I said just working on working on trying to write a simple plugin we're calling it cyclist because it's gonna help you cycle through the list char's cyclist very cool right okay so what what other settings might we want to add there's some you might want to change which highlight you're using for some of these things which I think it describes here so there's HL non text highlighting will be used for AOL extends and precedes and HL white space which get used for non breaking space space tab and trail can you already do something like let G : in your settings with this wait Randy I'm not sure I'm not sure what exactly you're asking it's all SSI chained into old boxes vim 7.4 is the best I can get mr. Bies you should consider trying to do something where you use like you I don't know if you've ever seen this but you can do like II SSH colon slash slash and like do some file path magic and blah blah blah or remember exactly what the trick is you can edit over SSH if you're interested and then you can have one set up on your box your main box and then you can connect and edit over SSH to all those other boxes I haven't done this in quite a while but it is possible to do are you like a Tim Pope someday I hope to be half the father figure of Tim Pope like setting less jars in your settings with this plugin yes so now that we have this existing okay now that we have this like around you could do something by calling by calling these functions in your knit them okay so we can't like just do an example here right where we basically do something like after we up see you later Lando Pete hopefully you can join us again next time mr. B's I didn't even know that was an option yeah it is an option you have to set up some like SSH credentials and a few other things like that but it's totally it's totally possible Lando Pete thanks for the good stream you should do it more often I'm trying to do Tuesdays and Thursdays going forward and we'll see if anytime I can do extra this is like I said this is only my third stream so we're just trying to figure it out still and working to get better and better at it J theas twitch thanks for the follow man we are working on making a neoman well just pretty much a vim plugin okay ready so now you can just do this you can just do call cyclists set space equal set space and let's not do space because I hate that one let's do set a of AOL is this guy okay and actually what we're gonna need to do is I don't want this to happen anymore because we're not using this anymore we're not using this set up okay so now if we open up a new mm instance and we just open up some random file I want to open up a file that I'm not editing yeah like this see we've got I don't know if you guys can see them they're a little faint they're a little faint but they're they're okay they're totally there I have my HL non-text quite light so that they are not like obnoxious Nate you're wondering what character this is I have no idea I found them for my stuff earlier and had it saved basically so I found a few of these around that I really like and and I use them and I use them so we could we what we could do is like you know I think this is a fun thing to put in as you're as like a good default for AOL so we can just put this inside here and if people don't want it they can override it right so that's one option I don't actually remember what each of these things are so we should look through here and determine what they're I've never been able to use ligatures but some unit road cars can be really neat yeah I definitely agree I love ligatures though if you use Kitty like I do you can use ligatures in the terminal like on this whoops on like this line here this is a ligature right is is actually just these two things but when we switch them together it makes a ligature I am a big fan okay so yeah well we know what that one does I don't remember what extends does character to show in the last column when wrap is off and the line continues beyond the right of the screen oh well this is definitely a great a great character to show for extense okay and we can we can try it out let's just do something like set no wrap okay see how these guys go past the end of the line here let's do let's source this guy again and then see how there's a little there's just a little bit of like dot dot dot going on there at the end yeah that looks real real nice maybe for you guys I should do something like what is my highlight non-text we could change that slightly maybe plugins caller body Lua plug-in whoops collar buddy plugins in it i have non text in here yeah we can change this to maybe a slightly different color okay can you guys see that better that's like almost too much though don't you think that's like that's way too much it like looks like it's part of the code maybe if I make this light yeah I think maybe that's I think it looks like this is like a little less subtle but but still sir but still pretty subtle I think this is maybe like a good a good mix um if you're thinking holy cow Wow how did he update his colors like this live how did he modify a color to use modifiers you might be wondering how did he do that that's how that's how we did it okay so you can check that out later I think I think I like this with a little bit just a little bit more more pop um proceeds proceeds I think should just be the same thing though as this is this guy right it should just be like hey you've got a little bit of stuff there hanging out too to the left same idea as the if I just like keep poops yeah oh we didn't we didn't set this up oh yeah that is real nice look at that it's just like hey you've got more text hanging out yeah that looks great that looks great yeah I really like I really like those oh it's good rude thanks for the follow just so you know though this is a nice person only chat so don't be rude here I should get back to coding okay cool so this this looks good I think this looks good I think we're in a good spot here we're in a good spot for this bait ah man okay so so okay so I think those are good defaults right if you're going to install this plug-in we should provide a little bit better defaults then then what we got going on here what what do you what should we put in for concealed characters show in place of concealed text when concealed level is set to 1 do you guys know about concealed we we don't have to do we don't have to do conceal really right now I think we can leave it we can leave it for later Oh pound is not a bad idea pound is not a bad idea let me think where is an example where I actually use conceal oh we use it here okay so let's set conceal level equals 1 I just put spaces there so we can do something like let's just put pound and see what that looks like okay so that drops the little pound in there is that can you not do it would have been awesome if they had like concealed left and concealed right but that doesn't really I think maybe like a bar works pretty good you know kind of like this little bar is there like a eunuch or Unicode Unicode character or are you guys ever use this let me let me pop it pop it up on construe so you guys can see I love using this if I'm looking for like a specific you just like do this Hey okay what what do we got here I want just like a you know like a tiny straight up-and-down like this guy's kind of cool oh but it's not it's not good it's not good I think I need to draw it even straighter just literally I don't know if I can draw it any straighter than that though box drawing light vertical now that I think is what we're looking for oh yeah now that is gonna look real nice oh yeah that's real nice okay and then we can also do what is trail look like it's these - ones do we have anything cooler for dashes oh that oh but we want it to be like halfway up the text reverse not sign is not the worst thing ever for this we can paste this put it like here now like that's a little bit cool proceeds should ignore lines that are whitespace preceding rainy submit the patch buddy submit the patch okay it's as simple as that I'll merge it as soon as you do it okay as soon as you do it yeah hey yeah that's what I had the hot as I thought that's what you get for suggesting features on an open source project what do you guys think okay do you like this one for for trailing or should we do something else oh you guys literally can't even see right now dang it what am I doing here we go here we go you is dashed vertical to 5:09 is - horizontal okay how do I input these in vim again I always forget ctrl V you - 509 that's not it help I control the what's the what's the one for Unicode stuff help Unicode does anyone remember I just looked this up like a couple weeks ago so I should remember this is a control to help control queue oh that's literally the same as control V control V but where's the one where it says like how you can do double width and stuff like that insert Unicode character bin sorry to have to do this oh is it literate is it just do control V 2 5 0 9 no I have to do something else to make it help grep unicode control v is visual block mode in normal mode but it is not it is not for when you're in insert mode alright that's when I was forgetting I couldn't remember that I had to type the you first to 5:09 enter oh that's a pretty good one you guys want to use this for trail can you see that you can see that one um Riggins stimple hey thanks for the follow we are you're you're my 200 follower thanks for the follow yep lowercase u 416 uppercase u 432 and then you can hit enter when you're done 509 yep yep yep yep yep I could not remember what it was alright you guys want to try that one for trail so we can do control the u2 509 we'll get rid of those guys I don't like how it merges together though you see how it kind of merges that looks a little bit it doesn't look that great try control the you to 500 a Oh 404 conceal okay I like it yeah I like it that looks good to me oh we should leave these so we can see what it looks like to 508 is lighter oops to 508 whoops will be you to 508 ah okay yeah that is later that's nice I don't know if this is just because of I don't know if it just because of Kitty I don't really although I basically never have trailing spaces so it's fine to leave it I think I might I might actually go back to I kind of liked this oh this would we could just make it like crazy what is this Byzantine musical symbol and what is that it just looks like a crazy underlined does it not it looks like I scribbled it you guys see that but like literally looks like I scribbled okay we're leaving it as that I don't think you can beat it will be you to five 90 100 okay alright for for trail is that what you're saying should we do it for space can you imagine if all your spaces just look like this Philby to sit ups will be you probably you to see so three choices no everywhere Oh Z now you guys are thinking now you're really thinking I like it I like where we're going um okay no we're not gonna do that okay no I like this I like this scribble one cuz it's not that intrusive and it looks like you forgot like you just scribbled at the end of your line and that's how it feels when you leave whitespace around so we're gonna I think we're gonna use that for trail but what we can do is in our readme let's do some possible configurations then call cyclists set trail control the what did you guys say two five nine you want let's control the you two 591 okay I think that's a good option you plus two 591 can we show some love to the inter Oh what what character is that Stupak working nine to five we are working on a little plugin just showing examples of how to write a VIN plug-in basically ideas of how to oh how like how you structure it how you set it up how you get moving with those things all that kind of stuff it's real bang meant for rhetorical statements and sarcasm yeah what should we use it for should we how do i okay let me paste it in let me paste it in it's a it's another good option for call cyclists set trail interro bang credit at Stupak 62 like uh hello what are you guys doing that one's a pretty good one uh no no no rainy I did say it was gonna take ten minutes max I said it would only take me 10 minutes to write it deserves a spot on the keyboard in my opinion okay I'm leaving it with this music reading as the squiggle all right okay I don't think space is a good one to do because it's too annoying for tabs oops I'm set file type equals nothing does this one not use tabs how what were we doing before filter where where do we have some tabs oh we don't have it set up to show anything no that can't make that doesn't make sense here can we can I just do this okay so here's some tabs garbage tabs just to show you what it looks like by the way someone may have mentioned this but since using kiddie you can use ctrl shift you to get there Unicode helper and hit f2 to search by name no way oh my goodness Wow control should you I can just do like what happens if I do wait how do I use it Oh f2 to go by name type dot followed by the index dot a oh my goodness okay all right that is awesome okay here's a real question let's put this here role shift you da zero does this work okay didn't work but that would have been pretty freaking hilarious wouldn't it have been haha it just makes my leave aces for all the spaces it didn't work that didn't work okay oh wow I just used D menu I just don't really type unicode characters that much because I'm filthy American who just uses ASCII stuff and we didn't think of Unicode when we made the internet stuff yeah yeah yeah definitely I think so for tab what we should do is there's a couple different options for tab you just have to live all rights just colors I need to figure out and make it work for more than just one thing so I so this parts pretty cool this parts pretty cool about tab we can choose a couple different options for the default so when we just have two characters like this it shows the first one and then the second one repeat it as many times as tab is wide okay so if I do something like that well we can just do an example later let's just set this to be like that see how now it like pulls them out right pointy arrow hahahaha Stupak no we're not gonna do that but it is a good idea you can do it you can do it I will put it in as options though in in possible configurations we'll make this one trail and then this one will do preceeds and what did we call it extense hole cyclist set extends and then oh that's a good one call cyclist set precedes oops okay that's that's funny that's some funny stuff right there we'll show that as an option the little that is pretty good that is pretty good Stupak I'm not gonna lie I'm not gonna lie that's pretty funny I like the dot dot dot one though but that's the beauty of them you can just take this for yourself you just pick that for yourself okay all right so guys which kind of which kind of tab option do we want to do here we can do the one where it's kind of does this or does this this pattern and I do oops I hit the wrong button we can do so we can put this guy here I like that I know we can maybe do that I don't know how does that look it's kind of annoying that those don't line up but I think that's just my just my adder I in the past I've done something like this which is fine or you can do this oops I don't mean to do that the tab XYZ form is getting backing to be configured with an inappropriate STR representation of a certain Anatomy just a very long pointing finger I think you I'm just do spaces like this that's a good option in the past I think oh here's some of the ones that I've done before I think this one's pretty good I like I actually like that one I think it's nice geometric shapes yeah let's check it out I I do like I do like this one which is one that I've used before or you just do with the space like this I think this is pretty good it just tells you exactly where the tabs are I don't know I don't have a super strong super strong preference for that one though I think I think this will I think this one just by itself is pretty good it's like obviously a different character I think this one's good I think I'm just gonna leave it leave it like this because it's pretty it's not that intrusive so so I like that I like that aspect of it so I think we're gonna do that non breaking space what what is that even do it again to character show unbreakable space character oh right yeah this is when someone really like hacks you and puts in non-breaking spaces that can't be seen so normally I think what is that so you could do what control the a or lips control of the you - Oh sue F yes so this is a non-breaking space when you when you don't have this and you don't have this it's just nothing actually you know what this is a pretty hilarious one for for this don't you think enter Oh bang because you're like someone hacked you someone put in non-breaking spaces and your codes just to mess with you yeah the one you've got there Kady is pretty good as well well we'll help people here by doing this one because it's kind of a jerk move to put in non-breaking spaces and people's stuff oh let's do set conceal level equals two again because I don't want to see this okay I think those are pretty solid defaults obviously the whole point of this is that you can set any of these that you want to set okay so does this make sense we made we made these we made it so that you can easily set them and set them to different things and anytime you want you can just cycle through two different ones for hazards haha okay okay it's called crossbones two six two six twenty is that Unicode - six twenty haha okay you're right that's better that is actually that is hilarious okay we're using that one okay thank you thank you for that that is that is much better than I could have possibly imagined um in fact what we should do is let me take a screenshot of this so that we can just show oh whoops I don't want to take the whole that was what I wanted to do I want to just select an area to grab we'll just basically select this area here so that we can we can save this examples dot PNG I gotta save this and then I folder one second plugins cyclist make a new folder media open it they're safe ok and then we can put in how do you do this it's for for markdown it's this and then this and then media - laughs okay oh how run hey nice of you to join us Katie I'm going to fresh because I think the stream is out of sync with chat for me and I'm sending out of context messages that could be possible it could also be just that my thing is slow for some reason how run we are showing people how to make a simple simple vim plug-in right now because people were wondering how I got all of these cool like little little guys on my screen and they thought it was a plug-in but it's actually built in so we're just doing a few examples of how you can make this a little bit easier basically nothing nothing too crazy going on Stupak says when he's on mobile he has lag on video but not chat hmm that can definitely happen so this is just like simple example right I think that's the right syntax markdown preview let me just pop this open to make sure yeah cool that works okay so they go bus let's charge equals cyclists on them okay I think this is pretty much actually like the whole plug-in that you would want to do oh we forgot that we forgot to do one and we got fruit we forgot to do one important thing which is we need to actually load this at the beginning when we first set up our file right so right now what we've got here we don't actually need any mappings we're not really going to cycle through stuff I don't think although it's possible if you that's a great that's a great point Katie okay all right fine let's let's write the cycling the first thing we're gonna do though in here is in plugin we're gonna call a cyclist dot update list Jarvis whoops okay all right I think so the thing that I wanted to originally do that I quite like for my my thing here is basically that you can that you can set a couple different settings if you want and move through your list jars which is what I've got okay so we can we can do that basically I think the way the plug-in is set up right now it is not actually it's not super great for this though but I think it's okay harren I didn't know that this is built-in until just now boom that's why we're streaming buddy that's why we're out here that's why we're working hard on streaming we're just doing the best we can with what we got so okay the cycling part I do want to be able to do so let's let's add it maybe what we need to do here is we make this into a list okay hear me out guys hear me out hear me out and then we can move all these guys in one spot like this and then maybe put this here okay so this is like your default setup okay and then what we can do jaw worth hey I recognize that name thanks for hopping in on the stream we are doing an example of how to make a simple vim plugin showing some examples of of how that works what we're up to what we're doing for all that kind of stuff okay so here's here's what I'm thinking now alright what you can do is we'll get to have different indexes that you can add lit and ops to okay what you can do now is you can do something like function cyclist add list char options okay Reese oh I really I really hate engineer or registry for what's worth when looking for Unicode characters I find it best to browse the Unicode by block a lot of the interesting weird glyphs spam 2002 to see hundred yeah that's a good idea I also sometimes use this website which is like you can just draw a character and find a bunch of them that are related to what you're drawing Riz Erica what is a vim plugin a vim plugin is whatever you want to do uh yeah I think it's shape catcher I don't really care necessarily which one it is I just used random once Rose Erica right now we are making a VIN plugin that does something pretty simple which is it just it allows you to change the list char options and maybe like a more user friendly away so I think what we can do here is we can do ad lists our option sets this will take in and options or what do we call it here and op ditch maybe something like this for custom you can add syntax on code light version trackers and much much more yeah it's code so you can write whatever you want which is my favorite part of them is that census exposes everything about itself in terms of having great documentation and ways to modify basically every aspect of it you can make it exactly how you want okay we did not get very far on my convict tonight you guys really distracted me with this but I think it's totally worth it I can can I get a let's see maybe residentsleeper if you thought that this was helpful even though we're not going through my config as much as I was hoping to insert list items still conflict their head learned a lot residentsleeper yo dose I'm not sure how to say your name I wrote my own color scheme you can check them out here I built a color scheme helper that I liked a lot and then I just basically lightly themed it using somewhat related groov box colors yeah Katie that's definitely true we're not gonna get through my whole config anyways but we're we're making our way through it this is this is part of my config though just to be clear the last hour and a half where we have been working on this was about let's see 556 it was 25 lines of my config so where it's not like we're not doing anything related to my convict this but actually what we're doing here is sort of necessary to understand a lot of stuff that I do in my convict ok so what we're gonna do here is we're gonna do I think it's a pen is what I want help a pen I don't know what to do pi pika program I'm not sure I'm not sure what you're wondering about help add is it an append yeah so add a pens it's not the best naming in the world at a pen this jar ops a ops things ok ooh you know it would be cool is if we did something like use defaults here ok so if I use defaults then what we're gonna do is populate any missing piece with the default value from the first content are using VIN language server to get them al completions yes I'm using the built-in language server protocol client that we have in the oven that ships with the latest master and I'm using whatever the vim l1 is any Lua plugins you recommend are you saying - right Lua or plugins written in Lua to write Lua built-in LSP is great and you can use either some neiko lua or allied LSP I use some Maiko at the moment because it seems pretty powerful you can use my mana Lua mini Lua pug plugin which helps with folds which is kind of fun otherwise I don't use a whole bunch of LSB or a whole bunch of extra Lua like config outside of what I use normally for neova like all my regular text editing plugins I think are quite useful tray Center for folds yeah I think Teresa door will be probably better than the plugin that I have unfortunately because I thought my plugin was pretty cool then dot o copy is there a copy where may come expression yeah maybe what we should do is is there a way to like merge two dictionaries I don't think there is so what we can do here is we can do let's to add equals deep copy of list char off zero okay and or sorry now I want to do op woops ops fix here then we can do for ya how do you do that for tt-they you should make a Lua tutorial yeah at some point I will it's on my list of things to do in topics I think I think I think I can just I'll just make sure one that's like literally just like how to use Lua in oh can I use extend but they're both I totally all right where is it where if they are dictionaries and all entries from expression - expression one if a key exists oh okay totally that's exactly what I want to do thank you yeah and we can put this here so then we can do call extend to add I don't want to actually modify the original dictionary right so this is Lister ops zero and what we want to do is keep the value of expression one you're totally right that I think about that you can use extend to merge dictionaries of ml I think gonna make a saint set a subtle set and a wacky set with this that is actually literally what I have Rainey oh and you also have so by the end of this I should be able to define like three dicks with my list chars and cycle through them right yes that is exactly what I'm suggesting we should be able to do and in fact occasionally it's helpful so like occasionally you run into a file that like you don't own and there's like a ton of weird like I don't know basically like a ton of really weird white space that you're not expecting and like most of the time you don't want to see spaces but then you want to be able to be like now I want to see all the spaces and then you want to be like I don't want to see the spaces and so then you can remove them right so that's basically like where where we're at with with that okay so now what we got to do though is we gotta say we we need to update a few of the things that we had before I'm gonna try and go a little bit faster with this because I want to actually get this somewhat in a place where we're making sense do you always use a font size this big or just restrain me just for screaming when I'm doing coding myself I usually have it like maybe around here or so but for streaming I like to make sure that it's really big so people can see it like even on mobile or stuff like that if that's where they're at yeah I think it's okay and it makes it much more clear where I'm looking on the screen as well for other people can't be worse look there's low ETJ down oh you guys are doing great your downs are doing great okay so now the problem is okay we need to basically say we need to add index to each of these okay let's see if we can make a macro for this right we're gonna go to the beginning line we're gonna go here we're gonna write index we're gonna do this we're gonna go here we're gonna go to here we're gonna go here and then do a index here like this you know down one line front here a index out cute okay let's see if that works oh baby oh baby oh baby oh baby oh baby oh baby oh baby oh Stupak you're killing me dude it is true that it has happened a nonzero amount of times where i'm here and i'm accidentally coding on the right side of the screen and and then nobody tells me nobody tells me and then suddenly I'm like oh you guys haven't seen literally anything I done okay I go back so that you can see this macros pretty cool macro right I wanted to make sure it worked before we did it so watch this echo I think if you knew at a like this okay here you can actually see exactly the characters I typed so we can go through it go to beginning of the line move to the next parenthesis after the parentheses type index comma space escape move down a line go to the beginning go to the first dot insert this text escape go down one line move to the beginning forward to the parentheses after the parentheses a index escape okay and then you can replay that with at a because that's the Mac that's the register that I dropped it in yeah so that's what happened that's what happened you can also do echo get read I think Hey well this work yeah and that will do it and in fact if you want to modify them you can call you can do like you can use set reg to modify it Stupak yes indeed you can also make it do it a bunch of times but I didn't make it move automatically to the next one which I probably could have done and then just applied it to the rest of the file but I didn't want to do that okay so this one I should go maybe up at the top because it makes more sense to go here umm ranked version hey thanks for thanks for stopping in we are wrapping up some an example ven plug in and we're modifying a bunch of stuff and yeah that's pretty much what we're up to what if you screw the sequence while recording the macro then I stop and start over or if I keep screwing it up then I just don't do a macro and I just do it manually ah this this guy right here in his is an example of tabs all cyclists update lists jars zero I think this is what we want to do and it's an example of what your other options can look like for lists are for lists jars basically so I just tried to keep a few things here so that we could remember what they look like and in fact maybe we should do trailing space like this just so you have some trailing space or just type it into the macro manually yes Tupac you can also type it into the macro and do some other stuff like that but I usually end up just trying to retry it okay so actually what we I don't think we want to do I don't think we want this to be named update list jars anymore I think this should be something like set list jars update books SunPass update list jars let's just do it set list jars to index or something like that right right that's probably what we want to say setlist jars to index let's do setlist chart to index index just sound so bad maybe we should just call it setlist chars Oh activate list charts nice activate list charts I like it I'll do that we got to go into our plugin as well really quick and do the same thing and what do I use for escape I use escape and I also sometimes use KJ or JK but I have escape mapped to a much closer key on my ergo docks easy so it is not a pinkie button anymore it's closer for me okay so now we do that we can activate lists jars and this one by default called zero do I use ZZ help ZZ right current file nope I just do : W because I like it who remapped the Jiki and uses an escape sequence to type a literal G okay I wasn't sure if someone if someone actually did that oh just literally the whole G key I see what you're saying no although I do have a few sort of non-standard keys on my keyboard for example I switched the letter Z and the control key so now control is where Z usually is for me which I like quite a lot because I type control a lot during the day and I try to Z very rarely but that shows a personal presence is caps your escape no it's a different key that I can reach with my pointer finger on the side of my ergo docks I have actually quite a few interesting model for modifier changes but we can talk about that on a different day we can talk about my area doc cz on a different day we can actually go through and maybe fix some stuff for that have you remap the key globally yeah like it literally is just my keyboard sense control yeah I don't really like the holding down for just control because I press control so much and so often and so fast that I would often accidentally just type Z and I didn't like that so I removed that for control I mean think about how many times during the day you hit the button control versus how many times you hit the letter Z like it's really easy to get used to because you still use your pinky and it's still in the same direction but I just switched with spots there but that's okay that's okay you can in control with your palm though I have caps equals control mmm yeah I don't ever use caps lock I don't even know how to do it on this keyboard I think I just removed it completely okay so what do we need to do here we need to oh one thing that we should do then here is return as Len of s list char opps so that you can do something like the way you would use this function would be like let new off and set or something like that or this could be like let crazy option set is cyclists add lists are options set like in here right and so then later you could do something like Paul cyclists activate list jars crazy option set you guys see what I'm saying right that's how you can get the right number oh how run air vac seems nice after map lots of stuff just because I hate typing control yeah is definitely different to just be able to hit control without having to reach really far on your fingers and in fact I have like control and shift mapped to holding down X so when I hit the X key and I hold it down an instead sense control shift which is really nice for some for some computers and they also have like J and F if I hold those down I add alt to those instead Dell the Gore hey thanks for the follow I really appreciate the the follows guys and people hanging out and joining the stream alright so you guys see what we're doing here this is this is basically just this is where we're at right now and then what we also need to do here as we new say let s current list char op equals zero okay and then when we activate this we're gonna do let s current list our op equals a index we should do that down here because it makes more sense when we ask for a set up this will let us do cycle to the next and cycle to the previous list that we've added okay so let's just let's add that right now so we can actually do this cyclist max list char next let's start yeah that's fine so what we're gonna do here is we're gonna do let let new index equals and how did I do this year I know that there's a mod thing right float to number yep so we got float to number F mod so we're gonna divide these guys return the remainder I totally so this is s current list char opt plus 1 right and then this will be Len of s list char let's char opps we need to make this on more than one line I can't see what's going on here oh yeah you need to increment that max equals current plus 1% length right oh I guess I can just say literally let us current list char off equals this right percent as c4 modulo yep yeah that's what I'm pretty sure a frog does okay it looks like I messed up something again let's save this I gotta quit out and then we'll try this again a slow cyclist I was messing around with some built in some built-in LSP stuff today and so I busted some awesome things here is this is this right so then do I just do all cyclists activate lift jars whoops ass current list drops right those are ergo Doc's have hot-swap switches so you change the switches out easily not that I know of I've ever tried to switch them out okay so we can do that what I'll do here is let's just we can we can make an example one year let's let's just say like crazy this chart I think you can you can room like key caps and switches easily I have removed the caps and it was pretty good hey thanks thanks for sticking around Nate no problem all if you want to check out the final result for this plugin when we're done you can just check it out here and so you can see where we ended up with everything hey additive 'ti thanks for the follow oops we'll just make these completely different space will just be like this this will be another - or something like that where where where'd that read me go oh yeah can someone paste me the Snowman again and then we'll put will put will put these guys in here oh these got to be like zero now since we change that okay we'll put that in hopes this is precedes and then this is extends and then snowman is so we'll change space to 20 you to some self agree okay one before Bob hey thanks for the follow okay so now we've got snowman we got a bunch of other stuff this one's pretty crazy right so then what we can do is we can just basically say let crazy index equals cyclists add this char option set crazy list chars and we don't want to use any of the defaults and then we can you know what would we add this a should adding should automatically set it or not now it shouldn't so then we can do Paul cyclists set / activates all right activates this jars and we can do crazy in-depth right oops oh we messed it up we messed it up wait when we return length oh that's gonna be too long we got a minus one man okay we're in business should line twenty nine be let to add rather than a op six or did I miss him here the adding to add to add oh oh you're totally right all right well let's get rid of the crazy one let's see if this works right so we can just do call cyclists next this char Oh but baboom yeah okay you're totally right I wanted to copy this call extend to add and then what we should do here is we should do to add right that's what you're that's what you're saying basically right here sweet hey it worked okay so now we can now we'll also add on previous list char and normally I'd write if I this were real life and not a VIN plug and I'm writing for fun I would probably do something where I like abstract out a bunch of this garbage here but that's okay now we can use cyclists oh I think I got a source this again now so now we can do call cyclists next list chart and this should keep cycling between these and then we can do pre-lit preen and it also works Hey yeah totally hey cryptic wick thanks for mentioning that by the way I think we're I think we're good right does this not does this not just work so let's see what else what else would we need to do oh right now what we can do is we can make some mappings for it ha oh hey what's up Dale oh good I'm glad you'll be able to wash the Bob so now we can make a cyclist next command here which is just going to be next bliss char oops next this jar and we can just get ghosts going here and we can do Creve and we can change this to free this jar right you guys dude I'm saying and we needed jokes yeah maybe we should add in a like a negative one like it just says it doesn't exist you have to specially request negative one and it puts in snowman's for everything I'm not actually going to define any default mappings for this because I don't think you want to but we should be able to do something like nmap plug cyclist next oh sorry um we can do something like leader cm helps and that leader CN I don't have anything for it so we can do that and then we could do our CP is cyclist free right so then we can do leader cm leader cm later CNN major CN meter CN wait why does it not do anything oh did I add this like a bunch of times oh I think I've added this guy several times so now there exists more than one let's try this again here CN later see you later see feet later CP yep all right we're all good we're all good I am NOT gonna use this crazy list chars but I will actually use this from some of the ones that I've already got so these guys are all examples so you guys see what basically like we just pretty much wrote a plug-in it's not it's not doing anything crazy right what is the whole point of it hey let's have a couple different list chars options let's reuse the built-in and awesome features of vim but just make it slightly easier to configure and set things up right so it's basically like saying hey I just want this but not with crummy strings smushed together but instead with a really nice setup where I can use like a dictionary and use the defaults if I want to so let's we actually don't need this anymore you don't need this we don't need this function anymore here and we don't need this I'm actually just going to change mine to just always be the I don't need this anymore I'm just gonna always cycle next when I'm doing this and now we've got a couple different options that we can do so instead of having crazy list chars we're just gonna take this guy here oh do you guys know how you can make optional parameters in them in a vim plugin for a function because I think actually what we want to do is be able to just put in this dictionary I can show you how to do that if you guys would prefer so this would just be limited backs so I think I want to be able to do that basically I don't want any of these we're gonna remove these so let's let's try this guy we're gonna put it here and let's make tab like this let's make end of line this one again woops non-breaking fish so this one is not actually that limited I think oh wow that's that's okay okay this precedes extends trail this is a this is a good one okay and we're not doing that for space we're just gonna okay cool so this is now gonna be in my convict right I want to add this this list char set here this option set oh okay here's here's a different question what if instead of just putting them in a list we basically had a dictionary of dictionaries and so you can do something like this like you passed in limited and that was the index that you wanted to put it in so you wouldn't have to do this equals you could just do this basically right and then when you want it if you wanted to explicitly like set it to this then you can do the idea that we had before which would be default so this one would basically change to like this and like this and you do something like default is this yeah that seems better right so when you want to add a new list our option set we instead now ask you for the let's just call it a name or something like that right just something something like that okay let's do this instead Katie I think this one's I think this is better because now what you can do is you can just do let s list char opps a opps whoops opps name equals two you don't even need to return anything at all all right and now I think we can just actually change all the places that we said index we can just call it a name I think that's fun so and the first one is just default like this like this and then this one should now just say it just activates the onload oh the only thing that's kind of annoying about that would be how do we cycle to the next one um help ease maybe does keys return like something the list is an arbitrary order Oh Kady we're in trouble now all right we can we can we can do this them it's not exactly the nicest thing ever but this this will work this will work so watch this all right here you go we got this right we've got this here we're gonna do this function we would have to store mapping then no no here we go here we go here we go we got this function cyclist oh we're just gonna call cyclist add mr. option set whoops I really need to figure out why that's doing that today for this this language server only maybe I need to update this language server defaults and then this this guy right here delete fill that or sent over here delete this and put this here oh but that's not the default what the heck would happen to my default oh no it is okay yeah yeah I saw I saw the yeah it is trying to insert the snippets but I don't know why I saw the this token and I was like oh no no and we lost it but no this is the right one so we're okay we're okay here shoot OSP I don't know why I keep getting this unexpected token stuff here I should be fine we'll see if that works and let's draw our option set oh right right right we got to change this to by default here so how do you do default arguments help default arguments that's not it I want to show you guys the actual way that you can do this in the help but I don't remember is they really don't have a section for it okay that's fine so what you can do basically is you put in this dot dot dot which you should like basically means there's more arguments coming yeah yeah I was hoping that there was a spot in the help with that named basically but I could I don't know where it is I guess is it literally just help dot dot dot oh it takes you there okay so that's where you go and then you can use this dot dot dot and then it puts them in a nice little list for you so then we can do basically like let use defaults equals get a I think you can just do one here and then the false as the thing if it doesn't have it we're going to do this I think that'll work this is great you could use this for changing the list shirts on different modes or even things like Goyo Oh rainy that's a great point that's a super great point yeah I didn't even consider that but you could totally do that a zero is the length we can just do echo use defaults the false if I pass in be true now oops KYNA present in dictionary is zero oh we've got something else going on oh that's cuz it right this is not zero anymore this is default but actually let's just delete this and delete that and then for the out there okay do we use zero anywhere else okay okay we don't want to actually echo this so now yeah yeah Stupak I think yeah this is a really good point we should put this in the readme as well basically like example uses so one thing would be like you could do something like you know our group change list jars or something like this and you could do like a command file type I think Goyo must implement its own own file type thing right and then what you can do is you could just be like call cyclist activate list jars GUI oh right you could just have one that's like just for Goyo oh okay maybe that's not a good example let's just say it's in like like file type C we'll just you know we can just do that see Miss chars something like that right and you could do something something simple so that's a cool idea that's a really cool idea basically like you can change it on like on auto command can change it on auto commands using saved configurations or something like that right something like that would be cool yeah yeah you can use like Goya after or something like that that's that's fine we don't need to actually do an example for that this will this will work just just fine the way that we're showing it here okay so Kady you're like okay how are we gonna possibly do the cycling through each one so now what we can do is like let s list char key border and it's just a list right so this is why you write functions when you do add list char options set here we can do let's see how do we want to do that we can do moon moon or a one two three hey thanks for the follow we are tidying up a vim plugin for fun because people got any sidetracked when I was supposed to be doing the other configuration but that's okay that's what that's what the stream is all about so is there like fine others index right does this tell you where something is in in in here yeah okay yeah sure it's a halt powerful I'm just I'm just the streamer doing the chants bidding you know yeah oh create a mapping I see yeah yeah you're exactly right yes a mapping of like where it is okay so we can check if index from what did we call that s list char G order a ops name greater than 0 or greater than or equal to 0 then what we're gonna do is we're going to overwrite that spot so s list charkie order index I don't really love that I have to write this twice but it's okay let Sharky order a ops name equals to add o equals a oh I don't have to do anything no no I don't have to do anything blady channeling his third stream he's a true streamer you guys I'm catching on fast I'm catching on fast it's never the streamers fault actually what I want to do here if this is less than zero that's the only time we're going to insert it right so now we can do call add s list jar P order a ops name and write that that makes sense right basically we're saying if we've never inserted this before insert it now and then we'll drop it in here so then we can current this chart up should be defaults at the start and then we set that to the option name okay yep yep yep yep yep yep okay so now we can do this oh this is getting a little little trickier so let's let's just call this list option index something like this dictionary person will also prevent duplicates which is nicer yeah that was actually another reason I switched word I was like wow it's really annoying that when I sourced my vim RC twice and I have two of these sitting in there that's definitely like not not what we're looking not what we're looking to do okay so now one thing we can do I think you can actually we can do a cert write help a cert a cert true there we go Paul a cert true index of s current or key list what did we call it oh yeah let Sharky order list for our key order ask current list char op greater or equal to than zero right basically we want to say hey here Oh zero must-have lists our key order I must have index in this car GT or something like that right let's just make sure that we're not doing anything real crazy and now we didn't forget anything so now what we can do is we can do index okay we're actually going to need this exact thing again I'm gonna take this and I'm gonna say on lat current option index equals this Oh like this and then we can say current option index your greater than equal to zero sizzling steak hey thanks for the follow now we can do this here leeward current option index plus one right so we're basically saying I move along here and this should be lem list our key order and so now we can do we can do ask list jar key order option index but maybe we should call this one new option index just so that it's obvious the difference between current and new does that make sense pretty sure that makes sense makes sense okay now that this logic is complicated it's kind of funny we're gonna have to do the thing that I said before and still move this chart and then let's do change and then this is going to be plus a okay so now next list chart is just going to be call s what did we just call this cyclist new blisterin cyclists new lists are one and then this one is going to be call as cyclists move lift jar - one okay so that just makes it so that I don't have to duplicate all this logic again oh it totally is working they're only somewhat yes it's working okay let's assert true should check for upper bound then as well it's going to be fine because we asked mod it later so I actually am fine with it just being greater than 0 we're greater equal to zero as well at moderate right here but otherwise yes if we weren't gonna do mod then yeah we would need to do that okay so okay so that's really cool we've got this going we've got our mappings work working okay now let's just let's just add one or two more options here right did I wear it in my crazy one go okay yeah let's uh I'm just gonna yank it's on here and then we're gonna apply all the stuff that we did before this is just so that we can make sure that we're doing lots of crazy stuff right it doesn't look like it's working right oops we'll see I think I think we got some wrong magic here's just some PC hey thanks for the follow we are working on a fin plugin to help you make cool stuff show up all over the place oh maybe it is actually working oh it is okay all right we're good yeah you were right that was literally I was literally just only looking at the spaces okay cool I think the plug-in is totally working I obviously don't want crazy but that was just so we could see what it looks like I think we'll just do one that's called busy instead of limited and we'll add a few things in here so like space will be this character not a snowman unfortunately I know that would be pretty cool but we are not going to do that I like I like this guy here to be like this trail do I have a cooler trail option I think it I think it's pretty fine I do think this is pretty funny so I'll keep this here I rarely have no rap set so it doesn't really matter that much okay so now I can do this yep okay cool that's fine because I need to do this and then do this whoops yep recycling recycling guys recycling okay and then this is back to the default which I really like umm I think that's it are there any other features we need to add for this yeah that is really nice that is really nice hold up I was making dinner the function you created is meant to cycle through the available sets by a variable amount if so I'd argue and negative values of program moving backwards because you're in the loopy world a module math can you do pseudocode if change less than zero change equals Len Escalus charkie order - abs isn't that basically exactly the same thing as as doing hot or no oh yeah what's up Lane OPI still got well we just are finishing up this plugin so well I'll probably I'll probably wrap up soon ish because it is midnight my time but I want to make sure we finish this plugin all the way through just so that we can feel like yeah we did it and it was it was exciting so I really hate registering though I think I think we got it I think I think I think it's working and I am doing that with the mod okay sweet so we put in a default here we have our simple readme which you guys should basically just send me examples of how you're using it and what you're doing to set stuff up so that we can add it maybe next time we can write I can show you how to write like vim Docs just so that you can show because like what would be cool is you should be able to do like help cyclists and like see some help stuff for it right but you can't currently ruffles hair I think I got it oh oh no no no famous last words to get a seems good I thought you said ten minutes Lando P I didn't notice that he said that the simplest version would have been ten minutes but we did a lot more work and I showed you a lot of different features of vim script I think so I think it is it's it's worth that it's worth doing example spaces so you can check out of your distress and we'll just I just back away away okay um read below that oh yeah you sound just like my wife uh so okay he doe kiri do I need a language client if I'm using coke you'll need to install the clients that you want to use which I think you can do with like coke install tkm pie pie hey thanks for the follow unfortunately I'm just about I'm I'm gonna sign off soonish but we just finished a fun stream making a ving plug-in showed a bunch of features of how you'd use it how you iterate on it and how you get yourself to a really nice and configurable outcome hey Lando P I got a funny story that I my wife and I always laugh about this one Saturday morning we need to go shopping for her for jeans and like I've never gone shopping with her for jeans before we've gone shopping for like tons of other stuff together but not jeans she doesn't really buy clothes that often like for me when I go shopping for like jeans or whatever it just takes like five minutes you just look for the size that is your size and you just put them on and they work and then you like leave but so as we're as really getting out of bed and we're we're getting ready to go she says to me we got to go shopping today but I don't want it to take all day that was like the literal quote from her I don't want it to take all day which was funny because it was like well of the two of us who is gonna be the one that makes it take all day like you know you're talking to the wrong guy you need to be looking in the mirror so you know we leave at like 9:00 a.m. we got all these other airs of errands and shopping to do I appreciate didn't get back to like 10:00 or 11:00 p.m. like I almost had a meltdown I like I feel like I'm a pretty patient person but like I just about had a meltdown in the store where I was like just buzzed so yeah yeah yeah yeah it's actually the taking crazy pills meme is really good for that because it's basically like you know how he's basically complaining that all his moves look the same that's how I felt about the jeans it was basically like all the jeans look the same and am I taking crazy pills oh if you don't buy anything from the trip that is real tough that is real tough fortunately my life is really good at basically like we make a decision and move on like we sort of like she's really good at doing that and then so we pretty much always make make that make the buy of some kind and move on unless it's like really bad options yeah if people don't understand why kids start crying at the mall when they're with their mom and I understand now you know now I definitely understand and is my wife watching probably not I think she's in bed asleep it's past her bedtime at the moment but she loves that story she thinks it's hilarious every time we go shopping now I like well not every time but so many times before we leave I'm just like you know I really don't want this to take all day and we both just start cracking up so yeah so that's where that's where we're at that's where we're happening okay since nobody said they want to see any new options here yeah we we're all we're all set to go I think the only the only other thing would be I think we should just do set list here just make sure this is set in case people don't do it themselves cuz there's really no reason to activate the list jars if you're not gonna set the list man I remember the time we were in USA on holiday she was in the shop for two hours i sat there and read my kindle and at the end she was going to walk out without buying anything I was like no freakin way you're leaving this place without buying anything I felt more sorry for the person serving her oh yeah that is tough when that happens lead future features Hervey 2.0 ship it and sleep you've got a strong point there okay let's let's close out of all of it let's open em them again let's open up this just to make sure and let's try my cycling through oh we're good baby we're good okay so just as a recap if you weren't here autoload this is where you put stuff with the name of the file prefix and then pound and then the function name that you want plug get sourced automatically at startup right so if we look at what we can do that so you guys can get cool highlighting right this is like hey we're gonna define a few things and we're gonna set up our default and that's it yep yep yep all right so we're gonna add all this we're gonna commit this bad boy finish from stream at you know which dot TV slash teach DB I'll self promote in my self-promotion get Tom thing get push okay so now you should be able to have this and install this right here and you should be able to basically use exactly the stuff that we have here we should probably add a few more docs later for for how to configure like now that we have a way to configure with a whole table we should probably do that we should show that and we should show how to cycle through them because that's pretty cool as well but we can save that for another time I might just do that quick off stream because it's not that exciting it's just writing some Doc's or if one of you guys wants to try feel free to do it and send me a pull request here I'll gladly merge in pull requests on this to make that happen which you can see it now if we're here right here we got the plugin pretty cool stuff okay well i'm i am sorry we did not get crazy far in my config although we can of course add this stuff here get connect mm and we can do add Oh rainy you're definitely right make me an issue on there to add fancy gift so that I remember to do it later add cyclists got them no give no install it's a good point I can't actually I can make one pretty easily but it's hard to do on stream and show it and have it work I think that's okay well do it we'll do it another time seriously they'll make me an issue on there so that I add a gift later and people feel free to add pull requests for docs or other features that you want to do yeah we can we can do a couple minutes of like ask me some questions about stuff if you saw something in the during the stream that you didn't understand or didn't know about I'd be happy to happy to talk about it anyone have any questions for asana how did you become an vim core dev by writing a lot of PRS to neo them being involved in the community like on gator and stuff like that and writing a lot of tests the people underestimate just how nice it is to have a pull request to write tests that are usually longer than the amount of code that they write for the actual PR so do I work from home yeah I do work from home I work remote full-time I live in Michigan the company that I work for is based in Grand Rapids oh sorry not Grand Rapids that's where I live they're based out of San Francisco when you stream in the future do you want to slash plan to go on tain't tangents or stick to a predefined agenda I will probably plan on a few things that I want to get done and if I if we see something exciting will go on the tangent almost always unless I have a PR or something that like I really want to finish for a core then then we'll do that instead basically but if it's just like yeah a tangents are better I think Tanner's are better for life and I think it's more exciting more exciting to do so I will I will try and do tangents wherever possible but occasionally I think you know I don't have unlimited time like LAN LP is mentioning and so it's like I don't want to like not get any of my neo of them stuff done so it just depends Lando P you're wondering I don't have kids currently my wife is pregnant with our first kid or due in October which is really exciting so we'll see how much I'm able to work once we actually have kids my work is pretty supportive of me doing like some streaming I actually talked to my boss and he's like this is cool idea and it like will help you become better at a lot of stuff and I will probably stream some open source work that I do for like my actual day job as well at some point but right now I'm just sticking to some niobium stuff because I am doing like regular work stuff during the day yeah so so there's that and some some other stuff some other stuff like that I don't know for me like I think doing like planning around my schedule since I don't have to commute I save a lot of time like not having to commute and I love programming so like makes me happy to do so it like energizes me to do coding and I've been having lots of fun streaming so far eval parse yeah I'm I love staying up late so I'm not super worried about the about sleeping it's just that I should not make a habit of going too late this is good I like you know you guys are like why I'm streaming so it's cool to just take a few minutes to answer some questions at the end and wind down a little bit before I go to bed yeah I don't know my wife always calls it code brain when I come upstairs after coding for a while so I can't relate to anyone emotionally I just have I like still have a bunch of code bouncing around in my head I'm thinking about what what I was doing and what I'm gonna do next and and things like that so yeah I do become a bit of a bot indeed so it's yeah and it definitely is like you're saying land up like you know oh I got it I'm thinking about what I'm gonna do next I'm bouncing around idea like I choose the right like architectural decision for this or things like that so she just laughs at me she knew what she was getting herself into so it's it's all good but so it's good for me to sit and chat for a little bit and unwind a bit before I go to sleep because otherwise I'll just lay in bed and be thinking about code anyways so be one with the code indeed yeah there is definitely something about like loading all the code in your head and being able to like picture as much of it as you can you'll be doing you'll you'll have more fun and be able to do like exciting stuff eval parse I have a blessed life yes I feel that every day I'm very thankful for what I've been blessed with in this life I mean I think like I work hard for a lot of stuff but I know that like a lot of stuff I think it's like a blessing from God but that's a topic for another day as well how old am i oh yeah good oh so good that she takes it nicely yet we're so we were highschool sweethearts so basically we've known each other for a long time since since we were kids so so we're we're good we're good friends she's my best friend for sure how old am i I'm 25 no 26 sorry I forgot what year it is 26 yeah rainy I just saw your issue I like it a lot thanks for making an issue to remind me and a funny issue to remind me to do it as well I appreciate it yeah I feel pretty young still so nice nice that's a good joke that's a good joke registering that's funny yeah it's all different paths to the same end goal of like we I don't know what day it is I don't know the month any of that stuff that's that's I don't I don't put that stuff in my brain I guess Percy Jackson how did you get started with neo boom buddy of mine introduced it to me during my first internship during college he was experimenting with them we stumbled upon neo them I think it was like basically when it started happening and and that yeah I just was interested in I thought it was cool I thought they were doing cool stuff and it like fit in a lot with my idea of like the things that I like about code and how like if you can code and solve little problems for you it makes you happier so that's that's basically how I got started my first PR into neo of em core was like four years ago or four and a half years ago something like that so it's been I've been involved in the community generally for quite a while I also was one of the first people to start pushing for language server support in the open so that was one of my sort of like claims to fame in the core community working from home just becomes one long freaking day yeah if you're not really careful about separating basically your spaces and what you're doing and all that other kind of stuff I definitely can become one long freaking day you have to be pretty disciplined I think in like setting them up and if your work is not good about basically like letting that happen and letting you find the way that like makes it happen it's really hard my work is super supportive me finding like the way that works best for me and like exploring new stuff which is like part of the reason that I'm able to stream for sure and yeah I think the LSP sport is killer feature for neo vim and I think as we make it better and better it really excites me to be a part of the team and to be where keen on it and to make it the most my dream is for it to be the most configurable language server client anywhere like you know you should be able to do anything you want to do in language server you shouldn't be limited by like what vs code or like whatever thinks you should be able to do by it so I'm hoping to make that happen and make it feel just like any other vim feature like so we just basically did a ton of stuff on like only about list chars tonight right like I want you guys to think about what we just did right like we started with a simple list chars plug-in right and all this chars is is a list of strings that tells you like what you want things to do but we added a little layer on top of it and now you can do so many more things easily that's what I want for LSP for like people to be able to do like okay we provide a bunch of really great defaults that make it super easy to use like for a basic user but if you want to put everything like into fzf okay you should be able to put everything into FCF and you should be able to sort it by there to jump to the definition and not use quick-fix list that should be like easy to do and so we're working on making that happen neo converse space max my take i like neo vim because i work on it and I've never used space max so I don't think I'm the right person to ask for an opinion on that but obviously I love neo them and I spend a lot of my time on it just for fun yeah coke is impossible I've heard that from some people other people think it's really easy I think you know it just depends on your history and your experience I think coke is doing really cool work and they're they're carving out their own space that's like sort of different than built in LSP and that's totally fine I like that there's people doing different stuff for different people with different goals that's one of my favorite things about the vim community is like it's a extensible enough to make it work great for anybody doing whatever they want any other questions guys all stick around for maybe like a few more minutes I can answer a few more and I'll go to bed oh I'll be streaming again next Tuesday 8 o'clock again Eastern Time if I like here's a question for some of you guys who have been here basically the whole time if I just like start streaming something but I don't interact with chat like just out of random time during the week are you guys interested in that at all like sometimes I'm working on something and I don't mind showing what I'm doing but I want to get stuff done much quicker than like what it takes me to do on stream like I probably could have written the plug-in that we just did in like 30 minutes or something like that instead of three hours Llano pee yes okay maybe I will put something in like the go live notification and just say like yeah basically say right okay cool yeah that so I will have like times during the week like I'm saying Tuesdays and Thursdays I'm gonna try and stream on those times regularly from 8:00 until midnight hey it could be bunnies thanks for the follow I'm going to stream during those times too and like be really interactive and go on tangents and do other stuff like that but I'm also like totally down to just stream other random times like if I'm working on the oven or like other open source code that I can stream yeah so I could just like turn on some some music or something in the background and basically like turn off my mic or I can leave my mic on I don't really talk to myself that much when I'm writing code and I'll just put it in my title that it's like work focused streaming or something like that I'll like check in with the chat every five minutes or something so maybe maybe we can do something like that I will consider it I probably won't do it this week because for right now I'm trying to make sure that I'm just doing like really interactive point you might get the keyboard for him noise I'm right now I'm trying to do really interactive streams because I don't want people to get the wrong idea about my live stream that it's just like some dude working on his code and not talking to anyone but maybe in maybe in a few weeks or something I might start doing a few more of those like chill streams where I'm working on stuff we're working on some work stuff or whatever and you guys can see it gurbles do you have Alice be working with built-in Lua using neo games Luigi yep does it autocomplete neo them api's I miss LSB help when working with Luo code for neo MEMS LSP not exactly but if I have written like most time I'm working in pretty big files and they already have most of the like API there so I just use that or I just know most of the API now because I've used them so many times yeah yeah rainy right now I have it I have it on my schedule for when I'll be doing stuff but you're right maybe I'll just try and schedule well the thing about the chill streams is like sometimes I'm gonna work on the oven for like an hour not 9 not only for hours but just like an hour and I want to get something done like fast so I those would just be like sporadic streams and so I might I might basically I might do those at some point in the future but I will probably wait for a little bit just because I don't want people to get confused about like what we're doing on the stream I want them to feel like it's a really high value experience for them to come and get to chat and walk out I don't think I've ever talked this much in one week though holy cow does it not yeah it should have Tuesdays and Thursdays right oh can you not see like what next week is how can you see like future times I put I have it in my schedule that it should be eight till midnight Eastern Time Tuesday and Thursdays but I can play around with that more to make sure that it actually works it's not a great page still kind of new feature yeah that's what I thought when I when I used to I was like I've never seen this before and I've been around on Twitch for a while like watching people never seen it yeah girl and I've got no idea how you're supposed to say that there's not enough vowels in that name but I'm glad you enjoyed the stream and I'm glad do you feel like you learned some new stuff and got some new knowledge well maybe do more convict stuff next time I don't know for sure because I don't know if people want to see that overseeing mm Oh Gabriel Sanchez maybe something like that gerbil snacks I don't know if people want to see config versus neo of em core dev maybe we'll split the stream next time in will time box both and I'll try and just get through more of my config all at once but I I thought it was uh and I think you guys had fun like you said making a plugin which was like a good experience and there will be probably a few more things that we can do like that where if you like some aspect of my config we can just make a plugin out of it really quick so you guys can use it and customize it that's totally cool with me Antonio sintra hey thanks for the follow I'm just about to sign off tonight we're just doing a little bit of sort of AMA style thing yeah that's that's what we're doing right now just hanging out I'd like to see LSP work so core dev well I mean it is working right like I'm using it but there are a few things that we probably that I do need to fix up that would be that would be good to do so okay yeah I will also do some core dev off stream just because I have to but hmm I like the plug-in but I do think I like it more the way you had it before yeah I mean we will always just write like a basic plug-in obviously but that was basically like yeah that was basically just because I wanted to introduce you guys to like autoload and plug-in a couple of the different like vim things because when I show you my config I use plug-in and autoload and I use them in the ways that we described in the plug-in so I would have spent like an hour anyways showing that stuff okay two more minutes for questions and then I'm going to go to sleepy time cool I'm glad that I'm glad that you liked it I had fun doing it and I actually think like it's a legit plugin right I think people would like to use this even if just so that you don't have to do ugly concatenating a bunch of strings all right cool well I think I think I will be here next Tuesday I think basically for sure since I'm gonna try and do that not sure that I'm going to stream between now and then because I've got like other life stuff you guys know that if you like the stream please follow please retweet the stream please tell your friends you can send me donations by clicking the button whatever you guys want to do but also always just feel free to come hang out I won't do like followers only chat or like sub only chat or any of that dumb stuff you guys can come hang out here you don't owe me anything we're just all hanging out together make an opensource out in the open so that's basically that's basically where we're at and I hope you guys had fun but yeah you can check out my github and I'll keep posting my schedule here so that's pretty much it hey thanks for singing around Michael doe I hope you had fun you probably already knew all this stuff Michael's a pro vim guy he knows so much good stuff hey thanks thanks sons Oh Jay I hope I hope you see on Tuesday - that'll be great very exciting for me to have people like basically saying they wanna tune in on a different day so it makes me feel real good that you guys are learning and having fun and it is a really good experience for me and really good for me to practice articulating what we're doing in the code and how we're doing it and all that kind of good stuff oh if you guys have good ideas for names of the group of people who follow this like you know like I don't know like vowel ORS and you know it's like give them followers that's a terrible one though obviously so it's like not that if you think of something make an issue like on my config page or something like that or whisper me on twitch or do something like that or if you have a good idea for like theme songs or something funny just send me those because I am interested in up in my production value a little bit for some of those other things teach and boomers uh yeah I'll try and think of something as well but yeah if you guys think of something funny let me know anyways that is it for me I hope you guys have a great night and a great week I will see you guys on Tuesday
Info
Channel: TJ DeVries
Views: 7,809
Rating: 5 out of 5
Keywords: twitch, programming, vim, neovim, plugin, vimscript
Id: apyV4v7x33o
Channel Id: undefined
Length: 178min 56sec (10736 seconds)
Published: Fri Jun 26 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.