 Well, if I'm not mistaken, if I understood it correctly, this will not be a commercial for e-max or for Wim or any specific editor, but it will simply be more of a plaidoyer for for a method of optimization of workflow presented by Miro who will talk now for about 45 minutes, we will still leave some time for questions later So one welcome from you. Thank you. My name is Miro Slavšeljivi, and this is how my keyboard looks like Anyone else using the same standard US keyboard layout? Quite a few very nice. So it's a I like this keyboard layout very much because it's all simple. It allows me to to program in programming languages I need and write most texts I need from simple English texts until complicated, more complicated names of places like Chlanfajku, Puchginge, Kogera, Vindrabu, Klantasilio, Gogogoch, who has been already to this Welsh city or town And it contains the whole ASCII and has on note more than two keys two characters per key, which can you reach by shift. So it's quite simple and very useful to type most texts in English On the other side, if you want to write on the German keyboard where now all the people and the sharpness are there, they are again practically if you want to write on the German one But who of you who just understand me now know that there is also the big sharpness since last year And how do you write this on your German keyboard? Shift and sharpness, it is a question mark. So it doesn't always work. It is also true And both Slovakia are exactly the same. So the whole interruption of the right is completely different So if you have a program, you have to notice new things And I haven't shown all the keys yet, which are more rich with the Altgr The Czech keyboard is very similar to the Slovak one It is also there with the H key or with the X key Which is basically you can write on Slovak or Czech There are similar things there, but if you want to write on the Czech keyboard, you have to do it with a shift Has anyone already written on a French keyboard? It's not correct, it's not correct, it's wrong The M is elsewhere, the point we do it with a shift And the other keys are completely elsewhere I learned to use the VR on the French keyboard 18 years ago At the time I didn't understand how someone could build an editor of this type With a letter that doesn't correspond to the letter After that I find a quarter, but it's still far away The Spanish keyboard contains letters like N with tilde Or exclamation marks, or open interrogations That you need at the beginning of a sentence The Polish keyboard is very similar to the American one The difference is that you can write all those dots, letters and other signs You can write to whom you are going to live, where you are going to rent a keyboard And live in the same way that your friends live in the same way That's how you need the Polish keyboard This is Italian, this is Cosa, this is Spanish The letters are not found in the way how to write The letters are easier to write But apparently it's quite simple The Swedish keyboard is called Ring It's the biggest keyboard that I've ever seen in my life Esperanto is a very international language Or there are some very special letters The Turkish word is Ivar And we have only scratched the surface So you see we have just tried to type in a few European languages And our keyboard is already a real mess If you want to type and switch the keyboard layouts each time You want to type in another language And you have to switch these keyboard layouts You are not going to program Because you cannot remember where all these braces and other special characters Double quotes and other characters are So how can we type in more than one language? Switching between keyboard layouts is not an option Scrolling in character maps works maybe for some very special emoji, Chinese character, if it is only one from time to time But not if you are typing fluently in another language Also remembering all the unicode Code points with all the art And the number combinations is also not an option Fortunately in the 80s on some unix terminals There was a special compose key Does anyone remember a compose key? Nowadays after MS-DOS took over The whole hardware market And the whole compose key already disappeared But maybe this is a solution How does a compose key work? You don't have to play piano So you need only one finger And you have to type a sequence of three keys The first is always the compose key And then two other keys that at the end Will make the character you want appear So for example if you want to write in German an umlaut Umlaut you remember umlaut it looks like a double quote So you remember everywhere where you want to type umlaut Even if it is in French word like citroen You type compose, double quotes and a character If you want to type in French with accent aigu It's a simple quote If you want accent grave it's a back quote And there are all other combinations For example for the German SZ It's a compose SS And if you want the uppercase SZ It's a compose and then shift SS So you don't really have to type a lot of characters And I find it very intuitive to remember All the combinations you need There are also many other characters That you can type with it For example if you need ellipses three dots If you type three dots it will give you three dots It is not exactly what you want If you type compose and then two dots It will like compose dot dot It will give you three dots Even on the US keyboard you don't have a euro character For the euro currency it's compose equals E Like it looks like a euro sign So you have to just remember or get used to If you don't really need all of these characters To get used to a few characters you need To just stick with your US keyboard layout And not change and not use some other keyboard layouts All this is defined You don't have to define anything It is already in this file This file contains over 6000 rows 6000 lines with the combination Of the three characters or more characters you need And you just to get inspired You can just have a look at this file And you will see what combinations are used There are even some funny characters Like colon and parenthesis It's like smiley If you type less than and three it's a hurt If you type CCCP it will print the communist symbol If you want to define your own characters Like if you in your work job or in your hobbies You have to type a lot of unicode characters That are not in this standard compose You can define your own .x compose file In the same format For example as an idea If you type in Greek sometimes And you want to type alpha You can define something like compose GA It will type lowercase alpha Compose G shift A is uppercase alpha And other characters Or if you want to type in serial leak Or you just have to find out What works for you So this is how compose key works We are still missing the compose key There is no compose key on your keyboard But there are plenty of other keys That you are probably not using every day For example on my keyboard I usually assign compose key to the right window key Or to menu key If you have a modern think pad You have on the bottom right in the row There is a print screen You probably don't use every day To the compose key And in this file There is a list of all characters That can be mapped to compose key And everything you have to do Is set XKB map US or the keyboard layout you are using You can do this even with your German Or French or Polish keyboard layout And minus option And compose and then the name Of the key you want to use So this is how we can type In most European Latin based Alphabet languages That what we want But when we are already hacking our keyboard We could already touch another key Which one is it? I found it on some chat A few years ago So which key is it? Taps lock What can we do with Taps lock? That is preventing you from logging Since over 20 years We can... You can break it out I cannot type with touch type But if I have already my fingers here And caps lock is something That I am using quite often Not caps lock but the key I can reach it quite easily How about Making the control Because the control is quite far And if we remap Our caps lock to control We just Find in this same file There are all the remaps that are available And then our set xkb map We just add to our compose We add the caps control modifier And our caps lock works Like a control But we are still not finished Otherwise I wouldn't be standing here Because we can do even more Out of our caps lock We can get two keys at the same time When you touch control Do you ever touch control just Hit it? But... Others maybe not It means that if you usually control Is the key that you press And then you press another key But there is a... How about using mapping it to escape Because escape is on the other side Is a key that you are hitting You are never press escape And press another key So if I just touch it Like hit it, it's escape And when I press it and hold it I press control It works There is a program for Linux But for other operating systems You can find alternative For example the program xscape That is done exactly for that And if we run in our init files The xscape With the command With this caps lock mapped to escape The key will work as a control As long as it is pressed But as soon as we release it Over one year It works perfectly well So we are ready We just create smaller stickers That don't cover more than one key You put these two lines Into your init files And we are ready to start our journey With the vi editor Is anyone using here vi or vim Occasionally Or all the time Occasionally most And as the main editor Oh, great So I don't have to explain A lot of the history But vi and the predecessors Are around here Longer than most of us Here probably Vim, the editor that you probably have Installed on your computer Comes from the beginning of the 90s The author Brahma Mullenar Wrote it on Amiga And then ported it to most Other operating systems We are starting at the end There is now vim, who knows now vim It's a new alternative That started a few years ago As a fork of vim 7.4 And that is maintained By a community And it said that it's more open To updates, it's more community driven Project And they activated a few Or they edit a few new features Before Vim 8 came To the market or to the repositories If you go a little bit back There is steve and Elvis Parallel projects also from Amiga Vim got inspired by steve But they disappeared after a certain time Vim is everywhere now And then when we go back, back, back There is vi from Unix That is probably what you still know And vi is a text editor Is a clone of vi That didn't change much That is still available on most systems Back back to the ad editor Who knows ad editor? Using it every day? One I think just today Tonight there should be an ad Workshop After this session Okay, so there is Mattias the guy who will Try to Teach you how to Learn ad, so I would really recommend it I use it already sometimes But I would probably recommend it To learn ad Because ad What is ad? How it looks like? It's a text editor, but linear text editor Why is it a linear text editor? Do you know these two guys? These are Then is Richie, Ken Thompson These are the authors of Unix Without these two guys No Unix No BSD No C No macOS Just Windows everywhere And you see They are sitting in front of the pdp11 Pdp11 is the big box Big box at the Big of the room Is the computer And the two smaller desks In front of them are the ASR33 And these are the way They communicate with the machine What you see, there is a keyboard And there is no display No smaller, bigger Huge display, there is no display But there is an infinite roll of paper In front of them, with a printer And this is how In those times the computers communicated with us It means they You could type a comment You could see it and then the computer Could just reply and this is where Terminals come from Because this printer, it could just print Line or several lines But it couldn't just scroll back It couldn't overwrite what came out So the only The only way to use for example Cat to see a file was just Cat and then it printed the whole file And you could read it If you wanted to change something and then Reprint it, you just had to use another A few meters of paper That's why It was born That you couldn't use on a very small Very, very, very In a small memory but also at a very Slow connection And this is how It looks like Everything that is white background It was me who typed it Everything that's yellow background, it's computer That answered You have to imagine every line Came after each other so it could Be as well printed on this paper And When we started from From the edit from shell Then If I want to type something new, I have to Use a comment, A is the comment that Appends line to the current Line position. Then I've wrote these two Lines, hello world, everybody at Gulaszprogramme.nacht and then dot Was the end of my text input After dot it knew, okay These two lines are the new lines The two lines that are coming, that Have to be appended to my file Then n is the comment that Types the current line, prints the Current line with the number of the line So with n I enter And I could see two and the number Of my line, two and the line That I printed as last And then as I inserted as last And then I do A, write another line How are you today? And then With, there is n with Person and person, you know it from Vi, it is the whole file So person n means just print the whole N with three lines, you are not going to Do it with your whole source code of Unix. And then it printed the three Lines. And then there are regular Expression, there is a regular expression That comes that says with one s It means in the first line, replace World by Gulaszprogramme.nacht Another comment, I don't have to see The result immediately, another comment Is 2d, it means delete the second line And person n, print it again And if you see the This comment with the Substitute, with the world Through, replace it With a Gulaszprogramme.nacht There are also comments that acted On the whole file with regular Expression. So for example you could tell I want globally, in the whole File, print everything With where this regular Expression works. And this is this G, slash R, E, like Regular Expression, slash P And this is where the word grep comes From, comes from the editor So at the end we just write it to the File, it writes 49 bytes Quit, and that's all So this is how Unix worked 50 years ago So if you are Writing a program that has many Lines, imagine that you would have To type it with it I really recommend to learn At least the basics of add Because when everything is broken On your computer, it will always work Even if, for example, if you Use vi or vim, and you Just mess up your vmrc It will always help you To repair your vmrc And to get your vmrc Because repairing vmrc By vim is not really Just self-operating appendix It doesn't really work very well No, at the end I will show you A way not to come to this Point, because you will not Going to break up or to mess Up your vmrc So this was 50 years ago Then we are coming to the mid of the 70s With the ADM3a terminal And this is where Bill Joy in 76 Wrote vi4 And it's already visual Because we have already a display Where we can see more At the same time and the display Is able to redraw Characters at any random position This is how the keyboard This is the keyboard layout Of this terminal And you see the arrows At the hjkl keys So that's why vi is using Hjkl to move around And also the escape key Yes, yes, control and escape Control and escape is just Next there We can leave where it is But you have control and escape And I showed you how to put Control and escape to a better position On the right side the keyboard Looks a little bit different from the US standard keyboard layout that we know today But it works quite well So the hjkl Where it comes from Why was hjkl Here is the question Next to which Break or up I have never touched this terminal I just found the keyboard layout And there is even I don't know Does anybody know It's boring So where does hjkl Why are arrows at hjkl We can start with h What has h And left arrow In common What happens if you hold Control and hit h It's backspace What is Control and j Line fit Line fit If you know ASCII These are the first 32 characters Of the ASCII Position 32 is Space and all the rest But this is below 32 In the first column There are the numbers In the second column there is ASCII character with the control With the character in front of it Which means this is the way How you can type this character In ASCII are control characters Like backspace, like new line Like deep, like tap Like vertical tap And all these Characters you could type them with control It takes the key You want to type It's a skill value and then it substrates 64 So for example A is 65 ASCII 65 Minus 64, control A is Start of header With control D You can just close terminal Or some text input You look at the D is EOT End of transmission So you are actually sending ASCII character 4 End of transmission Other thing that is probably quite well known Is the Certins, is the M If you open a Windows encoded file In Linux At the end of each line it will just Show carried M These are the backslash r From Windows files So control H Was backspace J was line feed And then K is vertical tap And L is form feed They have nothing to do with arrow up And arrow right, but actually the Authors of the terminal that just put it there Because it was quite convenient Control L is Form feed Form feed means just scroll the paper The whole paper out of the printer And the terminal it will just clear the screen So With all these characters that you can type On your keyboard You are able to navigate everything And you don't really need This small device next to each If you are working with text Because with WIM you just Can move around and do everything With keyboard and you don't need A mouse This is how WIM keyboard looks like For beginners it looks like A lot, but it means that With every key you can do something WIM uses Something like a grammar where you learn Some operators, some movement Motion comments and you can do Almost everything with your text If someone says you have to Juggle with H, J, K, L No, you very Usually don't use them because they are In the middle and they allow you to Move around by one line or by one character There are plenty other navigational Or motion comments that allow you To move just jump around The whole screen, the whole Text and find things that You know, that you need To work on There is Not WIM alone, there is a lot Of software that got inspired by WIM that have like WIM Mode In the shells you have All the possibility To jump Over the words in your Comment line, i3 Is a window manager Tiling window manager, there is An asterisk, the first thing When you install it you have to Remap the J, K, L A semicolon to A, J, K, L They just move the defaults To the right, which I find Really nonsense, so it's Something that you have to change Tmox, there was Martin who Explained some stuff about WIM and now before my talk Qt browser, web browser That works entirely with Keyboard, WIM Triductile and so on Extensions for Firefox or Chromium MOT and NewsBouter Email program That uses for navigation WIM keys VIFM is a file manager Zatura is a PDF viewer And then there is ImageViewer and ViPaint Never used that but it should be ImageEditor, there is maybe Something where I wouldn't really Use keyboard only for that And there are some more of them And there are a lot of text editors And ideas that offer WIM mode That works perfectly Up to 50, up to 98% 98% of time It means that every 3 or 4 minutes I just encounter a moment where It does something different than To make it, to do it So I don't really Use them Learning WIM It's a steep curve but It's your job Probably most of you Are working with computers And have to edit Text of some sort If I want to know whether It's something worth the time I just opened this XKCD Chart that tells me Something and how much time I shave off And Mastering a real text editor With a WIM or IMAX or some other Means that I Save a lot of time Every day Because there is Another activity that you do Probably much less Than editing text And where you invested Much more time And it is driving a car Very probably nobody here is Spending in a car more time per day Than sitting in a friend of computer So if you invest your time In learning how to drive a car And then think once I can drive a car I can drive any car Because everything is the same Sign up for Stadmobile in Karsdorwe And each time you sit in a new car You will just try to find out How things work So spending the time To learn something means You can try it out, if you have problems You can Google, you can ask At Stack Overflow The most asked question is how to quit WIM It's not a joke anymore, sorry I see it too often If you use a software tool For more than an hour a day I absolutely recommend to read a book on it It's not only for WIM It's for anything that you use On your computer because Trying it out Reading an introductory book Is something that will allow you To give the author the opportunity To tell you what this program is about For WIM I can recommend the author Drew Neal Who is author of a WIMcast It's like video sessions Where he explains some nice things About WIM and these two books Practical WIM is a timeless book It's like 5-6 years old But it could be 20 years old In the future Because it teaches you how to Use WIM The basic WIM without any Special new versions without any Extensions or plugins The other book, Modern WIM Just comes out in print I'm one of the technical reviewers I can recommend it Because it speaks about WIM 8 and Neo WIM And how to turn them into real Ideas So when we are talking about WIM 8 And Neo WIM Is a fork of WIM 7.4 It means that there are some Stuff that came to Neo WIM a little bit Before WIM 8 It is asynchronous It means that if you have some plugin That needs some time Like linting, compiling, testing Or auto completion It doesn't block Your work so you can just Type and it will show you Everything when it is ready There is a terminal in it Where you can send the comments From your text editor To the terminal and back And search in the terminal It has modern defaults So I think SetNoCompatible Is not an issue to write it in your WIM Or in the new configuration file It runs only on modern systems It means that most older systems Were just deleted From the search code It has some Other place to Store your configs For Python users Or not only for anyone Coding in Python here Nice There is a great Python plugin That allows you to write A Python communicating library That allows you to write Python plugins But actually Neo WIM communicates With programming languages So you can In JavaScript In C in Java Where you can type Write your own plugins And use them in WIM This means that it allows you To use your The programming language you know the best To work on your daily Text editing tasks WIM your stuff So how can WIM help you In our text Of course syntax highlighting Autocompletion Asynchronous linting Git communication with Git So you can commit to do everything From editor directly And also you see immediately life The diff comparing to the Latest commit You can search with IG with Fuzzy file searcher There are snippets In Python language where you need Automatically generated code So in Python we don't do that There is folding Interaction with terminal And with IPython if you have Python and there is spell checking If you are writing computer program Spell checking Works only on strings and on Comments so it doesn't tell you Okay there is a typo in your Function because it's a name That it doesn't know Your programming language You can install The communication library For example in Python I just import the Editor method from WIM and then I can Start a new instance of WIM In my Python program Or I can connect to an existing one And then it's like object oriented Programming I can tell If I start a comment Just Give me the whole buffer Or give me the current line You can even send the comments To WIM and everything is in Python Or the programming language of Your choice. As an example I wrote This is just how it looks like A plugin in Python That allows me to Type easier my emails In our company This I use mud for emails And when I type a new email I just check who I am Writing this email to And it writes hello and the Names of my colleagues And if it is an email address Out of our company It's the signature at the end Because we don't like sending Signatures within the company At the end update remote plugins And stuff works If you want To customize your new WIM In the beginning please WIM as it is Because WIM is everywhere On any server Almost on any server And if you log in Your plugins are not there Your settings are not there So there are the default settings And it's always a good idea Just to master these and use them Directly If you want to customize your own WIM on your computer You can deactivate arrow keys And then Just to force myself to Use HAKL and other keys My colleagues didn't like it Because when they were searching For something scrolling in my text Or in my source code The arrow keys didn't work You can remap keys, of course You can shorten some comments The appearance, how do you like To have it with all the Bars left, right, top Button, how it should I could show you now my WIM RC But I have only 20 minutes left So it's not really an option Actually You This is not something that Okay, I'm going to Give me your WIM RC I want your WIM RC WIM RC is something That you have to build up yourself Just At one line try it out And if you don't want to Break your configuration Get your .files And then you have just one master And branch with your comments And if you want to try something new You can try it out, if it doesn't work You just can always check out Back to your last working Version Because actually you shouldn't put Any lines into your WIM RC That you don't understand It is not only WIM RC It is a technical CV It is something that you create your whole career That you can take with you If you change your computers Your careers, your companies And They will just come with you And it is the way how you interact With your computer So you write Your .files You give them and then Share them with some private Repository somewhere You have always them with you And they will work For you on work or home computer Usually you could Create a .file and then Symbolically link it to all your Files in the system where you want But I found somewhere A very nice way how to do it I Create an alias that I name config And I create A bare repository In my home directory that is not called .files But it is called .files Because if it is .git and I am In terminal In the shell at every enter It will just check compare Because my zshell sees There is a .git so it is a repository I have to check all your files in your home directory And compare it with the git And your files are not versioned And there are some changes And it will be slow because your home directory is huge If you create A .git-dir It will never see it And if you create your alias named Config You can always with config You have the whole power of git And it looks into the right directory The work tree is your home directory So if I am in my home directory And I do config status It shows me what has changed And I can commit push do everything Another thing that I told that you have to create A .git as a bear Git repository And the second line is very important With this config status Show untracked files Because you only want to track the files You want to track You don't want to see all the other files In your home directory With this line If you do config status It will compare just the few Your vmrc, zshell, rc Those few files you want to track Then you can of course You have to add a remote Whether you put it on github GitLab in the private directory Repository, you can also use Uberspace or some other service Where you can Share your Your .files between your Computers GitHub is usually public There are many public .files it is your decision Whether you want to publish it You branch And that's all Thank you very much Thank you very much Mio for this Really packed talk But unfortunately we still Have some time for questions So there's the first question So one addendum The rub key Since an eski delete So character 127 That was one of the questions And the other thing I would add to the If you spend more than one hour On a tool and read a book I would start with the man page Of the tool before I buy a book But otherwise I agree I'll be around if you have Some more questions If you don't have your questions right now That means that The presentation was Self-explanatory And Miro will still be here So he can ask you questions In person Do you have a method For writing Japanese characters Or For writing Japanese characters Japanese no Chinese on my cell phone But Japanese no But you don't have any solution for that I never wrote Japanese You can do it in Emacs By the way There's an input method called To type Japanese Another question And how are you doing the Chinese You said you're typing Chinese Because I tried and I couldn't make it From time to time When I have to type something it's a black hole On cell phone I mean Black hole PL, E, C, O It's a dictionary that allows you Also to swipe with your finger And it has the whole dictionary So it shows you immediately the context I wrote very little Chinese Like so Thanks Now we all know that Linux is the dominating operating system But do you have any suggestions For using this on others Like Windows or macOS For example The Compose key for example The Compose key for example Google for Compose key and the name Of your obscure operating system For macOS There is certainly something For Windows I'm sure as well But never Never used macOS and Windows in the last century So I don't remember I propose that maybe After this talk we could set up A little wiki where everyone Posts this config file and we start Discussions which one is the best But I think For today we can Call it a day and thank you again For this talk