Pages

Tuesday, October 11, 2016

Ben Orenstein - Write code faster: expert-level vim (Railsberry 2012)

concurrency yeah awesomeI think we've been sitting for a little bit too light we close the laptop for asecond then everybody stand upalways back to start with a little group calisthenics kill stretch up stretchthis wayoh let's go this way oh let's go down mr. fingers you know whylet's just talk about talking about Finn maybe been fans in the audience dannymac's Tanzania's I'm glad we have you met expands but this talking about themso is one of you guys know before we get started the point of this talk is notfor me to just talk and get through to the end . to talk is for you to learnsomething i hope that everyone here can learn something even the emacs users soplease get around me i love questionswe're gonna have a Q&A p.m. but don't hesitate go ahead and throw thosequestions as soon as i confuse you soon as i said that doesn't make sense whichwill probably happen very quickly around me just gonna go in so I don't do aquick survey also experience level so this talk is expert level of in manypeople would qualify themselves an expert in right nowexcellent okay how about intermediate alright how about beginner ok cool soit's a funny thing about conference talks right is you get a title it tellsyou who the audience is whatever a bunch of people show up anyway so don't planfor this so I'm actually started with some a couple beginner tips so this isalso going to be about intermediate level vm topics how to go from sort ofan intermediate medium medium level user to a more powerful faster vintage but Idon't start with a couple basic beginner tips the first of which is don't bescaredso there's this learning curve associated with him that people getreally frightenedI've been teaching them for a long time talking about for a lottime and people sometimes month we have to talk and say that talk was reallycool a solid could do it seems awesome but I don't have like three months to goto learn an editor like these people I understand this comes from its rim is abit hard to learn it's not simple but it's no harder than a programminglanguage visit a programming language for editing text so if you learn Rubyyou can learn fit you absolutely have it in you so don't be scared don't beintimidated a second device as if you're brand-new in user brand-new person themTudor is your friend if you go to your shell you typed VI AMTOR no space andfilm will launch a special mode with a help file loaded for you that's gonnawalk you through the absolute basics of themit's very straightforward only take you a half an hour and a half an hour you'llhave everything you need to do to get work done you can open files you canedit files you can make the edits you need to do you won't be fast but justlike a normal programming language you can pick up the syntax the basic ideasin about half an hour by the end of your first day you're getting some stuff doneyou're making your complicate thingsyou're pretty proficient within a week and as the next part that takes a longtime rightit takes years really to master things i've been using them for almost a decadenow I still learning stuff about all the time it's just a massive editor but youcan get going and a half an hour so don't be afraidstart with computer um it helps to have a friend that can help you out becauseyou can have a ton of questions in the beginning if you don't have a friendthat you can ask questions to reach out to me on twitter i love helping peoplelearn this stuff so let's buy the intermediate people which is sort of thebulk of ppl makes sense were sort of the middle of the ganache and curve right sowhat holds people at low intermediate levelwell most people learn the basics of him and they get a little bit stuck and Ithink there are a few common trends i see these people that are just on thatfast with them they're capable but not quickthe first is that they are not obnoxiously intolerance of typing thisis how to describe myself I hate typing I will never use to keystrokes when Ican do 1 i'm obsessed with this and you need to be obsessive tattoo that's themost important part of mastering them getting really fast it is hating typingyou have to have this mentality all the time every time you do something this istaking way too longI hate doing this you gotta be thinking about this all the time and the mostimportant things to be aware of thatthings that you do frequently so how many people have ever saved the file andfit you think you do this about a hundred times a day probably rightyou save if you save a whole handful of times an hour over an hour a dayprobably a hundred times a hundred times a day five days a week 15 ish weeks ayear depending on what your vacation policy is over a ten-year block that's250,000 times you're going to go ahead and save a file now the way that yousaved in a file in by default you could escape from insert mode you could shiftcolon w center-right 5p strips that's 1.25 million keystrokes just for savingover a decade now to programming for about a decade someone there to help theprogram for many decades now the way I save amazon have maps something I lookat this after like not too long to set this way to make these trucks don't havetime for thisand so I use ctrl s and that map to do the exact same thing as most teachers itold him i have two key strokes so over a one-year period i save our ten-yearperiod i save 750,000 key strips this is actually kind of a big deal if theselittle things that actually matter so it's it matters for Speed that's onething and actually really adds up over the course of days and weeks years butalso matters for your health if you've ever known anybody had RSI issues if youhad yourself if your wrist have hurt your fingers have hurt that can end yourcareer that's a career-ender for programmers and a lot of things likethat so 750,000 keystrokes is kind of a big deal i want to be doing this for along time I assume you do so pay attention this is worth paying attentiontoso another thing we want to be intolerant of doing things frequentlythat take a long time so another good way of doing this i buy the lot ofleaders let's take a look at my my mercy real quickhere's my summer sea entre into my leader so leader commands are basic waysof finding short mappings longer commands so here have over here likeline 41 I mapping leader a equals to this longer collant advertised for /people's time it's just like some things it doesn't matter that you can see ihave about 60 or 70 leader commands this is actually a huge huge part of why i'mso fast and vim so think about something you do all the time were a lot morerails developers here rightyou open your schema all the time cool shift colon e pv / schema RB maybeslightly faster might have a leader command for that leader set1 openingfactories are be if you use factory girl to help you do the rap for me anythingi'm doing that takes to make you strokes that I'm doing all the time i'll put aleader and have a very low tolerance for typing things very many times leader tline 84 it's one of my favorite mappings actually runs a little function i wrotean inscription to cover a little bit of that in a bit but these are things thatmake massive improvements in my speed as a developer little workout for ouroperations that are infrequent but really slow really expect users in thehousecool me too so something you find yourself doing pretty frequently thanr-spec user is taking something you've assigned to variable to and pulling ontoa lab right on the fan of let's generally so you'll take its it's just apretty quickmechanical operation takes about 15-20 strips but i do a handful of times a dayhow do another one extract method for example you've got something in a methodyou want to pull out this logic you want associated with it go back here and callit a very simple refactoring I definitely do this doesn't have todaydefinitely do I imagine you too but there's a camper right you can write amacro environment will do this for you every time you run that macro you savedthose keystrokes you save your hands you say the time and your programming just alittle bit faster than the next guythe thing is it's not about it doesn't make you faster programmer writes I'mgonna make you think faster but shorten the distance between thought and coldlooking like you want it to it takes that tighter and smaller and that letsyou go faster overall increase your overall throughput so pay attention tothose things two things you do infrequently but take a long timewhat I think I do a lot of Islam make a lot of type of us imagined you guys doas well so there's a visit you quit by saying colon lowercase Q and because myfingers on shift for the colon I was frequently hitting capital Q and thencomplain site that's not a command so i did that about two or three hundredtimes that I said this is ridiculous and then I mapped it i just made Polandcapital Q to the same thing as lowercase Q i do this in my Shelia's all the timeas well as a get push I to get pizza all times and so I just found that like youknow whatrather than trying to retrain my fingers which has been really hard wasn'tworking understand except my type of move on i have an intolerance of type oftyping and intolerance of fixing mistakes that I've made all the timehere's another great way to break out of this is low intermediate level is tohave a cheat sheet so it is hugethe only way to learn it as a tiny bit at a time and you have to make thatlittle bit muscle memory and then you learn a little bit more little bit moreand the only way to do this effectively i found is with a cheat sheet so I'malways trying to learn seven plus or minus two commands on a little chuteabout this big on my desk and so I write down what I'm trying to work on and whatI try to remember to use them and then I look at them when I want them and theprocess is hopefully I'm going against my brain it's useful but after a whilenot use this command gon kill itdon't need it once you've got your brain also get rid of it was something new onthere and you slowly slowly slowly packing these little bits of knowledgeinto your head when you turn it into muscle memory which is how you getreally fastanother great sign another great way to become a better humor is with a greatMRC there are some people that are very proud of empty mercies like I'mcompletely stock i don't use any plugins and that's fine and there's some systemindustries that have this constraint they need to do that because they'reusing all kinds of machines too annoying to bring the mercy and blah blah blahbut for programs particularly working out one or two machines all the time soyou should be slowly growing your MRC just like you're slowly growingmuscle memory should go roughly linearly with your skill have a friend's name ismy brother Mike is an awesome programmer is really fast is really efficient andhe says that one of the secrecy has an amazing view mercy and this guy so it'sabout this but he won't release ithe won't show it to people occasionally like put a little spit-up somewhere thatsomeone see what he's got and I'm like Michael what are you doing like everyoneelse put your season like Republic proposing that is it well my secretsauce and I kind of get that having a really awesome finally to never seemakes a huge differenceyou're gonna be so much faster because of it final thing is that these sort ofhigh-level ideas are holding intermediate people back is that theydon't know how to read the manual you are to them it's pretty basic common his your friend and a great thing about the vin help as soon as you get there ittells you how to start navigating the helpso these bottom lines here are how to search for specific commands ofdifferent types of normal mode command visual commands and if you scroll downthere is an awesome section it's worth reading so getting started if you're newthis is really good and then once you're a little bit here these a little fartheralong for intermediates editing effectively is great it's worth readingjust about every one of these except for exploiting the GUI because you shouldn'tuse buoys no menus no mouse use the mouse stay away from that againalright so does the high-level things to talk about some sort of lower-level morespecific things that hold people backwhat is using the arrow keys so it has this amazing design decision which isthat moving a cursor up one character down one character left or right onecharacter is HD kale around the whole room is beautiful wonderful keep yourhands right here on the keyboardno need to go over here for you guys over here for the arrow keysthis is awesome design decision most people will use hkl but i find itsomewhere around 20 ish percent of people have a secret shame their secretchambers they use arrow keys as do some people look a little guilty right nowthis guy's not so stay away from guarantees all you do is just never doit againthat's it starting right now starting immediately never ever do it againlearn a kale it's easy it's fast it's awesomeI understand why people get there because they loaded the help the firsttime to like what use this from the curse around a freak out over the curserefuse i understand it still never do it trust me when you send an email in threedays because you're used to it now you love it I will accept your thanks withmagnanimity negative infinityok so other common there's an anti-pattern for people that get stuckenergy level of them they're slow to move between files to spend a lot oftime typing things like colon e @ PP / model / user dot RB if they're a littlebit faster they used to have complete but i think both these ways actually notvery good for navigating between files have been i have two favorite things iuse one is command T if you've used textmate it's a very simple thing as afuzzy finder matcher so I want to go to use respect i just type us SP forexample i was creating individual letters in the filename and it doesn'tfuzzy match on that and we'll sort it and let you open it very quicklyactually pick the only downside of command T is very finicky it's writtenin Ruby C&M script so you would be finicky to it's actually broken lastnight i was trying to compile them by hand with some cool stuff in there and imanaged to break this i'm not going to die before you but take a look for ittake a look at its community is awesome the thing is rails . fin whales that isgreat i'll show you a quick so here we are in the user model so relevantbasically a bunch of income and unless you effectively navigate between filesit because we spent a lot of time doing this program is going between files so ihave here in this user model and I DVD so I typically will have a verticalsplit open with users back on one side so rails and gives you a number ofcommands to start with our tab there's a number of them and these are basicallyfor jumping around so let's say I want to go to the unit tests especially withthat user model now they use respect to go back to user selects so i can jumpfrom model to unit test for example this mission for everything you do from modeltoit is lying in the schema where that table is created you can go from acontroller action to the view that associate the controller action andrelatives pretty smart and knows how to guess what the file names are but let'sdo awesome stuff like split so i can vertically split the test for this usermodel on the left you can see because the fountains are truncated but the leftas you respect on the right is the user model and so naturally because I use itall the time I have this band leader demand because I wouldn't type colon RVthe test all the time that's for me it's the leader vu simple stuff but worthknowingso it's you want to get quick and moving in between files don't waste timethey're also what's your within a filedon't waste time moving around with it so here's another answer pattern holdingj holding k holding out these are all humanity patterns so let's say I'm uphere and I want to go change online twenty just go ahead and say it hasattached file it's easier to seelet's say I want to change has attached head instead so i want to add only 14I'm not gonna hold down a couple options the first one I would use my type14g capital g will jump me to line 14 you can see I have line numbers on theright by the way i recommend that it's a set number of big fan of that I'manother option for getting down is just a search so i would probably if i wantto change files ahead and search for file and I got lucky and got right thereand you change where it had their side moving around quickly within this fileone other option you can have some people like if you have the latest in isrelative numbersome people that father like really excited about this so what's the numbersas i move this cursor so the numbers are relative of course where your cursor isthis is kind of cool because i can say okay I want to delete this wholeaddressable line because it's looking that's weirdso let's duplicate that so i can say i know that 012 that's three differentlines is a 3d and it's gone it's easy to see how far text distances you can justsay delete you know 11 different thing planned on Ellen lines simply because idon't like this is preparing it's like okay she's I think what they online nineno.5 now well at zero that you gotta kind of annoying so I I para decentamount so i don't like relative number i'm famished straight up old-schoolnumber another any pattern not going your emotions so in you have commandswhich are verbs and that emotions with your nose and so you tell him delete aword you say DW and deleted your verb and w is your nasty word and word isemotion or text object them understands what text objects and what emotions areso you should know these motions here is a quick way to see it cursesir no sir motions in the help again rtfm it's worth itthese are all the motions but you know dive in there and learn all the ones youput a couple little ones on your cheat sheet right keep it manageablehere's a good example of just a couple quick motions that you should definitelyknow let's go to hear so I want to leave change this word I would say CW w is atext object it's a it's it tells him like this it changes next word untillet's say I wanted to change up until the space here i could say teach c.tchange till the space and then we'll get rid of everything up at the space insertmodeanother awesome one is find let's say I want to blow away this first argumentfor whatever is a change in this whole this image thing is no longer necessaryso I can put my cursor here as i delete delete fine space and i'm relativelyclose to find space and at least up until including the space so till goesup to one beforefine includes it but what is inside so let's see here we are once we're insidea pair of parents so i can say this whole mess everything inside the squaredis to change change inside friends it will blow everything inside their homein certain there i can also say around a second they delete around friends I wantto get rid of the also in closing as well so you want to learn those motionsone more this whole method stocks we don't like the whole thing under thisparagraph delete around pair FDA p gonesuperfast right so it's worth knowing these text objects and these motionsthis is a really great way to speed yourself up a couple more things big onemattress mattress is another one of those things that kind of scare peopleand it's macros are a little bit of an art there are a couple tricks need toknow to get the reusable it's easy to record a macro that works in one spotit's a little harder to record macro the worst in a bunch of spots let's do itright now I talked earlier about refactoring a let our variableassignment into a left so let's actually do that with macros court record a macrothat does that right now there's a very simple spec we have these two thingsright here Bob and Albert they're both factory girl calls and i want to turnthem into let Bob and then block B factory teacher so listen for themacroscopic quantum accra by said thank you and tell you where I want to recordto the record a macro into something called a register and register is justlike a small clipboard and all of important matters is there justkeystrokes that's all of the macro as a record literally exactly what your typeand then retype that there's no so there's nothing fancy with binary goingon it's just he strips so recording right nowok so the first thing i do is enter a certain moment high and then type letopen and the symbol now i'm going to leave in certain moment i'm gonna go tothe end of this words I want to go to finish wrapping this left around bomband so I can't use the rightI can't go write a couple characters because it's and I wanted to work onAlbert to and I want to work on anything with the arbitrary somebody use a motionagain is a and E friends go to the end of the current word so that happily doesthat on the sample more we go going to have to go see on the word and so havinga pen with a close friend and I don't leave a certain once again so now I'mgonna go find people signed by F people's will jump there and then deletetwice and i'm going to do something called surround on him which is a tempoplugin which is awesomeyou need this as well as for managing circleending things like surrounding friends surrounding curly braces also lets youwork really efficiently with HTML definitely worth your time check thatout so i basically wrap a block around this so I'm gonna say is to hear themaround him and starts both pairs of those right so the macros done now sothank you again to stop recording and now I've done everything correctly i cango to Alberta little run that macro which is just at and then the registerthat has a macro inside it just happens to be Q this time up and we've lost therap gets hit on the next line and say we should be succeeded it works we got theleft around Albert we wrapped it aside around this curly four races and I couldhave easily save this macro off somewhere and use it anytime I want tothe factoring ever again save myself a bunch of time but so so i told you thatmacros are literally just keystrokes let's look at the macro just recorded soI'm gonna dump on the paste from register cube and tell them this by saythis is double-quote double-quote q put some getting it's a from the to registerput that thing I just recorded their looks like so that's literally just therecordings of the exactly sir I did I'd insert modeI time to let open colon this is not control character for escapeI was the end of the word appended a close friend i found the equal signbelieve two things and then I had this weird thing at the end that toldsurrounded him surround this thing with curls now just to prove to you thatthere's nothing special about this i would actually change this let to foodokay to have a line of text that represents my macro except is nowcalling the fill method says the let method and i'm actually going to readthis back into the queue register so it's a double quote q yank so now I'veupdated the queue macros let's go back to how we were and i'm not gonna run aqueue on this guy the new macro just reported and on this guy you can see wechange that so again justhe strokes the cool thing is you can write a macro and if you mess it up youcan just dump it and it back up and then loaded back in and work so you canactually even dumped you can even have command your memory that will load thesemacros and various registers for youso maybe you always walk around with like this in your l reddish i'llregister and so whenever you want to refracture ledge butcher and then you'vegot your letter e factor one final thing in script the script also has a bad rappartially correctly it's a bit of an ugly language on but it's not that badit's just as easy to learn and for everything that you've ever learned thebest way to do itSteve Loesch has an awesome guy for it's called learning javascript the hard wayand its really excellent as well as what i used to get up to speedever since I did I started writing his little functions for myself split onereal fast so it's correct test runner i mentioned this one earlier so I'mfrequently running our specs and cucumber features and I do this byshelling out is a colon bang r-spec and the filename i read my editor that'sanother thing that never leave rather you can you don't have toso this is this correct test runner thing says it's just different scriptsvery simple as a function takes two arguments if when I expand percent whichis shorthand for the current file name and that matches if it ends in $YEAR .feature then return to cumber otherwise if it matches it ends and dots back ourbe returned r-spec otherwise return Ruby and I use this down here in run currenttest to fill in the correct test runner on this line right here because maybe iwant to run bank to cover or maybe r-spec baby Ruby like you I think youguys probably understand this is pretty easy to read the treaty with him scriptis there's there's some weird watches some things that if you design andprogramming language scratch she would never decide to do but once you getthose master which are not very hard and Stephenpointing out for you it's really really powerful to be able to script youreditor so don't be afraid of that it's nothing it's a bit bad rapso a lot of people get a tox like to pimp things i'm gonna do that only isnot something for me I'm side that drew Neil recently he's the guy behindfantastic org and he just wrote a book and it looks like this and I think it'sgonna be awesome if you see if you can come if you used the past are you seenstuff on the planet org they're awesome really good screencast for learning themdoesn't recommend checking that out and he's a good guy who just finished thisbook is generated now you can buy it and also I i talked to I got a discount codeso here we gorails very happy IM 2012 twenty-five percent discount on that if you do itI'm please don't actually share that I think it's just it's just for people atthis conference but if you're interested in the bookgo for it I think it'll be a good read I can't read it yet but he's a good guyThank You things to do well that's all I have is my contact informationmy doc files up on github there any people watching my dog files you mightfind stuff interesting in there a big fat Marcy and a bunch of functions andaliens and stuff like that and love to take your questionsyeahhe has a lot of funny things a lot of good things104 sum of three favors functions functions india script coaches know forexample i love for operation or allow this particular all bombs selectionyeah I over your forever . is a big one . is a duck that repeat whatever yourlast command was just does again which is really cool because difference you'rechanging a bunch of references to from food bar you can say change word bar andthen to do a search for food and hit enter the next search and dr. repeatrepeat that last replacement and on and on and on and on and on really fast likethat a lotit's a big one what you actually find myself using recently x commands soanytime colon colon 10 comma 20 and 15 and her m30 that will move lines 10 to20 on the line 32 him business days for visual filled with the visual part usedto people and editor called X which you use just by typing these commands righton the command line you could even see what you're doing so it still maintainsx-mode what you think is crazy acts tribulations but very terse and keyboardbasically based yeah yeah yeah yeahdo you know a way of making them execute the code doesn't currently for examplerunning tests just not to wait for them that's good questionum no okay with it yeah go aheadyeah and it's have you some tips how to efficiently deal with too many tops toomany tabsyes don't want to be that kind of so I'm i use tabs not them so i'm a big fan ofsplits have a big monitor so I typically splitI mean almost always two or three or four times often like a las six painsbecause that's what I tend to do a lot of my working splits because i like tobe able to see code trying to get the values like you can reference what'sover here when you come over here typically pasta open into tabs if it'sunrelated it's like Oh what was that weird thing that file new tab and thencheck that out and then close that comeback so typically or Frances workoutI'm going outside in development right so i have cucumber feature cucumbersteps and split over here and like I get this is the point where i wanted to divedown a level you have come over here are specs back production code over here wehave to dive down another level over here put these all in separate apps andso that each one sort of represents a logical grouping of that code and alsoworked my way left to right depending on what I need to do also write a functionin my mercy are someone thought what a function is in my fantasy called mergepads which will let you take a tab and merge it back into the previous windowhas a split which doesn't have stock but it's actually anything that i findmyself tooI see youwe're using cannot be some people recommend might be more TV linux whatare the differences and and what do you think of that you get back is nicebecause it gives you better color schemes recently you have the bettercollege games I don't have a ring line so I the old terminal with you'll like16 colors or something or 256 forget that is prettierI think the fonts look a little bit nicer the three the reason that I gotaway from this because when i run my tests for Inside Man which of you allthe time they show up at the bottom of them i have like red green highlightedon there and Matt doesn't support ASCII codes in that output so it looks allmessed up and that's just personally but also because you see what i'm usingscreen which is awesome like it should definitely either using screen or twobucks a bunch of stuff different windows open down here different screen portalsbasically so I like having everything that one thing I gotta fit in one screensession I got terminal a bunch of terminals the other ones so I like Idon't like having a rather just switch within screenmaybe related to the last question whenever I tried to get into him undermac OS I got pretty frustrated by the conflicts between mac OS use of thecontrol key and it's needed and win did you experience that and if yes what Iout solutions of suggestions on how to deal with it experience that a littlebit i have basically limited the things that bound to control something so i usecontrol asks for writing file so i told you earlier and that's actually i thinki think one of my only control findings because like you said terminal happilygobble up other ones claims for itself so i don't think there's an easy wayaround that I don't know if you can rebind terminals commands easily wouldbe totally shocked because they're okay what about repositoriesI mean there we have a full ideas we have lots of traffic touring yeah in amethod in a local variable introduce grateful extract method on Portmanmember self and so on and so onyep is this is the label in somehowyes you can do a lot of those things so some of that stuff is a little trickierdynamic language like Ruby so that's what I working most frequently so Ihaven't sought out some of those but hey you can you can write about yourselflike I showed you that macro that we did just now so it's possible to writesimple things if you need a little more complexity you can write the script todo themI think there's also a fat up there's a plugin for him that's I can't exactlywhat has our factoring in it was for like what that Ruby refactor how's itworkyeah it's quite nice Ruby refactor okay so yeah I think something is written alot of that temperature for you thanks suredown here in thereyeah so the question was do you have any tips for keeping your wrist help andabsolutely do because i had a serious battle of ours either take time off workI was really scared so I did a bunch of things that really helped actually so Igot a keyboard tray got my hands nice low keep them pretty neutral i also havean awesome keyboards called kisses it's it's like a three-hundred-dollarkeyboards to say but it's also the keys are split like you like Microsoft Wordor they're really split back Space Center page down page of all thosecookies on your thumbs includes like silly basically you have the letter keysand everything else is on your thumbs and hit my thumb i hit backspace mythumb hit space when I was normal that that get a letter off the pinkiesbecause that's what hurting me was like reaching out to escape reaching up tobackspace hitting Enter like that motion was hurting and so this means you stayhere and there's your thumbs for that sort of thingit also puts the keys and like bowls sort of down like thisso what if you look at your keyboard keys are offset but they're not it's notstraight line from top to bottom there they're sort of dying like this I thinkis really good reason for that is to start with how things were done andcontinue today so these are actually all straight up-and-down which kind of makessense because if you think of your fingers curling up and down youwhy should this all be the same call of keys so it doesn't doesn't number ofsmart things that they make typing easier and basically every time i'm nottyping on keyboard i don't like I really it's really awesome it's reallyexpensive it also comes with foot pedals which have been dying to get so you cankind of a foot pedal for like tape or somethingyeah rightrun all your tests ship it something I don't knowso okay yeah sure okay how are you I'm fine with me five minutes ago sorryyeah it's not it's not a question but i just wanted to say about doing this bookwhich mentions yeah I heard ityes it's awesome great so you should you should buy it and also supports videowas amazing person cool yeah he's got a protected against make sure you want tocool thanks appreciate thatanything else oh yeah either so my christmas card at allyou're using visual model to know tonight thanks very frequently yeah itis yeah it's it's actually one of the areas where i could be a little moreefficient so i think i should do with da ppl paragraph which blew away the wholemethod i often forget about that and all going to youyeah absolutely so that means i need to get my cheat you're absolutely right soi need to highlight idol highlighted and then go down a couple lines and deletedwhich is just a little bit slowI also really love it's called column select within the control V with withblack select yeah last night was awesomeyou're changing a bunch of things or like anything that's in a verticalcolumn big fan of that was really welcoming sureany one person is going to get one more than up later too large for ya when Ijust startedyep one of the best things idea is mapping I didn't I don't know if youmention itremapping that goal of capsule is one of the best things that you would yourecommend it to block it would you change it to 0 control okay so why don'tyou stand that I did not cast like to escapeit's again it's like it's staying on the homeworld idea rather than reaching allthe way to escape I think that's one of the only fat does well when it wasoriginally created escape was very easy to reach you look at those old-schoolkeyboards escape this really handy to reach now it's sort of stuck on thecorner so I read that to escape but also five so i know a lot a lot of people mapcaps lock control but actually don't use that many control based command I findif I were doing emails I absolutely would but i so i just do it first gapeyeah that's great advice is we're looking at two here i can just repeatthe question to your high festival and plugins and would you recommend to haveplenty all just sticking to peel in and not use . so business is then treat butsome people don't like it i'll recommend commodity said to use to you swap thoselook like I use this little countrysorry this is also not much better isn't no okay is super tab in CoffeeScript tcomment and cucumber in fugitive in surrounding rails in Ruby and command Tand like half a certain back to Pope of course i'm a big fan of plugins I don'tthink you should jam them in like a lot a lot of people because of Janice forexample ships with it sort of pre-configured configuration has a bunchof plugins it has a bunch of happy for you i don't like that I think shouldgrow it yourself you should start with stock them in a tiny mercy and slowlygrow the mercyslowly add pluginsthe amount so you really know what functionality is coming from whereso I'm a fan just added slowly my reputationit's kind of part of this question for a long time I was kind of scared of mypenis and things like that because consistent know we're going to havedifferent environment on the server-side don't have my feet I'll see that soundskind of like to always have a few open command sign what to use sure so I wasalways scared monkeys anything because I could kind of get all yet would beremoved from Henry yea votes lobster like people now she's um do you haveyour interest in the repositoryyes ok can you put a positive way down to the other serverno because of security reasons this point in your own home directoryyeah okay okay let's tricky if you really can't get interesting eitherlocally then you might have a point where you don't want to add mappingsbecause gonna no you wouldn't you're not there i guess if you have to just lookat decide how annoying is that for and how much time you actually spending onmachines or you can even edit your home directory and because it's a massivespeed game together background stuff i mean it's hugeso if it's not a lot of time stands on boxes that you have no controlI would think I just suffer through with him like okay sometimes I can't use whatI have left my home set up ChaseLast Chance has a question over hereI think it's will be the final ok sure i'm talking afterwards i'll be aroundthere's one sure it's not actually questions and just wanted to say thatdaap doesn't really work went on to reflect on matters like deleted gonnahave any lines it but you can use the percent which is really cool so you'rerightyeah yeah okay so if you are when you find a matador in the end use percent itmoves to the beginning of the definition of the blog or at the end if you're thebeginning so that's really handy right that's good that's very good advice yeahdat doesn't work if you if there's not whitespace the other side that's what tosay or if you have a line that has expenses on it okay yeah suregood advice alright so i'll be around feel free to ask questions i'll talkabout this stuffthank you all very m