WEBVTT

00:00:00.000 --> 00:00:03.180
I would like to rename all of the instances where

00:00:03.180 --> 00:00:07.480
I use lazy lock. I just select lazy lock and

00:00:07.480 --> 00:00:11.039
I would like to use absolute path. I just type

00:00:11.039 --> 00:00:15.359
std sync lazy lock and it just works at the moment.

00:00:15.519 --> 00:00:20.760
The docs are not available from the actual editor.

00:00:20.960 --> 00:00:24.339
I will press semicolon. to collapse these selections

00:00:24.339 --> 00:00:28.059
into just the cursors. And I can press R, which

00:00:28.059 --> 00:00:30.699
is for replace. I replace the character at the

00:00:30.699 --> 00:00:33.960
cursor with a comma. Yeah, so I just made this

00:00:33.960 --> 00:00:38.820
website called Helix Golf. I just wanted to let

00:00:38.820 --> 00:00:42.560
people know about the power of Helix, how you

00:00:42.560 --> 00:00:45.399
can do different transformations to text. If

00:00:45.399 --> 00:00:48.500
we go to the Wikipedia page, here we have this

00:00:48.500 --> 00:00:50.799
tutorial. Everything that starts with tutorial

00:00:50.799 --> 00:00:56.240
is I wrote it. Now I press capital I, which will

00:00:56.240 --> 00:00:59.200
move me to insert mode at the beginning of every

00:00:59.200 --> 00:01:01.500
single line. Now I can type whatever I want.

00:01:01.659 --> 00:01:04.239
So I just... Have you heard about the joke, the

00:01:04.239 --> 00:01:10.400
Helix joke? The Helix joke? I cannot say it.

00:01:10.500 --> 00:01:19.620
But what else do you want to show? Why you can't

00:01:19.620 --> 00:01:21.719
say it? If you're listening to this as a podcast,

00:01:22.079 --> 00:01:23.400
Remember that it was originally recorded as a

00:01:23.400 --> 00:01:24.859
video. If you're not following along, you can

00:01:24.859 --> 00:01:26.439
go to my YouTube channel. My username is Linkarzo.

00:01:26.540 --> 00:01:28.060
And if you want to support me to keep this podcast

00:01:28.060 --> 00:01:29.980
going, you can donate in Ko -Fi. I'm going to

00:01:29.980 --> 00:01:31.459
leave a link in the description. All right, so

00:01:31.459 --> 00:01:34.480
let's get started with this chapter then. All

00:01:34.480 --> 00:01:37.760
right, so I've been hearing about Helix for a

00:01:37.760 --> 00:01:41.620
long time. I'm a big NeoVim user. I know nothing

00:01:41.620 --> 00:01:44.420
about Helix. The only thing that I have done

00:01:44.420 --> 00:01:48.420
with Helix is to install it. So today I have

00:01:48.420 --> 00:01:53.280
Nick here, which is a Helix user. Hey Nick, how's

00:01:53.280 --> 00:01:57.239
it going? Hey, great. I first heard about Helix

00:01:57.239 --> 00:02:00.200
a couple of months ago because I wanted to get

00:02:00.200 --> 00:02:04.319
into Rust language. I didn't know anything about

00:02:04.319 --> 00:02:09.860
it and I was using Neovim as well. But I was

00:02:09.860 --> 00:02:15.020
tired of constantly having to change my Neovim

00:02:15.020 --> 00:02:19.139
configuration because every single week I would

00:02:19.139 --> 00:02:23.229
find a new plugin. and i wanted to use it but

00:02:23.229 --> 00:02:27.669
it just kept it kept going on forever so there

00:02:27.669 --> 00:02:31.610
would be i would use my editor more to edit itself

00:02:31.610 --> 00:02:35.590
rather than actually getting any work done yep

00:02:35.590 --> 00:02:38.430
and i just wanted to something that works out

00:02:38.430 --> 00:02:43.270
of the box okay makes complete sense i know nothing

00:02:43.270 --> 00:02:46.069
about it so that's great you know that you come

00:02:46.069 --> 00:02:49.629
from neovim so you can guide me through the process

00:02:49.629 --> 00:02:52.800
and and explain why and all that stuff for how

00:02:52.800 --> 00:02:58.060
long did you use new vim for half a year um it

00:02:58.060 --> 00:03:02.479
was my first like terminal text editor so i started

00:03:02.479 --> 00:03:05.439
off with visual studio code when i first learned

00:03:05.439 --> 00:03:09.840
programming and then wanted something more um

00:03:09.840 --> 00:03:13.860
extreme something that something interesting

00:03:13.860 --> 00:03:21.259
okay yeah okay and Why did you want to go through

00:03:21.259 --> 00:03:24.740
the pain of configuring your editor and the terminal

00:03:24.740 --> 00:03:27.379
and playing with config files and all that stuff?

00:03:27.520 --> 00:03:31.219
Why didn't you just keep VS Code? Because if

00:03:31.219 --> 00:03:33.780
I just kept using VS Code, it would just constantly

00:03:33.780 --> 00:03:36.580
be in my mind that I might be missing out on

00:03:36.580 --> 00:03:39.599
something cool. I just have to give it a try

00:03:39.599 --> 00:03:42.379
at least to know if I like it or not. And then

00:03:42.379 --> 00:03:45.819
I can go back if I want to. And I'm not going

00:03:45.819 --> 00:03:50.379
back. Okay, so no plans to go back to VSCO then?

00:03:51.180 --> 00:03:54.860
No, it's a mouthless lifestyle. You can't go

00:03:54.860 --> 00:03:57.919
back from it. It's just too comfortable. I like

00:03:57.919 --> 00:04:00.639
it when I don't even need to touch mouse anymore.

00:04:01.680 --> 00:04:09.560
Ever. Okay, okay, okay. The only thing that I

00:04:09.560 --> 00:04:12.199
have done is to install it because I didn't know

00:04:12.199 --> 00:04:15.780
how long it was going to take, right? This is

00:04:15.780 --> 00:04:19.980
the only thing that I have done so far. You already

00:04:19.980 --> 00:04:23.439
explained that you have used NeoVim. Are you

00:04:23.439 --> 00:04:26.439
switching between both of them or just Helix

00:04:26.439 --> 00:04:30.819
right now? So as soon as I heard about Helix,

00:04:30.980 --> 00:04:34.319
I was doubtful for like a couple of days. But

00:04:34.319 --> 00:04:36.819
then I just decided to go all in. I just deleted

00:04:36.819 --> 00:04:42.000
my NeoVim configuration. Because that's the best

00:04:42.000 --> 00:04:44.139
way for me to learn something, just to jump into

00:04:44.139 --> 00:04:48.120
it. Instead of just casually, like, over a span

00:04:48.120 --> 00:04:51.300
of a couple of weeks, use it a little bit. No,

00:04:51.360 --> 00:04:55.660
I just went full on with Helix. For how long

00:04:55.660 --> 00:04:59.100
have you been using Helix? For about a couple

00:04:59.100 --> 00:05:01.399
of months now. I think I started in November,

00:05:01.680 --> 00:05:08.199
which is also when I started using Rust. Okay.

00:05:08.620 --> 00:05:12.060
Okay. Yeah. You seem pretty young. Would you

00:05:12.060 --> 00:05:15.120
mind sharing how old you are with us? yeah i'm

00:05:15.120 --> 00:05:17.879
18 years old i've been programming for about

00:05:17.879 --> 00:05:23.379
a year now oh okay okay yeah so so you're doing

00:05:23.379 --> 00:05:29.360
rust mainly at the moment yes um exactly i started

00:05:29.360 --> 00:05:32.579
first i started with web development um using

00:05:32.579 --> 00:05:34.560
the ocean projects if you've heard the bosses

00:05:34.560 --> 00:05:38.100
it's like an a website where you can learn programming

00:05:38.100 --> 00:05:41.990
by building projects such as them such as building

00:05:41.990 --> 00:05:45.269
calculator, building like a painting app using

00:05:45.269 --> 00:05:48.509
JavaScript. And that was my first experience

00:05:48.509 --> 00:05:54.470
with programming. And then I sort of like, I

00:05:54.470 --> 00:05:58.209
knew JavaScript and TypeScript, but I wanted

00:05:58.209 --> 00:06:00.730
to learn about like systems programming, something

00:06:00.730 --> 00:06:04.670
on the lower level. And Rust just seems like

00:06:04.670 --> 00:06:08.310
the perfect language for me to learn because

00:06:08.310 --> 00:06:12.160
it had everything I wanted. like a strong type

00:06:12.160 --> 00:06:18.139
system a very good like package manager and uh

00:06:18.139 --> 00:06:23.560
yeah so i just wanted to jump into it but i needed

00:06:23.560 --> 00:06:28.000
something like a real project to work on um so

00:06:28.000 --> 00:06:30.639
i can actually learn rust because i of course

00:06:30.639 --> 00:06:34.319
i can just build like one of projects such as

00:06:34.319 --> 00:06:37.980
the calculator or to -do list but it motivates

00:06:37.980 --> 00:06:40.819
me to work on something that people actually

00:06:40.819 --> 00:06:49.040
use. And when I work on these tasks, it motivates

00:06:49.040 --> 00:06:54.060
me to work and keep it working, basically. Okay.

00:06:54.379 --> 00:06:59.899
Do you mind showing us around in Helix? How do

00:06:59.899 --> 00:07:04.800
you open it to start with? Is it... an application

00:07:04.800 --> 00:07:09.180
in itself like is it a gui application like emacs

00:07:09.180 --> 00:07:12.220
or is it something that you open in your terminal

00:07:12.220 --> 00:07:16.680
yeah so helix is a command line so you have to

00:07:16.680 --> 00:07:21.019
use a terminal for it but um like there were

00:07:21.019 --> 00:07:24.459
plans to make it into a gui so maybe at some

00:07:24.459 --> 00:07:27.579
point we will see something like neovite but

00:07:27.579 --> 00:07:30.319
for helix but at the moment it's just in the

00:07:30.319 --> 00:07:36.139
terminal okay okay so the only thing that i did

00:07:36.139 --> 00:07:38.980
is install it how do i open it like after installing

00:07:38.980 --> 00:07:41.959
it what do you do do you type helix in the terminal

00:07:41.959 --> 00:07:46.920
yes so to open it you have to pick like any file

00:07:46.920 --> 00:07:50.740
and just just open it using hx which is the command

00:07:50.740 --> 00:07:57.060
hx and there you will see yeah okay okay do you

00:07:57.060 --> 00:08:00.199
feel a difference comparing helix to any of them

00:08:00.199 --> 00:08:03.040
do you feel that it's a little bit faster or

00:08:03.040 --> 00:08:06.519
how do you feel yeah i feel like it's it's faster

00:08:06.519 --> 00:08:09.839
but it sort of feels like placebo because it's

00:08:09.839 --> 00:08:12.540
written in i know that it's written in rough

00:08:12.540 --> 00:08:14.819
so it feels like it should be faster but at the

00:08:14.819 --> 00:08:17.899
same time i can't really notice much of a difference

00:08:17.899 --> 00:08:20.300
because both new them and helix are really fast

00:08:20.300 --> 00:08:24.420
so as you can see i just opened i just opened

00:08:24.420 --> 00:08:29.279
the file it's just instant there's no delay okay

00:08:29.279 --> 00:08:35.059
okay Do you usually open a project and work in

00:08:35.059 --> 00:08:39.080
that? Let's say you just type HX, open the project,

00:08:39.159 --> 00:08:42.100
and then you have a file explorer in Helix, or

00:08:42.100 --> 00:08:44.740
how do you usually navigate around in projects?

00:08:45.779 --> 00:08:52.340
Yes, so usually I just use HX. It opens like

00:08:52.340 --> 00:08:55.860
an empty buffer with nothing in it. And then

00:08:55.860 --> 00:09:00.090
I do space F, and this opens a file. Explorer,

00:09:00.269 --> 00:09:04.309
which is new from the latest version. So you

00:09:04.309 --> 00:09:06.309
have to build from source at the moment. You

00:09:06.309 --> 00:09:09.269
will get a file explorer, which is built into

00:09:09.269 --> 00:09:13.269
Helix if you build from master. But you can also

00:09:13.269 --> 00:09:17.529
use Yazi to integrate it with Helix. So you will

00:09:17.529 --> 00:09:20.870
be able to navigate to different folders and

00:09:20.870 --> 00:09:23.850
open them right with Helix with the Yazi integration.

00:09:24.870 --> 00:09:28.980
And it even has image preview. so as you can

00:09:28.980 --> 00:09:33.919
see i can view svgs right from helix interesting

00:09:33.919 --> 00:09:38.159
yeah and to actually get this integration working

00:09:38.159 --> 00:09:42.600
it's only like like 10 lines of of tumble basically

00:09:42.600 --> 00:09:48.139
not much work yeah okay so you only need to have

00:09:48.139 --> 00:09:52.179
yasi installed outside helix just install yasi

00:09:52.179 --> 00:09:56.059
as usual And what do you need to do in Helix

00:09:56.059 --> 00:09:59.039
to configure that? You mind showing us your Tamil

00:09:59.039 --> 00:10:01.759
configuration file? Yeah, absolutely. So let

00:10:01.759 --> 00:10:12.100
me go to... Let me open my config. Right. So

00:10:12.100 --> 00:10:15.860
as you can see, this line means that in normal

00:10:15.860 --> 00:10:20.600
mode, we are creating a key binding. So for the...

00:10:20.809 --> 00:10:25.350
e key it will run this command which is i just

00:10:25.350 --> 00:10:30.570
copy pasted it from the um github wiki but basically

00:10:30.570 --> 00:10:34.230
what it does is it it creates like a temporary

00:10:34.230 --> 00:10:40.389
file um which has the the current file your op

00:10:40.389 --> 00:10:43.450
you have opened in yazi and then when you close

00:10:43.450 --> 00:10:46.269
yazi and open it again it will remember which

00:10:46.269 --> 00:10:53.000
file you have opened last time Okay. Yeah. Okay.

00:10:53.080 --> 00:10:57.080
Wonderful. So by default, you don't get a file

00:10:57.080 --> 00:11:00.860
explorer unless you build from sources at the

00:11:00.860 --> 00:11:03.940
moment, right? Yes. Yeah. It's available on,

00:11:03.940 --> 00:11:08.740
um, uh, master on the master branch. So there's

00:11:08.740 --> 00:11:10.759
probably going to be a release in a couple of

00:11:10.759 --> 00:11:15.220
months. That already comes with that file explorer

00:11:15.220 --> 00:11:17.899
in case you don't want to use the IC. Okay. Yes.

00:11:18.570 --> 00:11:22.269
What other file explorers or how do people navigate

00:11:22.269 --> 00:11:26.230
around files then if they don't use Yasi and

00:11:26.230 --> 00:11:29.210
if the file explorer is not present, do they

00:11:29.210 --> 00:11:33.889
use something else? Yes. So to do that, you have,

00:11:33.909 --> 00:11:37.809
first of all, you have a file taker. You press

00:11:37.809 --> 00:11:41.850
space F and it opens all of the files in the

00:11:41.850 --> 00:11:44.870
Helix's current working directory and it searches

00:11:44.870 --> 00:11:47.580
them recursively. so let's say i want to open

00:11:47.580 --> 00:11:51.080
a specific file like main .rs i can just type

00:11:51.080 --> 00:11:54.220
it here and it's going to bring it up and i can

00:11:54.220 --> 00:11:59.700
open it okay so that's the file picker yes you

00:11:59.700 --> 00:12:07.759
can f yes space f okay space f okay okay wonderful

00:12:07.759 --> 00:12:12.879
okay next you have um you can absolutely open

00:12:12.879 --> 00:12:16.830
absolute files by using the open command. And

00:12:16.830 --> 00:12:21.070
this brings up like a menu which has all of the

00:12:21.070 --> 00:12:24.269
directories and all of the files right in front

00:12:24.269 --> 00:12:27.289
of you. And you can just tab through them and

00:12:27.289 --> 00:12:32.570
open whichever one you want. Okay. So you just

00:12:32.570 --> 00:12:37.730
type colon and that brings up that menu. Just

00:12:37.730 --> 00:12:41.769
like a new one. Colon open and it will bring

00:12:41.769 --> 00:12:46.470
this up. Okay. And then if you press like enter

00:12:46.470 --> 00:12:48.750
on the directory, it will actually show the files

00:12:48.750 --> 00:12:53.509
inside of this directory. Okay. So if you press

00:12:53.509 --> 00:12:55.789
enter, it's just going to show you the files

00:12:55.789 --> 00:13:01.649
in that directory, right? Yes. Okay. And you

00:13:01.649 --> 00:13:05.490
hit enter to open that file. Yeah. What else

00:13:05.490 --> 00:13:08.149
can you show us around in Helix? What else did

00:13:08.149 --> 00:13:15.070
you like about it compared to any of them? So

00:13:15.070 --> 00:13:19.409
I like that, just the one I showed you. It shows

00:13:19.409 --> 00:13:22.190
you the files which are available. I don't think

00:13:22.190 --> 00:13:26.629
you get this in NeoVim. So it's more user -friendly

00:13:26.629 --> 00:13:30.750
in this regard. Secondly, I have this disabled

00:13:30.750 --> 00:13:36.230
in my config. But if I toggle auto info, now

00:13:36.230 --> 00:13:39.509
when I press space, for example, it will show

00:13:39.509 --> 00:13:42.690
me all of the available commands that you can

00:13:42.690 --> 00:13:47.279
use. um in helix so it i know in new york there's

00:13:47.279 --> 00:13:50.440
like a plugin called witch key it's basically

00:13:50.440 --> 00:13:55.899
like that but it's built in okay it's built in

00:13:55.899 --> 00:14:02.139
yeah can you say you wanted to global search

00:14:02.139 --> 00:14:05.419
you just go space slash and then you can search

00:14:05.419 --> 00:14:09.559
for any word and then you will have um you will

00:14:09.559 --> 00:14:16.529
see entries which contain this Okay. So regarding

00:14:16.529 --> 00:14:19.149
the configuration then, how do you manage it?

00:14:19.250 --> 00:14:23.970
Is it a single file? Yeah, so there's two files.

00:14:24.330 --> 00:14:28.110
The first file is called languages .toml, and

00:14:28.110 --> 00:14:30.889
it has all of your language configurations. And

00:14:30.889 --> 00:14:33.590
then another one is your actual configs. So I

00:14:33.590 --> 00:14:37.669
will show you in my terminal. I will cd do .config

00:14:37.669 --> 00:14:43.830
slash helix. And... There we go, config .tunnel.

00:14:43.929 --> 00:14:49.230
But these files are generated by NixOS, since

00:14:49.230 --> 00:14:54.309
I'm using Nix. But you can also edit them manually.

00:14:56.309 --> 00:15:02.929
Okay. So you have those two files? Yes. This

00:15:02.929 --> 00:15:06.110
is another one. As you can see, it's sim -linked

00:15:06.110 --> 00:15:17.360
to this Nix store. Okay. Okay. Okay. Let's try

00:15:17.360 --> 00:15:22.500
something. I'm going to switch to my screen here.

00:15:22.720 --> 00:15:25.360
So you can just guide me through the process

00:15:25.360 --> 00:15:27.840
a little bit. Okay. That's okay with you. Okay.

00:15:28.139 --> 00:15:31.779
Yeah. So after installing it, I didn't do anything.

00:15:31.940 --> 00:15:34.919
And I noticed that there's this directory here

00:15:34.919 --> 00:15:40.700
already. Right. But it's empty. So or is it not?

00:15:40.820 --> 00:15:44.919
Yeah, it's empty. Do you need to add the files

00:15:44.919 --> 00:15:48.419
there? Yeah, so if you want to configure, you

00:15:48.419 --> 00:15:53.179
have to make your new file called config .toml

00:15:53.179 --> 00:16:00.799
in the directory. Okay. Do you have to start

00:16:00.799 --> 00:16:05.340
with like a base config? Is there something that

00:16:05.340 --> 00:16:07.519
I should copy from the documentation or something?

00:16:08.980 --> 00:16:12.620
So, in all honesty, The only thing you should

00:16:12.620 --> 00:16:17.419
really copy would be the language configurations.

00:16:18.299 --> 00:16:21.019
It's not already built in because quite a lot

00:16:21.019 --> 00:16:23.039
of language configurations, like for Rust, for

00:16:23.039 --> 00:16:26.000
example, it's already built in. So you install

00:16:26.000 --> 00:16:29.580
Helix, you open a Rust project, and you just

00:16:29.580 --> 00:16:33.340
get Rust analyzer support for free. You don't

00:16:33.340 --> 00:16:38.000
have to do anything about it. Okay. Yeah. Let's

00:16:38.000 --> 00:16:41.179
try something then. I'm going to switch to my

00:16:41.179 --> 00:16:45.299
.files directory here. Okay. And I'm going to

00:16:45.299 --> 00:16:51.320
open Helix HX. Okay. So I get this. Yes. You

00:16:51.320 --> 00:16:55.340
said that if I type, how do I get the picker?

00:16:55.419 --> 00:17:00.080
Space F. Yes. Space F. You can open, write the

00:17:00.080 --> 00:17:03.240
name of any file and you just jump to it instantly.

00:17:04.740 --> 00:17:08.779
Okay. So this is my CSHRC file. I have the motions.

00:17:09.849 --> 00:17:14.029
right yeah okay it's sort of like the motions

00:17:14.029 --> 00:17:18.869
but it's a bit special because helix follows

00:17:18.869 --> 00:17:23.630
a slightly different motions than them what are

00:17:23.630 --> 00:17:28.529
the differences you would say so in neoven for

00:17:28.529 --> 00:17:32.089
example if you want to delete word you you say

00:17:32.089 --> 00:17:38.430
d i w so delete um inside word but in helix it's

00:17:38.430 --> 00:17:42.119
reversed so first you would select the word with

00:17:42.119 --> 00:17:49.920
um m i match in yeah m i m i w selects the word

00:17:49.920 --> 00:18:00.720
okay and then d will delete it okay now is there

00:18:00.720 --> 00:18:03.960
b for facial mode what's the difference if i

00:18:03.960 --> 00:18:11.539
do v i w because you show me miw and that selects

00:18:11.539 --> 00:18:15.160
it right but yes is there visual mode as well

00:18:15.160 --> 00:18:19.500
can i do biw yeah it's called so this is select

00:18:19.500 --> 00:18:23.799
mode and it so when you move your cursor in select

00:18:23.799 --> 00:18:26.440
mode instead of creating a new selection it's

00:18:26.440 --> 00:18:29.259
going to extend the current one so just try pressing

00:18:29.259 --> 00:18:35.200
j in when you have pressed v okay b and then

00:18:35.200 --> 00:18:37.660
i press j yeah okay yes so as you can see it

00:18:37.660 --> 00:18:43.380
extend it extends the selection and um and the

00:18:43.380 --> 00:18:45.680
benefit of this is that when you do something

00:18:45.680 --> 00:18:49.500
like delete you instantly see what got changed

00:18:49.500 --> 00:18:52.500
as opposed to vim where sometimes you have to

00:18:52.500 --> 00:18:55.599
do a little bit of guessing as to what text will

00:18:55.599 --> 00:18:57.960
actually change especially if you're changing

00:18:57.960 --> 00:19:02.500
a lot of text i would like for you to show that

00:19:02.500 --> 00:19:05.160
to make you some that getting it hold on how

00:19:05.160 --> 00:19:09.500
do i do you know if i can to exit out of insert

00:19:09.500 --> 00:19:16.900
mode into normal mode i usually use kj um is

00:19:16.900 --> 00:19:21.000
that configurable uh yeah i'm pretty sure you

00:19:21.000 --> 00:19:24.460
can do it uh but i haven't done this myself because

00:19:24.460 --> 00:19:28.400
i have on my keyboard i have escape uh very close

00:19:28.400 --> 00:19:32.799
to the home row so i can it's very easy for me

00:19:32.799 --> 00:19:35.940
to Exit, but if you're on a regular keyboard,

00:19:36.220 --> 00:19:39.779
I understand you would like to do that. So one

00:19:39.779 --> 00:19:43.000
of the things here on caps lock, but I just got

00:19:43.000 --> 00:19:47.880
used to to KJ already. I don't use the caps lock

00:19:47.880 --> 00:19:51.279
here on my pinky, but I'm pretty sure it can

00:19:51.279 --> 00:19:54.619
be done probably, right? Yeah, most likely. Yeah.

00:19:55.400 --> 00:19:59.640
Okay. Do you mind just sharing about that visual

00:19:59.640 --> 00:20:02.910
mode? I didn't get it. Visual. the difference

00:20:02.910 --> 00:20:07.809
between the v and the m uh yes so let me go into

00:20:07.809 --> 00:20:14.069
my project which i've been working on and let's

00:20:14.069 --> 00:20:16.769
say um i just want to select this function it

00:20:16.769 --> 00:20:20.630
selects it selects inside of the curly braces

00:20:20.630 --> 00:20:24.670
how did you select it what did you type so i

00:20:24.670 --> 00:20:29.829
type m let me let me bring up the auto info So

00:20:29.829 --> 00:20:32.450
you can see which keys I'm pressing. So I type

00:20:32.450 --> 00:20:37.569
M, match, match around, and I type which character

00:20:37.569 --> 00:20:41.849
I want to match my selection around. So that

00:20:41.849 --> 00:20:44.910
would be the curly braces. And now it selects

00:20:44.910 --> 00:20:48.930
everything inside of the curly braces. I press

00:20:48.930 --> 00:20:52.890
D, and it deletes the selection. I can just undo

00:20:52.890 --> 00:21:02.220
it with U. Okay, so M is to match. Yeah. Okay.

00:21:02.220 --> 00:21:05.519
And you have to be on the curly brace to run

00:21:05.519 --> 00:21:10.059
MA curly brace, right? Yeah, and you will match

00:21:10.059 --> 00:21:14.099
around the curly brace. But you don't have to

00:21:14.099 --> 00:21:16.599
be inside of it. I mean, you don't have to be

00:21:16.599 --> 00:21:19.359
on it. You can be inside of it as well. For example,

00:21:19.420 --> 00:21:22.619
if I do this, it's going to do the same thing.

00:21:23.599 --> 00:21:27.779
Basically selecting the closest one. Okay, makes

00:21:27.779 --> 00:21:32.440
sense. Okay. And how is this different to V?

00:21:32.559 --> 00:21:36.240
When would you use V then? Like, I'm used to

00:21:36.240 --> 00:21:40.819
V in visual mode in any of it, right? So what's

00:21:40.819 --> 00:21:43.579
the difference there? So here, if you want to

00:21:43.579 --> 00:21:47.900
use V, you would usually use it when you already

00:21:47.900 --> 00:21:50.819
have a selection. But as you can see, when I

00:21:50.819 --> 00:21:54.319
press J, it just resets the selection. But if

00:21:54.319 --> 00:21:58.410
I wanted to say... um i have i have this and

00:21:58.410 --> 00:22:01.349
i wanted to extend to also include the more the

00:22:01.349 --> 00:22:05.829
more word i just press v and now when i move

00:22:05.829 --> 00:22:08.309
it doesn't reset my selection and i can just

00:22:08.309 --> 00:22:12.210
move until i get the more word in my selection

00:22:12.210 --> 00:22:15.910
and then i can act on it if you just hold down

00:22:15.910 --> 00:22:19.809
x it will increase the selection like this and

00:22:19.809 --> 00:22:22.309
then you press semicolon to reset it if you want

00:22:22.309 --> 00:22:29.500
x what is x for um x is basically extends um

00:22:29.500 --> 00:22:33.819
until the line bounds and then you press it again

00:22:33.819 --> 00:22:36.960
and it goes to the next line and it repeats this

00:22:36.960 --> 00:22:45.940
so that is x right yes so is it oh that is to

00:22:45.940 --> 00:22:50.680
select the entire line it's similar to the capital

00:22:50.680 --> 00:22:57.119
v in the oven yeah okay so it's with x okay and

00:22:57.119 --> 00:23:02.019
um what if for example i wanted to select this

00:23:02.019 --> 00:23:07.920
uh this and i wanted to select this could i do

00:23:07.920 --> 00:23:16.500
it like this one and this one just those um yes

00:23:16.500 --> 00:23:19.019
you could actually do that um it would be a little

00:23:19.019 --> 00:23:22.180
bit more more like involved so what you would

00:23:22.180 --> 00:23:25.789
do is you select the whole file with percent

00:23:25.789 --> 00:23:30.970
okay i will show you on my online um terminal

00:23:30.970 --> 00:23:35.349
so let's say i wanted to select these comments

00:23:35.349 --> 00:23:40.690
i would first um i would make a selection which

00:23:40.690 --> 00:23:43.069
includes all of all of the things i want to select

00:23:43.069 --> 00:23:49.170
um and then i press s s brings up like a rejects

00:23:49.170 --> 00:23:53.490
prompt which allows me to make more selections

00:23:53.490 --> 00:23:59.069
based on the regex. So I just search for, in

00:23:59.069 --> 00:24:02.809
regex you have starts with, which is the carrot,

00:24:02.970 --> 00:24:08.750
and then starts with slash. And then this, this

00:24:08.750 --> 00:24:12.809
would select the beginning, the comments, as

00:24:12.809 --> 00:24:16.549
lines with comments begin with a slash. And then

00:24:16.549 --> 00:24:20.089
I just press X again, and it will select both

00:24:20.089 --> 00:24:23.200
of those lines. For me and I can just delete

00:24:23.200 --> 00:24:25.380
them if I wanted to or do whatever I need to

00:24:25.380 --> 00:24:30.019
Mmm, you press X to select the entire line. Yes

00:24:30.019 --> 00:24:36.559
Okay, wonderful So as you can see they have multiple

00:24:36.559 --> 00:24:40.119
cursors just built in and this is extremely useful

00:24:40.119 --> 00:24:46.440
for example, let's say that I Would like to rename

00:24:46.440 --> 00:24:50.660
all of the instances where I use lazy lock i

00:24:50.660 --> 00:24:54.819
just select lazy lock and i would like to use

00:24:54.819 --> 00:25:00.619
absolute path so i just i just type std sync

00:25:00.619 --> 00:25:05.220
lazy lock and it just works it's it changed it

00:25:05.220 --> 00:25:10.539
in one place and also on the one down but what

00:25:10.539 --> 00:25:15.500
did you press to do that in right yeah so as

00:25:15.500 --> 00:25:20.380
again i select and then i press f and i enter

00:25:20.380 --> 00:25:25.039
select right search select yeah okay yeah and

00:25:25.039 --> 00:25:28.980
then i type what i want to select which is a

00:25:28.980 --> 00:25:35.700
lazy lock i press enter and now i i type i to

00:25:35.700 --> 00:25:39.779
go into insert mode okay and it goes into insert

00:25:39.779 --> 00:25:45.839
mode at both of those locations yeah and now

00:25:45.839 --> 00:25:49.359
whatever i type it will be repeated for all of

00:25:49.359 --> 00:25:57.920
the cursors and then i just press escape okay

00:25:57.920 --> 00:26:01.579
you press escape and that's it yeah escape to

00:26:01.579 --> 00:26:06.319
exit out of insert mode okay so this is multiple

00:26:06.319 --> 00:26:08.619
cursors you mentioned that it's already built

00:26:08.619 --> 00:26:12.779
in um into helix right yeah that's like the core

00:26:12.779 --> 00:26:19.509
editing model um is part of it okay What else

00:26:19.509 --> 00:26:25.009
do you use multiple cursors for? I usually use

00:26:25.009 --> 00:26:28.470
it for making a lot of modifications to the file

00:26:28.470 --> 00:26:33.849
and doing stuff like refactors. So actually,

00:26:33.950 --> 00:26:39.049
I have made a small website for this. It's called

00:26:39.049 --> 00:26:46.390
Helix Golf. Helix Golf. One second, let me find

00:26:46.390 --> 00:26:52.789
it. So this is just a small website which has

00:26:52.789 --> 00:26:55.890
some examples on how Helix can be used to do

00:26:55.890 --> 00:27:00.650
refactoring. So let's just take this example

00:27:00.650 --> 00:27:04.809
with JavaScript. So here you have an object,

00:27:05.109 --> 00:27:09.529
and you would like to turn this object into basically

00:27:09.529 --> 00:27:14.569
an array of tuples, where first you have the

00:27:14.569 --> 00:27:18.869
key, and then you have the value, which is the

00:27:18.869 --> 00:27:22.690
hex. And here we describe what we need to do.

00:27:23.789 --> 00:27:26.049
So we have this command, but I would like to

00:27:26.049 --> 00:27:29.690
show it live, how to do it live. So let me just

00:27:29.690 --> 00:27:37.150
copy this. And I will make a new file. I will

00:27:37.150 --> 00:27:41.970
paste using space B, which is a paste from my

00:27:41.970 --> 00:27:46.910
system clipboard. So now I have this. Space B

00:27:46.910 --> 00:27:52.829
for paste. Yeah. Yeah, so first, we can replace

00:27:52.829 --> 00:27:56.569
the surrounding curly braces with square brackets.

00:27:56.809 --> 00:28:01.130
And to do this, we use match. And here we have

00:28:01.130 --> 00:28:05.269
match replace, which replaces, which waits for

00:28:05.269 --> 00:28:10.250
a keyword for a character to replace. So we have,

00:28:10.349 --> 00:28:13.769
so we enter curly braces here. Let me just make

00:28:13.769 --> 00:28:16.930
it bigger. Enter curly braces. And now we can

00:28:16.930 --> 00:28:19.490
press any character. And it's going to replace

00:28:19.490 --> 00:28:21.930
those curly braces with this character. So I

00:28:21.930 --> 00:28:24.549
can go something like exclamation mark. And it's

00:28:24.549 --> 00:28:28.250
going to just replace them. I can do the same

00:28:28.250 --> 00:28:30.650
thing as I did with the curly braces, but with

00:28:30.650 --> 00:28:35.130
this exclamation mark. So I type again, M, match,

00:28:35.269 --> 00:28:38.829
replace. And then instead of curly brace, I'm

00:28:38.829 --> 00:28:41.750
going to type exclamation mark. And it selects

00:28:41.750 --> 00:28:44.349
the exclamation mark. And I can replace it with

00:28:44.349 --> 00:28:46.150
what I want. So I would like to replace with

00:28:46.150 --> 00:28:54.619
a square. square brackets. Okay. Yeah. Now, to

00:28:54.619 --> 00:28:59.099
proceed, we need to select inside of the array.

00:28:59.380 --> 00:29:04.940
And to do this, we use match inside. And once

00:29:04.940 --> 00:29:08.160
again, we select which character we want to make

00:29:08.160 --> 00:29:10.819
the selection inside of. So for us, that would

00:29:10.819 --> 00:29:14.680
be the square brackets. Now we use the S, which

00:29:14.680 --> 00:29:17.559
I mentioned earlier. We can search inside of

00:29:17.559 --> 00:29:23.099
this selection. And let's search for all of the

00:29:23.099 --> 00:29:28.299
words. So in VEGIX, that would be you select

00:29:28.299 --> 00:29:34.740
all the words and then plus. And then now we

00:29:34.740 --> 00:29:37.720
have selected the words. I would like to remove

00:29:37.720 --> 00:29:41.299
the selections from the strings. So the ones

00:29:41.299 --> 00:29:44.940
who have double quotes. and to do this you can

00:29:44.940 --> 00:29:47.960
uh so basically in helix you have the concept

00:29:47.960 --> 00:29:52.740
of multiple cursors and they have um so you have

00:29:52.740 --> 00:29:55.240
primary selection and you have secondary selection

00:29:55.240 --> 00:29:59.059
at the moment my primary selection is at the

00:29:59.059 --> 00:30:03.400
apricot as you can see them it's slightly lighter

00:30:03.400 --> 00:30:08.579
the highlighting yeah so if i press a closing

00:30:08.579 --> 00:30:11.700
parentheses it's going to switch my primary selection

00:30:11.700 --> 00:30:15.210
to the next selection so now the second selection

00:30:15.210 --> 00:30:22.329
is my primary and now i can press comma to remove

00:30:22.329 --> 00:30:27.210
this from my selections okay and as you can see

00:30:27.210 --> 00:30:29.730
it's made lightning my primary selection now

00:30:29.730 --> 00:30:34.529
yep yeah i'm just going to repeat this go to

00:30:34.529 --> 00:30:37.950
the next word with uh closing parentheses and

00:30:37.950 --> 00:30:40.529
i'm going to remove this from selection again

00:30:41.230 --> 00:30:45.069
And I'll do the same with this one. So now I

00:30:45.069 --> 00:30:48.529
have three selections, which are the three keys

00:30:48.529 --> 00:30:53.390
of the object that we had. And I want to surround

00:30:53.390 --> 00:30:57.049
each selection with double quotes. And to do

00:30:57.049 --> 00:31:01.069
this, you use M, which is match. Then you do

00:31:01.069 --> 00:31:05.569
surround. So you add surrounding with MS. And

00:31:05.569 --> 00:31:07.589
then you enter which character you would like

00:31:07.589 --> 00:31:11.609
to surround each selection with. So for us, that

00:31:11.609 --> 00:31:15.130
would be double quotes. So I'm going to press

00:31:15.130 --> 00:31:20.670
double quotes here. And now we have quotes here

00:31:20.670 --> 00:31:26.329
and also at them for the objects, for the keys

00:31:26.329 --> 00:31:30.230
and the values. Yeah. So next, we're going to

00:31:30.230 --> 00:31:33.890
replace these columns. We're going to replace

00:31:33.890 --> 00:31:37.210
them with commas. How did you select the columns?

00:31:38.109 --> 00:31:39.970
because you had something else selected before

00:31:39.970 --> 00:31:43.509
what did you do there uh yeah so i had the these

00:31:43.509 --> 00:31:47.109
words selected i just pressed l and it moves

00:31:47.109 --> 00:31:52.130
my cursor to the left um but it cleared my selection

00:31:52.130 --> 00:31:55.890
which i had so let's say i just wanted to keep

00:31:55.890 --> 00:32:00.210
my selection i would press v and then i would

00:32:00.210 --> 00:32:04.450
then i would press l again and as you can see

00:32:04.450 --> 00:32:09.380
this time it didn't It didn't remove the selection

00:32:09.380 --> 00:32:11.880
which I had, but rather it created a new one.

00:32:12.759 --> 00:32:19.559
Okay. Yeah. So now I will press semicolon to

00:32:19.559 --> 00:32:22.180
collapse these selections into just the cursors.

00:32:22.759 --> 00:32:27.819
And I can press R, which is for replace. I replace

00:32:27.819 --> 00:32:32.680
the character at the cursor with a comma. So

00:32:32.680 --> 00:32:40.009
now we are almost there. Next, what else do we

00:32:40.009 --> 00:32:45.269
have to do? As you can see here, we have square

00:32:45.269 --> 00:32:49.890
brackets which surround each line except for

00:32:49.890 --> 00:32:55.250
the final comma. So here what we'll do is move

00:32:55.250 --> 00:33:00.170
all of our cursors to the end by using GL. So

00:33:00.170 --> 00:33:03.950
press G. As you can see, there's lots of options

00:33:03.950 --> 00:33:07.140
we could use. And it says... l which is go to

00:33:07.140 --> 00:33:13.880
line end oh so we do that yeah and it moved us

00:33:13.880 --> 00:33:17.640
to the end of the line and now i press h to go

00:33:17.640 --> 00:33:23.619
backwards by one character i can do v to go into

00:33:23.619 --> 00:33:29.220
select mode and then g s and this will move me

00:33:29.220 --> 00:33:34.160
to the first non uh the first non -blank character

00:33:34.160 --> 00:33:40.319
in the line G, S, S, S, and Sam. G, and then

00:33:40.319 --> 00:33:47.700
S. Okay, I see it. Yeah. Now, I do the similar

00:33:47.700 --> 00:33:50.720
thing to what I did before, surrounding our selection.

00:33:51.140 --> 00:33:54.099
But this time, we're going to surround it with

00:33:54.099 --> 00:33:58.240
the square brackets. So you do MS, square brackets,

00:33:58.359 --> 00:34:00.539
and then surround each selection with the square

00:34:00.539 --> 00:34:06.819
brackets. Got it. i have a question yeah how

00:34:06.819 --> 00:34:10.119
did you set the multiple cursors then when you

00:34:10.119 --> 00:34:13.400
started how was your cursor moving on each line

00:34:13.400 --> 00:34:15.780
how did you do that like if you wanted to do

00:34:15.780 --> 00:34:18.239
three cursors right now again there how do you

00:34:18.239 --> 00:34:21.880
do it yes so uh what you can do is you press

00:34:21.880 --> 00:34:26.119
capital c and it adds a cursor to the next line

00:34:26.119 --> 00:34:30.760
okay and you can also do alt c and it will add

00:34:30.760 --> 00:34:37.000
it will add the cursor to the Wait. Yeah, to

00:34:37.000 --> 00:34:39.280
the line above. So you press Alt -C, it adds

00:34:39.280 --> 00:34:45.300
to the line above. Alt -C, as in tomato? Alt

00:34:45.300 --> 00:34:53.000
-C. C as in cat? Cat, yes, yes. Okay, okay. So

00:34:53.000 --> 00:34:57.000
with Alt -C, you add more cursors. Well, one

00:34:57.000 --> 00:34:59.420
cursor above. And how do you add a cursor below?

00:35:00.139 --> 00:35:06.099
You press capital C, so Shift plus C. Hmm. That's

00:35:06.099 --> 00:35:09.980
the way that you add. And can you add another

00:35:09.980 --> 00:35:13.440
one below? If you type shift C, does it add one

00:35:13.440 --> 00:35:17.059
more? Yes, shift C will add the third one. Okay.

00:35:18.219 --> 00:35:22.260
I see. Okay. So now that you added the three

00:35:22.260 --> 00:35:25.340
cursors, right? I know how to do that. How do

00:35:25.340 --> 00:35:29.179
I select the words inside quotes and the key?

00:35:29.920 --> 00:35:32.840
Side of things in Africa lightning and Delta.

00:35:33.019 --> 00:35:36.300
How do you select those three? inside the quotes

00:35:36.300 --> 00:35:40.400
All right. So when you do movements with the

00:35:40.400 --> 00:35:43.360
cursors, they are mirrored for all of the cursors

00:35:43.360 --> 00:35:47.599
So I just moved inside of the words With on every

00:35:47.599 --> 00:35:51.940
single line and now I use match Match inside

00:35:51.940 --> 00:35:55.199
and now I type which character I want to match

00:35:55.199 --> 00:35:59.570
in and this can be any character so if we wanted

00:35:59.570 --> 00:36:03.150
to we could even uh do something like uh square

00:36:03.150 --> 00:36:05.590
brackets we could match inside the square brackets

00:36:05.590 --> 00:36:09.849
but um we can also just match inside the quotes

00:36:09.849 --> 00:36:13.030
which will select everything inside of those

00:36:13.030 --> 00:36:16.789
quotes match around quotes we'll select including

00:36:16.789 --> 00:36:22.050
the quotes as well okay okay now the recursors

00:36:22.050 --> 00:36:25.280
are at different positions right now if you want

00:36:25.280 --> 00:36:27.940
to move them to the beginning like all of them

00:36:27.940 --> 00:36:30.800
to the opening square bracket how would you move

00:36:30.800 --> 00:36:33.579
the three of them to each opening square bracket

00:36:33.579 --> 00:36:38.559
yeah so you have a key binding g which is go

00:36:38.559 --> 00:36:43.260
to and s so go to start and this will move the

00:36:43.260 --> 00:36:45.500
cursor on every single line to the beginning

00:36:45.500 --> 00:36:51.940
okay okay so would you say then that this multi

00:36:51.940 --> 00:36:56.269
cursor functionality is a huge benefit of using

00:36:56.269 --> 00:37:01.230
Helix? Yeah, absolutely. I think so because we

00:37:01.230 --> 00:37:04.489
don't have this in NeoZen, to do these kind of

00:37:04.489 --> 00:37:08.429
refactors, I just use ChatGPT for that. Just

00:37:08.429 --> 00:37:13.269
ask it to do refactors, but it was unreliable

00:37:13.269 --> 00:37:18.489
and sometimes it's just a waste of time because

00:37:18.489 --> 00:37:20.969
the AI doesn't understand what I want from it.

00:37:21.449 --> 00:37:24.769
But with Helix, I don't need AI for this. I can

00:37:24.769 --> 00:37:30.469
do it myself. And it's much more reliable. There

00:37:30.469 --> 00:37:33.530
is like a plugin in NeoVim. I don't know if you

00:37:33.530 --> 00:37:37.530
heard about it. Vim Visual Multi. I watched the

00:37:37.530 --> 00:37:39.969
video some time ago. I don't know if you ever

00:37:39.969 --> 00:37:43.110
tried it or not. I don't even remember how to

00:37:43.110 --> 00:37:46.409
use it. But I remember that I could have multiple.

00:37:47.559 --> 00:37:52.360
I could do multiple selections, stuff like that.

00:37:52.619 --> 00:37:56.280
But yeah, it's not built -in. You need to install

00:37:56.280 --> 00:38:00.000
an additional plugin. And all of this that you're

00:38:00.000 --> 00:38:02.199
mentioning right now is built into Helix already.

00:38:03.000 --> 00:38:07.280
Yes, absolutely. And what's so great is that...

00:38:07.280 --> 00:38:09.800
Yeah, because if you install something like a

00:38:09.800 --> 00:38:12.280
plugin with multiple cursors, you're just going

00:38:12.280 --> 00:38:15.460
to get extra functionality. But because Helix

00:38:15.460 --> 00:38:19.030
was built... With these multiple cursors in mind,

00:38:19.230 --> 00:38:22.309
the whole editor is integrated around these multiple

00:38:22.309 --> 00:38:25.769
cursors. Everything was designed around these

00:38:25.769 --> 00:38:29.289
cursors. So you get more of a complete experience

00:38:29.289 --> 00:38:31.690
than if you use something like multi -cursor

00:38:31.690 --> 00:38:34.590
plugin. What other things do you like about Helix

00:38:34.590 --> 00:38:37.369
that you want to show? What else do you have

00:38:37.369 --> 00:38:41.429
there on the website? Right, so I have more examples.

00:38:43.690 --> 00:38:47.170
this this one we just convert so this is a comma

00:38:47.170 --> 00:38:51.170
separated value and we wanted to convert this

00:38:51.170 --> 00:38:56.389
into a sequel so you you just would like to in

00:38:56.389 --> 00:38:59.389
for all of these you want to insert some values

00:38:59.389 --> 00:39:04.369
into the specific specific table okay you want

00:39:04.369 --> 00:39:08.050
to double that oh yeah sure let's do it so let

00:39:08.050 --> 00:39:12.260
me just copy this so now i'm going to select

00:39:12.260 --> 00:39:17.000
the whole file by using percent and if i yeah

00:39:17.000 --> 00:39:22.380
and if i do space on capital arm it's going to

00:39:22.380 --> 00:39:26.420
replace um the selection with what i have in

00:39:26.420 --> 00:39:36.420
the system clipboard okay yeah so um so now i'm

00:39:36.420 --> 00:39:39.260
going to try doing it before i forget this let

00:39:39.260 --> 00:39:41.500
me ask you something Is there something like

00:39:41.500 --> 00:39:44.679
this? Because I tend to forget what each key

00:39:44.679 --> 00:39:47.559
does. And it's nice to have which key, right?

00:39:47.619 --> 00:39:50.519
I can press space and I can get all the different

00:39:50.519 --> 00:39:53.440
options that there are. But sometimes I don't

00:39:53.440 --> 00:39:55.679
want to do this. Sometimes I want to open a menu,

00:39:55.739 --> 00:39:58.480
which is a picker, Neobim. And I can search,

00:39:58.539 --> 00:40:02.019
for example, for... What example can I give you?

00:40:05.219 --> 00:40:08.440
Let's say that I don't remember how... I upload

00:40:08.440 --> 00:40:11.159
an image from near them to imager, I don't remember

00:40:11.159 --> 00:40:14.099
the key map. So I just search for imager. And

00:40:14.099 --> 00:40:17.239
I see here, oh, so it's alt I, that's the key

00:40:17.239 --> 00:40:19.920
map that I use. Or for example, if I don't remember

00:40:19.920 --> 00:40:25.239
how I paste that GitHub link, right, it's alt

00:40:25.239 --> 00:40:29.280
colon, so I can search for my key maps, I'm not

00:40:29.280 --> 00:40:31.840
going to remember anything that we're discussing

00:40:31.840 --> 00:40:34.039
right now, I'm not going to remember all of the

00:40:34.039 --> 00:40:36.840
difference. key maps that i have to use is there

00:40:36.840 --> 00:40:40.559
a way to search or how do you search just in

00:40:40.559 --> 00:40:45.519
case you forget okay so it's space s or whatever

00:40:45.519 --> 00:40:49.260
is there something to search or how do you refresh

00:40:49.260 --> 00:40:53.739
your memory so there's the command palette um

00:40:53.739 --> 00:40:55.739
if you want to see all of the commands you have

00:40:55.739 --> 00:40:59.619
space and then question mark this will open the

00:40:59.619 --> 00:41:04.650
picker which contains every single command what

00:41:04.650 --> 00:41:09.210
the default key bindings are, and also the description

00:41:09.210 --> 00:41:11.449
of this command. So basically what it's doing.

00:41:12.250 --> 00:41:15.670
So here you have stuff like HL, you have JK,

00:41:15.989 --> 00:41:19.809
but there's also a lot of commands which are

00:41:19.809 --> 00:41:23.989
not bound to anything by default. So for example,

00:41:24.050 --> 00:41:26.869
extend right. As you can see, it just moved my

00:41:26.869 --> 00:41:30.650
cursor to the right, but also extended the selection.

00:41:31.500 --> 00:41:36.579
And it didn't put me into select mode. So there's

00:41:36.579 --> 00:41:40.900
lots of things like that. For example, let's

00:41:40.900 --> 00:41:43.420
say I'm searching for a file. I would like to

00:41:43.420 --> 00:41:47.739
search for main .rs. And then I go back to where

00:41:47.739 --> 00:41:52.519
I was. I want to bring that picker up. And what

00:41:52.519 --> 00:41:55.820
I could do is I could search for it again. But

00:41:55.820 --> 00:41:58.480
alternatively, you could also press space and

00:41:58.480 --> 00:42:02.480
then space single quote. this will open the previous

00:42:02.480 --> 00:42:08.579
picker again so you don't have to type it again

00:42:08.579 --> 00:42:12.400
it just opens for you and then you can just go

00:42:12.400 --> 00:42:16.900
back to it so those are two files that you you

00:42:16.900 --> 00:42:21.099
have open right now correct yes okay so is this

00:42:21.099 --> 00:42:25.400
something similar to this in neovim I if I type,

00:42:25.440 --> 00:42:28.619
well, me, I have this key map configure, right?

00:42:28.699 --> 00:42:32.880
So capital H, I type capital H shows me the four

00:42:32.880 --> 00:42:37.280
buffers that I have open, right? So I can just

00:42:37.280 --> 00:42:40.579
switch between the buffers, but I have them open,

00:42:40.659 --> 00:42:43.059
right? If I want to go to this one is open, this

00:42:43.059 --> 00:42:45.960
one is open. If I want to close it, say that

00:42:45.960 --> 00:42:48.960
I want to close this, just type D in my particular

00:42:48.960 --> 00:42:51.760
case, right? I want to go to this one, I have

00:42:51.760 --> 00:42:55.579
three of three buffers open that's why it's shown

00:42:55.579 --> 00:42:59.320
here is that similar is that something similar

00:42:59.320 --> 00:43:03.260
what you're just showing right now yes so um

00:43:03.260 --> 00:43:05.860
in helix first of all you have the buffer line

00:43:05.860 --> 00:43:09.679
and i have this disabled but you can enable it

00:43:09.679 --> 00:43:13.599
uh pretty like this so you do just type colon

00:43:13.599 --> 00:43:24.110
toggle buffer line and um wait hold on Oh, I

00:43:24.110 --> 00:43:27.670
remember. You have to do set buffer line to enable.

00:43:29.690 --> 00:43:31.630
Yeah, I don't remember how to do it. Let's see

00:43:31.630 --> 00:43:36.650
the docs. The Helix editor. And can you see the

00:43:36.650 --> 00:43:40.369
docs from the editor itself? Or you should go

00:43:40.369 --> 00:43:42.989
to the website? Yeah, I just go to the website.

00:43:43.070 --> 00:43:45.929
At the moment, the docs are not available from

00:43:45.929 --> 00:43:50.889
the actual editor. But in the future, there are...

00:43:51.070 --> 00:43:53.550
plans to have like a help command but in helix

00:43:53.550 --> 00:43:58.130
oh wonderful yeah this is pretty useful you going

00:43:58.130 --> 00:44:00.909
through all this in the video and not having

00:44:00.909 --> 00:44:04.170
it enabled and then enable it that's going to

00:44:04.170 --> 00:44:07.090
help users that don't know nothing about helix

00:44:07.090 --> 00:44:10.269
because it helps us understand yeah how to find

00:44:10.269 --> 00:44:14.329
help and all that stuff also like uh for example

00:44:14.329 --> 00:44:16.829
right now i don't remember how to enable the

00:44:16.829 --> 00:44:20.090
buffer line but i'm showing you how to look for

00:44:20.090 --> 00:44:22.969
the docs and how to figure it out so maybe that

00:44:22.969 --> 00:44:25.929
will also be helpful so let's search for buffer

00:44:25.929 --> 00:44:29.849
line um yeah right so you have configuration

00:44:29.849 --> 00:44:35.829
editor and here you have let me search for buffalo

00:44:35.829 --> 00:44:41.309
with ctrl f right so okay so one of the options

00:44:41.309 --> 00:44:47.579
are either always never or multiple oh i understand

00:44:47.579 --> 00:44:53.340
so if you set buffer line to always it will always

00:44:53.340 --> 00:44:57.519
show which available buffers you have you can

00:44:57.519 --> 00:45:01.800
yeah you can move between them by pressing g

00:45:01.800 --> 00:45:05.420
and then n and this will move you to the next

00:45:05.420 --> 00:45:09.760
buffer and you can do the same but with back

00:45:09.760 --> 00:45:16.130
so you go g b g p right previous go to previous

00:45:16.130 --> 00:45:19.769
and we'll move it to the previous buffer okay

00:45:19.769 --> 00:45:22.210
okay yeah i don't like keeping the buffer line

00:45:22.210 --> 00:45:25.730
enabled too because it distracts me yeah okay

00:45:25.730 --> 00:45:30.449
but you can get a picker where you see the two

00:45:30.449 --> 00:45:32.329
buffers that you have open right how did you

00:45:32.329 --> 00:45:36.309
bring that picker up so you press space and then

00:45:36.309 --> 00:45:39.650
b and it shows you which buffers you have so

00:45:39.650 --> 00:45:42.659
you don't need a buffer line yep i don't need

00:45:42.659 --> 00:45:46.380
it i don't like it okay wonderful so why did

00:45:46.380 --> 00:45:50.659
you have it disabled if i may ask like why why

00:45:50.659 --> 00:45:54.079
do you keep it disabled um i don't because i

00:45:54.079 --> 00:45:56.000
keep it disabled because i don't really need

00:45:56.000 --> 00:45:59.420
it i use key bindings like if i need to see buffers

00:45:59.420 --> 00:46:02.519
i just use space b if i need to open a file i

00:46:02.519 --> 00:46:05.079
just type whatever i need into the file file

00:46:05.079 --> 00:46:10.630
picker so i have most of the ui disabled just

00:46:10.630 --> 00:46:15.389
so it's a minimal stuff okay wonderful okay now

00:46:15.389 --> 00:46:18.650
where were we i got last there so you were gonna

00:46:18.650 --> 00:46:22.090
demo something i remember oh yeah we wanted to

00:46:22.090 --> 00:46:29.570
show how we um do this refactor let me stop you

00:46:29.570 --> 00:46:32.389
a little bit there what's this website is this

00:46:32.389 --> 00:46:35.510
something you created for the community what

00:46:35.510 --> 00:46:39.579
is it yeah so i just made this uh website called

00:46:39.579 --> 00:46:45.340
Helix Golf. It's just basic static website. It's

00:46:45.340 --> 00:46:48.719
on my GitHub. We did have a couple of contributors.

00:46:49.280 --> 00:46:51.760
I believe we have like five pull requests here.

00:46:52.639 --> 00:46:56.559
And I just wanted to let people know about the

00:46:56.559 --> 00:47:02.719
power of Helix, how you can do different transformations

00:47:02.719 --> 00:47:07.059
to text. in Helix, because I don't see this talked

00:47:07.059 --> 00:47:10.360
about as much as NewVim. So in NewVim, you have

00:47:10.360 --> 00:47:15.679
NewVimGolf, and everyone knows about it. I didn't

00:47:15.679 --> 00:47:21.440
know about that. Yeah. Yeah, go on. Sorry. Yeah,

00:47:21.460 --> 00:47:26.619
so let's do it. So let's turn this comma -separated

00:47:26.619 --> 00:47:33.610
values into SQL. Right, so first... You just

00:47:33.610 --> 00:47:37.030
wanted to share a little bit of knowledge about

00:47:37.030 --> 00:47:39.710
Helix with the community, right? So people can

00:47:39.710 --> 00:47:42.969
come here and find examples on how to do basic

00:47:42.969 --> 00:47:46.250
stuff, right? What would they expect? Just like

00:47:46.250 --> 00:47:50.269
multiple cursor examples? Is that what you have

00:47:50.269 --> 00:47:53.489
in the website or you have other stuff? Yeah,

00:47:53.510 --> 00:47:55.389
so this is just one of the things which I made

00:47:55.389 --> 00:48:00.110
for Helix. One more, which is on the Helix GitHub.

00:48:00.869 --> 00:48:04.750
So if you go there. If we go to the Wikipedia

00:48:04.750 --> 00:48:11.489
page, here we have this tutorial. So you have,

00:48:11.489 --> 00:48:14.329
like, tutorial one, getting started, two. It

00:48:14.329 --> 00:48:17.369
teaches you, like, how to use Helix from scratch,

00:48:17.630 --> 00:48:22.590
basically. And this is what I wrote, all of these

00:48:22.590 --> 00:48:27.469
pages, so that people have an easier time. You

00:48:27.469 --> 00:48:32.889
wrote all of that? Yeah, yes. Okay, okay. why

00:48:32.889 --> 00:48:35.570
did you start with that you know like we we needed

00:48:35.570 --> 00:48:38.610
to know who you are what have you done in helix

00:48:38.610 --> 00:48:43.090
so you wrote basically the entire wiki page or

00:48:43.090 --> 00:48:46.710
most of it oh no just be adjusted to everything

00:48:46.710 --> 00:48:50.829
that starts with tutorial is i wrote it oh okay

00:48:50.829 --> 00:48:55.710
wonderful yeah okay what else have you done in

00:48:55.710 --> 00:48:58.750
helix besides your other websites what other

00:48:58.750 --> 00:49:02.230
things have you done in helix Yeah, so in Helix

00:49:02.230 --> 00:49:05.449
specifically, I have a couple of pull requests

00:49:05.449 --> 00:49:14.369
open if we search by my name. Yeah, so I have

00:49:14.369 --> 00:49:18.389
about 24 open pull requests right now. So the

00:49:18.389 --> 00:49:21.010
biggest one that I've been working on is git

00:49:21.010 --> 00:49:26.130
blame. So git blame will allow you to show a

00:49:26.130 --> 00:49:29.550
message at the end of the line. It will show

00:49:29.550 --> 00:49:32.800
you like, the latest commit, which affected this

00:49:32.800 --> 00:49:38.320
line. And it was like my biggest, biggest ever

00:49:38.320 --> 00:49:42.619
pull request to any open source project I've

00:49:42.619 --> 00:49:47.820
done ever. So as you can see, it's about 1400

00:49:47.820 --> 00:49:54.780
lines. Yeah. So here you can see like the documentation,

00:49:54.860 --> 00:49:59.559
which is going to happen when it gets merged.

00:50:00.360 --> 00:50:02.860
And then I was actually amazed how many people

00:50:02.860 --> 00:50:09.500
reacted positively to this. So, but great. Okay.

00:50:09.579 --> 00:50:12.739
So you're waiting on approval then, right? Yeah.

00:50:13.199 --> 00:50:15.360
There have already been like some reviewers,

00:50:15.559 --> 00:50:24.960
like Byron, who is the creator of GitOxide. And

00:50:24.960 --> 00:50:30.469
GitOxide, one second. Right, so Git Oxide is

00:50:30.469 --> 00:50:34.449
basically a rough implementation of Git. It's

00:50:34.449 --> 00:50:36.349
still a work in progress, but they have made

00:50:36.349 --> 00:50:43.050
very, very impressive progress. And Git Oxide

00:50:43.050 --> 00:50:48.030
Blame is what I'm using in my inline Git Blame

00:50:48.030 --> 00:50:52.550
pull request to implement this feature. Okay.

00:50:53.289 --> 00:50:56.389
Yeah, one pull request which actually got merged

00:50:56.389 --> 00:51:04.829
lately. is color swatches. So in CSS, you have

00:51:04.829 --> 00:51:11.269
things such as, you have colors, like you have

00:51:11.269 --> 00:51:17.989
blue, green, and I added a small square, which

00:51:17.989 --> 00:51:22.250
appears next to these colors. And this currently

00:51:22.250 --> 00:51:26.769
got merged, it's on master, but I believe it's

00:51:26.769 --> 00:51:30.650
going to be in the next release. Oh, okay. So

00:51:30.650 --> 00:51:33.710
you can see the actual color. You can get an

00:51:33.710 --> 00:51:36.010
idea on what the color is in the file that you're

00:51:36.010 --> 00:51:40.289
editing. Yeah. And what I really like about this

00:51:40.289 --> 00:51:44.190
implementation is that it doesn't hard -code

00:51:44.190 --> 00:51:47.590
anything. So we don't have to make any sort of

00:51:47.590 --> 00:51:50.809
parser for this RGB function. We don't have to

00:51:50.809 --> 00:51:54.449
hard -code the light green color in the editor.

00:51:55.050 --> 00:51:58.329
What actually happens is we just implement a

00:51:58.329 --> 00:52:03.969
language server protocol method, LSP. On the

00:52:03.969 --> 00:52:06.929
Helix's side, we have implemented it. And then

00:52:06.929 --> 00:52:09.650
on the side of language servers, they have to

00:52:09.650 --> 00:52:14.090
implement some function which returns the colors

00:52:14.090 --> 00:52:18.130
for this file. And then these two will communicate

00:52:18.130 --> 00:52:24.820
together. and produce these colors in the text

00:52:24.820 --> 00:52:29.960
file so basically anyone can actually write their

00:52:29.960 --> 00:52:33.500
own language server that provides these colors

00:52:33.500 --> 00:52:40.440
which actually was done it was done by i believe

00:52:40.440 --> 00:52:45.860
yeah some q60 they have made a custom language

00:52:45.860 --> 00:52:53.610
server which shows colors but for hex code. And

00:52:53.610 --> 00:52:57.349
it works in any file. So it can work in Nix files,

00:52:57.750 --> 00:53:05.369
in Toml files, even has auto -completion. Okay,

00:53:05.369 --> 00:53:11.190
wonderful. That's kind of the advantage. I see.

00:53:11.530 --> 00:53:16.449
And you go to the NeoVim community and grab inspiration

00:53:16.449 --> 00:53:21.960
and ideas. for stuff to implement in helix yeah

00:53:21.960 --> 00:53:26.340
yes yep how does that yeah because that's the

00:53:26.340 --> 00:53:29.619
main goal make the editor better for sure right

00:53:29.619 --> 00:53:33.059
so yeah where do you grab inspiration from other

00:53:33.059 --> 00:53:38.800
editors which ones so uh of course it's new them

00:53:38.800 --> 00:53:43.639
and near them's plugins i'm Yeah, because there's

00:53:43.639 --> 00:53:46.360
some plugins which can just make sense to implement

00:53:46.360 --> 00:53:50.420
into Helix itself. They don't make sense as a

00:53:50.420 --> 00:53:53.820
plugin to Helix. Because in the future, Helix

00:53:53.820 --> 00:53:57.139
will have a plugin system which will allow you

00:53:57.139 --> 00:54:00.659
to write any sort of arbitrary code and you can

00:54:00.659 --> 00:54:05.280
interact with the Helix API. So you have emojis,

00:54:05.340 --> 00:54:09.639
you have a list. a file with 10 ,000 emojis.

00:54:09.780 --> 00:54:13.219
And you can open a picker where every single

00:54:13.219 --> 00:54:16.760
line is one emoji. And this is the kind of functionality

00:54:16.760 --> 00:54:18.980
that you will be able to get when the plugins

00:54:18.980 --> 00:54:23.000
arrive. But at the moment, Helix doesn't have

00:54:23.000 --> 00:54:28.760
plugins. So for me, I don't need plugins because

00:54:28.760 --> 00:54:32.360
I can just edit source code and implement the

00:54:32.360 --> 00:54:36.469
features which I need. and share it with others

00:54:36.469 --> 00:54:41.510
okay so so far there's nothing you're missing

00:54:41.510 --> 00:54:45.389
in helix right um is there something that you

00:54:45.389 --> 00:54:48.409
miss that you say like oh man i had that in neobim

00:54:48.409 --> 00:54:51.090
and i don't have it in helix something that you

00:54:51.090 --> 00:54:57.099
can think of Right, so actually I would be surprised,

00:54:57.320 --> 00:55:00.519
but no, there isn't much that I'm missing. So

00:55:00.519 --> 00:55:04.420
when I was using NeoVim, I had about 60 plugins,

00:55:04.719 --> 00:55:08.219
maybe two or three thousand lines of NeoVim configuration.

00:55:09.079 --> 00:55:12.860
And when I switched to Helix, everything I really

00:55:12.860 --> 00:55:15.820
wanted from all of those plugins was just built

00:55:15.820 --> 00:55:20.519
into the editor itself. So I didn't need to worry

00:55:20.519 --> 00:55:24.539
about... installing like a dozen plugins i didn't

00:55:24.539 --> 00:55:27.199
have to worry about like breaking changes happening

00:55:27.199 --> 00:55:31.239
every week and and me having to fix my config

00:55:31.239 --> 00:55:34.840
things just work uh and this has been the case

00:55:34.840 --> 00:55:37.440
for like uh the couple of months which i'm using

00:55:37.440 --> 00:55:40.519
helix i haven't had any issues with it uh like

00:55:40.519 --> 00:55:42.860
where it just stops working randomly that doesn't

00:55:42.860 --> 00:55:48.380
happen which is one of the amazing okay wonderful

00:55:48.380 --> 00:55:54.500
can you view images in helix So actually, as

00:55:54.500 --> 00:55:59.400
I showed you with Yazy, you can use Yazy to view

00:55:59.400 --> 00:56:04.840
them. Oh, but I mean in a Markdown file. Oh,

00:56:05.000 --> 00:56:07.800
at the moment, there is no such capability. But

00:56:07.800 --> 00:56:11.500
maybe in the future we can have something like

00:56:11.500 --> 00:56:14.500
this. And I think it's possible to implement,

00:56:14.760 --> 00:56:19.760
because we can use, I don't know, like 6L protocol,

00:56:20.099 --> 00:56:23.539
which... is a protocol like for terminals where

00:56:23.539 --> 00:56:26.699
they can display images like in yazi yazi probably

00:56:26.699 --> 00:56:30.159
uses this protocol to display these svgs and

00:56:30.159 --> 00:56:32.219
helix might be able to use something similar

00:56:32.219 --> 00:56:38.820
okay okay because well sometimes i view images

00:56:38.820 --> 00:56:41.260
any of them if you look at my screen right now

00:56:41.260 --> 00:56:46.960
or my blog post especially right so i just need

00:56:46.960 --> 00:56:49.900
to see what the image is, right. So if I jump

00:56:49.900 --> 00:56:52.260
to my blog post here real quick, you're going

00:56:52.260 --> 00:56:54.840
to notice, for example, this article, what is

00:56:54.840 --> 00:56:58.699
this? Let's say that I opened this, this article,

00:56:58.760 --> 00:57:01.559
right? I just quickly want to make sure that

00:57:01.559 --> 00:57:04.000
the image that I have in the file is the correct

00:57:04.000 --> 00:57:06.900
image. So for example, here, right? If I hover

00:57:06.900 --> 00:57:10.360
over it, I can just quickly see Oh, so yeah,

00:57:10.440 --> 00:57:14.929
I do have the right image. But that is Probably

00:57:14.929 --> 00:57:18.329
coming in the future to Helix at some point,

00:57:18.489 --> 00:57:22.250
right? There's actually an open issue about this.

00:57:23.010 --> 00:57:26.869
Let me actually search it up. So Helix editor.

00:57:29.949 --> 00:57:32.070
Let me know when you have it there and I'll switch

00:57:32.070 --> 00:57:38.090
to your screen. Yeah. Let me find it. Image preview.

00:57:38.849 --> 00:57:43.170
I remember seeing something like this. Right,

00:57:43.289 --> 00:57:45.489
so I can't find it, but I do know that in the

00:57:45.489 --> 00:57:48.570
future we will be able to implement this. If

00:57:48.570 --> 00:57:53.869
not in the core, at least with plugins. Okay.

00:57:54.130 --> 00:58:02.730
Yeah. Makes sense. Now, Tmux is a pretty important

00:58:02.730 --> 00:58:08.780
part of my workflow. How does... tmux and um

00:58:08.780 --> 00:58:12.099
helix play around do you use tmux by any chance

00:58:12.099 --> 00:58:16.900
or no i used it for like a little bit but i don't

00:58:16.900 --> 00:58:21.019
use it at the moment i used right so the terminal

00:58:21.019 --> 00:58:23.940
editor which i use which is west term it provides

00:58:23.940 --> 00:58:27.400
with me with all the features which i need and

00:58:27.400 --> 00:58:32.800
just like paints um having different tabs yeah

00:58:32.800 --> 00:58:37.489
okay yeah because If you guys decide to take

00:58:37.489 --> 00:58:40.610
images into consideration, I'm in Tmux right

00:58:40.610 --> 00:58:44.510
now, correct? And I can view images even when

00:58:44.510 --> 00:58:47.429
inside Tmux. So even if you implement image support,

00:58:47.750 --> 00:58:50.329
there's going to be a lot of customers, Helix

00:58:50.329 --> 00:58:53.730
customers probably, that will use Tmux and will

00:58:53.730 --> 00:58:56.469
tell you, hey, my images don't work in Tmux.

00:58:56.630 --> 00:59:03.119
So I'm just bringing it up just in case. I mean,

00:59:03.139 --> 00:59:05.840
we can't know what problems we'll have in the

00:59:05.840 --> 00:59:08.260
future. Maybe we'll have this problem, maybe

00:59:08.260 --> 00:59:12.079
we'll fix it. I will go there and create an issue

00:59:12.079 --> 00:59:15.860
that I cannot see images within CMUX and Helix.

00:59:16.960 --> 00:59:19.159
I'm just playing with you. Just playing with

00:59:19.159 --> 00:59:22.900
you. All right. Let's demo the other thing that

00:59:22.900 --> 00:59:27.099
you were going to show, the CSV demo. Yeah, sure,

00:59:27.159 --> 00:59:38.920
sure. Yeah, so let me just make a new file with

00:59:38.920 --> 00:59:46.400
this. Where are you from, by the way? Oh, yeah,

00:59:46.500 --> 00:59:53.920
so I'm from London, from England. I've been here

00:59:53.920 --> 00:59:57.519
since a very young age, but originally I was

00:59:57.519 --> 01:00:01.300
born in Moldova. Oh, okay. Have you heard about

01:00:01.300 --> 01:00:04.750
it? I have heard about it. I have no idea where

01:00:04.750 --> 01:00:07.090
it is. I'm sorry. Yeah, yeah. I mean, that's

01:00:07.090 --> 01:00:09.710
most people. Most people don't. It's a country

01:00:09.710 --> 01:00:13.570
next to Ukraine. Oh, okay. It's like my country.

01:00:13.909 --> 01:00:16.690
Nobody knows where my country is. It's Guatemala,

01:00:16.710 --> 01:00:19.610
and people are like, what the hell is even that?

01:00:19.710 --> 01:00:24.170
So I'm used to it. Yeah, me too, me too. Okay.

01:00:24.389 --> 01:00:28.269
Okay. I live in London now. Okay, great. Yes.

01:00:28.610 --> 01:00:33.030
So, right, so in Helix. You can see I don't have

01:00:33.030 --> 01:00:35.969
syntax highlighting form comma separated values.

01:00:36.349 --> 01:00:42.670
But I can go use column and then type lang. And

01:00:42.670 --> 01:00:46.389
it will bring up a list of all the languages

01:00:46.389 --> 01:00:49.909
which Helix has syntax highlighting for. And

01:00:49.909 --> 01:00:53.809
then I can set it to whatever I want. So let's

01:00:53.809 --> 01:00:56.690
set, right, so I set it to Rust. It's obviously

01:00:56.690 --> 01:00:59.809
not, it's going to complain syntax error. This

01:00:59.809 --> 01:01:03.329
is not valid Rust. let's set it to comma separates

01:01:03.329 --> 01:01:07.610
values so as you can see now is this just syntax

01:01:07.610 --> 01:01:10.630
highlighting or is it also lsp when you select

01:01:10.630 --> 01:01:15.030
the language like do you get lsp yes you get

01:01:15.030 --> 01:01:18.889
lsp you get syntax highlighting okay and you

01:01:18.889 --> 01:01:21.269
don't need to do anything these come by default

01:01:21.269 --> 01:01:24.610
in helix you don't need to configure lsbs enabled

01:01:24.610 --> 01:01:28.960
by default And what if there's one that is not,

01:01:29.019 --> 01:01:31.000
let's say that you're using a language that is

01:01:31.000 --> 01:01:34.380
not part of Helix, what would you do in that

01:01:34.380 --> 01:01:37.860
case? Yeah, so in this case, once again, you

01:01:37.860 --> 01:01:42.159
go to the Helix wiki, which has Helix editor

01:01:42.159 --> 01:01:48.800
GitHub. Right, so you go to the wiki. Here you

01:01:48.800 --> 01:01:52.380
have all of the language server configurations.

01:01:53.699 --> 01:01:58.110
These include... um hundreds of languages and

01:01:58.110 --> 01:02:03.110
uh for example let's see let's say i wanted support

01:02:03.110 --> 01:02:08.989
for mojo um right so here you have okay so for

01:02:08.989 --> 01:02:10.590
mojo is a bad example because it doesn't have

01:02:10.590 --> 01:02:14.489
but for matlab for example you have these uh

01:02:14.489 --> 01:02:17.690
configs which you can just copy paste into your

01:02:17.690 --> 01:02:21.449
languages .toml this might not be included by

01:02:21.449 --> 01:02:26.510
default but you can easily add it Okay. So there's

01:02:26.510 --> 01:02:29.570
a lot of examples in the documentation. Yes.

01:02:30.550 --> 01:02:40.150
Wonderful. Okay. Thanks. Right. So let's do this.

01:02:40.429 --> 01:02:45.289
So we want to convert this comma separated value

01:02:45.289 --> 01:02:50.949
into SQL. And to do this, as you can see, they

01:02:50.949 --> 01:02:54.010
all begin with the same thing. so they they begin

01:02:54.010 --> 01:02:59.289
with insert into database dot table so first

01:02:59.289 --> 01:03:02.130
let's select everything i press percent it selects

01:03:02.130 --> 01:03:05.369
the whole file and then that's that's the command

01:03:05.369 --> 01:03:08.309
that you have there at the bottom right so we're

01:03:08.309 --> 01:03:13.469
going through that command uh yes oh yeah yeah

01:03:13.469 --> 01:03:17.530
yeah that this one yes but yeah okay as you can

01:03:17.530 --> 01:03:20.349
see it lists all of the explanations here uh

01:03:20.349 --> 01:03:24.610
i will go through Wonderful. Yep. Yes. So I press

01:03:24.610 --> 01:03:28.989
Alt S and it splits my selection into multiple

01:03:28.989 --> 01:03:31.989
lines. So for every single line, I get a new

01:03:31.989 --> 01:03:38.070
selection. Now I press capital I, which will

01:03:38.070 --> 01:03:41.010
move me to insert mode at the beginning of every

01:03:41.010 --> 01:03:45.690
single line. Yeah. And now I can type whatever

01:03:45.690 --> 01:03:52.869
I want. So I just type what I see. on the after

01:03:52.869 --> 01:03:59.230
so the table right and you can see it in real

01:03:59.230 --> 01:04:02.610
time in the three lines not only in one right

01:04:02.610 --> 01:04:05.769
yes so as you can see i type and it adds it to

01:04:05.769 --> 01:04:12.190
every single line at once okay yes um so next

01:04:12.190 --> 01:04:17.050
what do we have here we have uh the the id item

01:04:17.050 --> 01:04:20.429
cost location and here it's actually repeated

01:04:20.429 --> 01:04:26.409
so um now what we are going to do is we're going

01:04:26.409 --> 01:04:30.510
to press t and then we're going to press enter

01:04:30.510 --> 01:04:34.449
and this moves this select until the end of the

01:04:34.449 --> 01:04:39.829
line t right yeah so it's not just special case

01:04:39.829 --> 01:04:43.949
um basically team is a command which allows you

01:04:43.949 --> 01:04:46.929
to move towards any character so let's say i

01:04:46.929 --> 01:04:52.550
go to the um okay just like any of them t yeah

01:04:52.550 --> 01:04:56.489
okay okay got it yeah like te would select to

01:04:56.489 --> 01:05:02.010
them before the e etc you have 50 gray which

01:05:02.010 --> 01:05:06.630
likes backwards okay yeah okay but answer is

01:05:06.630 --> 01:05:10.949
till the end of the line uh yeah because um enter

01:05:10.949 --> 01:05:14.949
is like the new line so you um yeah the lf character

01:05:14.949 --> 01:05:22.550
at the end yes until the end yeah okay because

01:05:22.550 --> 01:05:25.110
in helix and new lines are actual characters

01:05:25.110 --> 01:05:29.030
so you can go you can an lf right the lf character

01:05:29.030 --> 01:05:32.750
or yes yeah it depends it depends on which uh

01:05:32.750 --> 01:05:35.030
text style you have because some of them have

01:05:35.030 --> 01:05:38.789
different characters for end of line okay got

01:05:38.789 --> 01:05:42.769
it yeah so you can press uh y which is going

01:05:42.769 --> 01:05:46.289
to yank the character that we are on and you

01:05:46.289 --> 01:05:49.139
press p and it just inserts a new line because

01:05:49.139 --> 01:05:52.840
that's the character which i have copied okay

01:05:52.840 --> 01:06:00.460
yeah so let's i press shift c to have multiple

01:06:00.460 --> 01:06:08.639
cursors now let's copy all of this i select until

01:06:08.639 --> 01:06:12.139
the end of the line with t enter and then i copy

01:06:12.139 --> 01:06:17.210
it i i paste before the selection by using Shift

01:06:17.210 --> 01:06:23.070
T. And this, hold on, let me just make this so

01:06:23.070 --> 01:06:26.369
you can see it. So now we have two of these.

01:06:27.090 --> 01:06:32.710
And as you can see in here, so the first pair

01:06:32.710 --> 01:06:37.570
of these keys, they don't have any letters in

01:06:37.570 --> 01:06:40.409
them, but the second one does. So what we're

01:06:40.409 --> 01:06:44.070
going to do is let's just delete them, the numbers.

01:06:46.010 --> 01:06:50.150
Once again, you do S, and it will search inside

01:06:50.150 --> 01:06:56.030
of your selection. And in Regex, you have backslash

01:06:56.030 --> 01:07:00.369
D, which is going to select the digits. And if

01:07:00.369 --> 01:07:06.269
you do backslash D +, it will select one or more

01:07:06.269 --> 01:07:12.829
digits. So here I have selected the digits, and

01:07:12.829 --> 01:07:16.940
I'm just going to press D to delete them. like

01:07:16.940 --> 01:07:24.880
this yeah um now right now what are we going

01:07:24.880 --> 01:07:29.380
to do let's just add a closing parentheses at

01:07:29.380 --> 01:07:33.420
the end of a location so okay i'm going to add

01:07:33.420 --> 01:07:41.960
more cursors here and like this right how did

01:07:41.960 --> 01:07:44.880
you add the closing after the multiple cursors

01:07:44.880 --> 01:07:47.260
how did you add the closest closing parentheses

01:07:47.260 --> 01:07:51.400
yeah so i just press i to go into insert mode

01:07:51.400 --> 01:07:54.659
and then i press closing parentheses and it asks

01:07:54.659 --> 01:08:01.300
them all of them at the end okay yeah so now

01:08:01.300 --> 01:08:06.059
we have this uh let's let's write the rest so

01:08:06.059 --> 01:08:11.900
we have values here and then So here we have

01:08:11.900 --> 01:08:17.520
the word surrounded with parentheses. So we want

01:08:17.520 --> 01:08:20.600
to do the same. So once again, we're going to

01:08:20.600 --> 01:08:25.020
do T and then to the new line. So like this.

01:08:25.279 --> 01:08:30.039
And now we do match. Let me turn on auto info.

01:08:30.300 --> 01:08:34.720
So I do auto info so that you can see which commands

01:08:34.720 --> 01:08:40.439
I'm typing. So I do match, surround add. which

01:08:40.439 --> 01:08:44.199
is going to add surround and parentheses like

01:08:44.199 --> 01:08:51.359
this. Okay. Yeah. Um, so what else? Oh yeah.

01:08:51.420 --> 01:08:55.560
As you can see here, we actually have a semicolon

01:08:55.560 --> 01:08:59.640
at the end. So let's not forget that. And, um,

01:08:59.960 --> 01:09:04.500
they, they begin with capital letters. So right

01:09:04.500 --> 01:09:08.489
now, right now you can see that it's location

01:09:08.489 --> 01:09:12.989
but it's lowercase so to change the case uh we

01:09:12.989 --> 01:09:17.189
can do we can do tilde so so enter this character

01:09:17.189 --> 01:09:22.489
and one of your cursors how do you undo if you

01:09:22.489 --> 01:09:26.010
mess something up you just type you to undo yes

01:09:26.010 --> 01:09:28.789
yeah you just do you if you want to redo you

01:09:28.789 --> 01:09:34.189
do shift you okay so it's not okay you yeah and

01:09:34.189 --> 01:09:39.590
shift you okay yeah so i did um hold on one of

01:09:39.590 --> 01:09:43.130
your cursors is moved to the to the right the

01:09:43.130 --> 01:09:46.050
the bottom one how do you move that single cursor

01:09:46.050 --> 01:09:51.130
can you um so i'm not sure if you can move single

01:09:51.130 --> 01:09:54.210
one but what i usually do is just uh for example

01:09:54.210 --> 01:09:58.829
here i would like to select just the l i i go

01:09:58.829 --> 01:10:02.750
into select mode and i go back and now i have

01:10:02.750 --> 01:10:06.550
all of the l's in my selection and now i do s

01:10:07.159 --> 01:10:10.159
to select and i type l and it's going to place

01:10:10.159 --> 01:10:16.060
a cursor at the l okay make sense okay yeah so

01:10:16.060 --> 01:10:20.600
now let's just capitalize the l and let's do

01:10:20.600 --> 01:10:23.819
the same with c and as you can see we have the

01:10:23.819 --> 01:10:27.079
same problem here but we can circumvent it by

01:10:27.079 --> 01:10:29.800
using the same method so you just select make

01:10:29.800 --> 01:10:34.020
sure c is in your selection and then you select

01:10:34.020 --> 01:10:39.369
the c by pressing s And then C, enter. Place

01:10:39.369 --> 01:10:44.569
your cursor on the C. Now you use tilde to change

01:10:44.569 --> 01:10:52.850
the case. Tilde. Tilde, yes. Okay. So let's see

01:10:52.850 --> 01:10:55.909
what else. Oh, yeah. One more thing is all of

01:10:55.909 --> 01:10:59.670
the words in the final parentheses. As you can

01:10:59.670 --> 01:11:03.310
see, they have single quotes around them. Yep.

01:11:03.949 --> 01:11:06.689
So I'm going to select inside of the parentheses.

01:11:07.170 --> 01:11:13.189
Match inside. I type parentheses. And now I'm

01:11:13.189 --> 01:11:17.970
going to do... Let's see, let's see. Is it Alt

01:11:17.970 --> 01:11:23.850
-K? Yeah, so it's Alt -K. I press Alt -K and

01:11:23.850 --> 01:11:30.069
it's different to F. So with F, you input like...

01:11:30.409 --> 01:11:32.989
um some text which you want to select inside

01:11:32.989 --> 01:11:37.229
of your selection but with k you input text which

01:11:37.229 --> 01:11:39.329
you want to be removed from your selection so

01:11:39.329 --> 01:11:43.369
exclude okay yeah so your selection is going

01:11:43.369 --> 01:11:46.989
to be split into multiple smaller ones so you

01:11:46.989 --> 01:11:50.510
can remove the commas from there yes so i type

01:11:50.510 --> 01:12:04.210
comma and one second wait Oh, yeah. So I think

01:12:04.210 --> 01:12:08.850
I remapped it. Yeah, there we go. So I remapped

01:12:08.850 --> 01:12:12.430
it to a different key. Let's see in my config

01:12:12.430 --> 01:12:20.829
what it is. So scnixos. Right. So let's see.

01:12:22.609 --> 01:12:31.149
Shift S. I don't... I think... Yeah, I think

01:12:31.149 --> 01:12:35.340
actually... Shift S will split your selection

01:12:35.340 --> 01:12:39.500
to multiple ones. Yeah. So now that we have this,

01:12:39.779 --> 01:12:47.180
I can do make so match surround add S. And I

01:12:47.180 --> 01:12:50.899
input single quote. And it's going to surround

01:12:50.899 --> 01:12:57.380
each of the selections with a single quote. Yeah,

01:12:57.479 --> 01:13:02.859
I think. I think. Oh, yeah. And we do the same

01:13:02.859 --> 01:13:08.800
with here. So here, I just collapsed my cursor

01:13:08.800 --> 01:13:13.279
into a single one by using a comma. Okay. Yeah.

01:13:13.520 --> 01:13:19.119
So let me make three cursors again. I will select

01:13:19.119 --> 01:13:23.819
inside of the parentheses with mi opening parentheses.

01:13:24.319 --> 01:13:29.539
And then here, as you can see, we have item,

01:13:29.600 --> 01:13:33.979
which is capital. The first letter is capital.

01:13:34.840 --> 01:13:38.880
Let's change it to lowercase. And tilde? You

01:13:38.880 --> 01:13:44.439
just use tilde? Tilde, yes. And you go match

01:13:44.439 --> 01:13:48.439
inside of the parentheses. Next, you select...

01:13:48.439 --> 01:13:52.340
So you want to select the words. So you can do

01:13:52.340 --> 01:13:54.500
this with Regex pretty easily. You just press

01:13:54.500 --> 01:13:59.140
backslash W, which selects a character which

01:13:59.140 --> 01:14:03.020
is a wordly character. and then plus means one

01:14:03.020 --> 01:14:07.319
or more more of these so by doing this i have

01:14:07.319 --> 01:14:13.680
selected each every single word okay yep yeah

01:14:13.680 --> 01:14:17.739
so and now i just do the same thing i go match

01:14:17.739 --> 01:14:24.020
surround add um and grave i press the grade and

01:14:24.020 --> 01:14:30.609
it added um the back ticks So I think we're done

01:14:30.609 --> 01:14:39.930
now. Yep. Oh, hold on. Yep. Yep. Okay. Wonderful.

01:14:40.449 --> 01:14:46.649
Yeah, that explains really well how this multiple

01:14:46.649 --> 01:14:50.149
cursor functionality works. I think that's going

01:14:50.149 --> 01:14:53.250
to help a lot of people see the power of Helix.

01:14:53.630 --> 01:14:57.529
Yes. Have you heard about the joke, the Helix

01:14:57.529 --> 01:15:03.560
joke? By the primary joke, I cannot say it but

01:15:03.560 --> 01:15:12.300
what else do you want to show? Why you can't

01:15:12.300 --> 01:15:18.359
say Because it's a It's a bad joke. Okay. Okay.

01:15:18.500 --> 01:15:22.859
Oh, yeah Yeah, sure. Um, so what would you like

01:15:22.859 --> 01:15:26.880
to get to next? What else do you want to show?

01:15:27.020 --> 01:15:29.720
What else do you think it would be useful for

01:15:29.720 --> 01:15:34.300
new people to know about? Let's see. How long

01:15:34.300 --> 01:15:37.619
have we been here? An hour and a half. If you

01:15:37.619 --> 01:15:40.899
have time another day, we can do another session.

01:15:41.020 --> 01:15:45.340
Right. Like so I'm going to post this video once

01:15:45.340 --> 01:15:48.020
it's ready and I post it in the Helix community.

01:15:48.859 --> 01:15:51.920
And let's see what people say there. Right. Like,

01:15:52.079 --> 01:15:55.069
hey. I want to learn about this, this. So if

01:15:55.069 --> 01:15:57.090
there's someone still watching the video, please

01:15:57.090 --> 01:16:00.829
let me know in the video or in the Reddit post

01:16:00.829 --> 01:16:03.909
if you would like to learn about something specific.

01:16:04.590 --> 01:16:07.550
And if you're willing to meet again, Nick, and

01:16:07.550 --> 01:16:10.090
explain that would be great. But it's up to you,

01:16:10.109 --> 01:16:15.590
right? Yeah. If you want to do it, of course.

01:16:16.729 --> 01:16:22.199
I mean, it sounds good. Sounds good. Okay, so

01:16:22.199 --> 01:16:27.239
what else do you want to show before we wrap

01:16:27.239 --> 01:16:29.500
it up? And in the next call, if we have another

01:16:29.500 --> 01:16:31.920
one, we can get to know you a little bit better.

01:16:32.319 --> 01:16:35.460
Sure. Would you like to show something else?

01:16:36.239 --> 01:16:39.180
Yeah, I mean, let's look at the Helix documentation.

01:16:39.899 --> 01:16:42.800
Maybe there's something which will inspire me

01:16:42.800 --> 01:16:47.720
to show off some cool features. Okay. Right,

01:16:47.899 --> 01:16:53.090
so let's go into configuration. editor and here

01:16:53.090 --> 01:16:57.270
you can see all of them um config options oh

01:16:57.270 --> 01:17:01.250
yeah one thing i want to note is that when you

01:17:01.250 --> 01:17:05.010
as you've seen me do i use toggle and i use like

01:17:05.010 --> 01:17:08.109
buffer line for example so whatever you like

01:17:08.109 --> 01:17:11.270
about helix is that when you do toggle you can

01:17:11.270 --> 01:17:14.729
see all of the config options on the screen and

01:17:14.729 --> 01:17:18.210
you can just tap through all of them and it will

01:17:19.599 --> 01:17:23.380
um show you like every single one in the future

01:17:23.380 --> 01:17:27.619
we also might have something like help so you

01:17:27.619 --> 01:17:30.279
you will be able to see which what each config

01:17:30.279 --> 01:17:36.000
option does in like in in this concept yeah so

01:17:36.000 --> 01:17:39.479
like above here you would be able to know what

01:17:39.479 --> 01:17:44.680
it will do okay yeah and similar similarly you

01:17:44.680 --> 01:17:48.220
can use that with themes so the theme command

01:17:48.779 --> 01:17:51.560
it will show you all of the themes and now you

01:17:51.560 --> 01:17:55.239
press tab and you can cycle through them so you

01:17:55.239 --> 01:18:00.319
cycle through yeah i'm not gonna do it fast just

01:18:00.319 --> 01:18:04.199
in case someone has like um someone's gonna react

01:18:04.199 --> 01:18:07.260
negatively to it but you can you can go through

01:18:07.260 --> 01:18:10.560
all of them um and it will show you each one

01:18:10.560 --> 01:18:16.020
oh and okay yeah okay and what if i want to create

01:18:16.020 --> 01:18:19.439
if you if you look at my screen i have a custom

01:18:19.439 --> 01:18:22.800
color scheme right i don't create i didn't create

01:18:22.800 --> 01:18:25.539
a color scheme for this right so it's just some

01:18:25.539 --> 01:18:28.000
colors that i applied can i do the same in helix

01:18:28.000 --> 01:18:30.180
if i want to apply my own custom color scheme

01:18:30.180 --> 01:18:33.840
yes yeah you can absolutely do that so i even

01:18:33.840 --> 01:18:38.100
made my own color scheme um and it's actually

01:18:38.100 --> 01:18:42.619
pretty simple to do because it's just in a tumble

01:18:42.619 --> 01:18:47.420
file let's see if i can find it While you're

01:18:47.420 --> 01:18:51.520
looking for that, would you say that Helix is

01:18:51.520 --> 01:18:54.340
a good project if you want to get started with

01:18:54.340 --> 01:18:58.960
Rust? Oh, yeah, absolutely. So the Helix code

01:18:58.960 --> 01:19:04.220
base is very clean, very easy to follow. And

01:19:04.220 --> 01:19:08.659
from what I've seen, it achieves a surprisingly

01:19:08.659 --> 01:19:11.340
large amount of features compared to its low

01:19:11.340 --> 01:19:15.420
code size. So I think Helix has like... About

01:19:15.420 --> 01:19:20.439
70 ,000 lines of code in Rust. And I looked at

01:19:20.439 --> 01:19:23.520
how many lines of code NeoVim has, for example.

01:19:23.819 --> 01:19:29.520
And that is like 200 ,000 or more. And most of

01:19:29.520 --> 01:19:34.439
it is in C or Lua. And then you have Zed. Zed

01:19:34.439 --> 01:19:39.000
also is written in Rust. But I think it has almost

01:19:39.000 --> 01:19:43.789
a million lines of code. It's kind of impressive

01:19:43.789 --> 01:19:51.189
how far Helix got. If you compare its code base

01:19:51.189 --> 01:19:56.029
to the size of other editor code bases. Okay.

01:19:56.229 --> 01:20:00.149
So if I'm like, okay, I want to learn about Rust.

01:20:00.470 --> 01:20:04.409
If I get involved with Helix, would that help

01:20:04.409 --> 01:20:07.409
me in my process of learning Rust? If I want

01:20:07.409 --> 01:20:10.810
to contribute to Helix and all that stuff? So

01:20:10.810 --> 01:20:13.029
I would recommend contributing to something that

01:20:13.029 --> 01:20:17.069
you're personally interested in. And that is

01:20:17.069 --> 01:20:20.069
a good way to keep yourself motivated to work

01:20:20.069 --> 01:20:26.090
on projects. So for me, this was Helix. I basically

01:20:26.090 --> 01:20:30.109
learned Rust by contributing to Helix. I think

01:20:30.109 --> 01:20:34.449
from day two or three since I started with Rust,

01:20:34.649 --> 01:20:37.289
I made my first full request to Helix, which

01:20:37.289 --> 01:20:41.439
was small, but it was enough. to get me started.

01:20:42.880 --> 01:20:47.600
But there's tons of cool open source projects

01:20:47.600 --> 01:20:50.640
that you can contribute to, which you might also

01:20:50.640 --> 01:20:53.079
find interesting, and they are written in Rust.

01:20:53.500 --> 01:20:56.840
So that kind of seems like the language that

01:20:56.840 --> 01:21:01.960
everyone uses for new projects on GitHub. So

01:21:01.960 --> 01:21:06.720
would you say that Elix made your Rust learning

01:21:06.720 --> 01:21:11.979
experience more... productive and better for

01:21:11.979 --> 01:21:17.659
you personally yeah okay i learned so much just

01:21:17.659 --> 01:21:21.159
by reading helix code trying to understand um

01:21:21.159 --> 01:21:25.319
where different things go and it's it's it's

01:21:25.319 --> 01:21:29.220
so awesome like when you use a text editor to

01:21:29.220 --> 01:21:31.659
actually understand like what is going on under

01:21:31.659 --> 01:21:36.220
the hood what is happening um so it just feels

01:21:36.220 --> 01:21:39.329
good to use tools and knowing what happens underneath

01:21:39.329 --> 01:21:43.210
them which is completely unlike um any sort of

01:21:43.210 --> 01:21:45.890
like commercial software where you just get like

01:21:45.890 --> 01:21:48.649
this binary you don't know what what it's made

01:21:48.649 --> 01:21:52.130
of you just run it you don't really understand

01:21:52.130 --> 01:21:57.010
what's going on okay okay good thanks for sharing

01:21:57.010 --> 01:22:01.010
so you were gonna show oh the color the color

01:22:01.010 --> 01:22:03.449
scheme yeah yeah so the color scheme which i

01:22:03.449 --> 01:22:07.829
made which is like is the best color scheme in

01:22:07.829 --> 01:22:13.430
the world yeah looks like the fries box from

01:22:13.430 --> 01:22:20.430
mcconnell's right yes did you ever use it uh

01:22:20.430 --> 01:22:26.869
maybe for like 10 seconds okay yeah but if you

01:22:26.869 --> 01:22:28.670
want to make your own color scheme it's actually

01:22:28.670 --> 01:22:31.470
not very difficult all you have to do is just

01:22:31.470 --> 01:22:35.609
specify like which scopes represent which color

01:22:36.430 --> 01:22:41.090
So here I have defined the palette and here I

01:22:41.090 --> 01:22:45.250
can just use the palette. Yeah, and you can see

01:22:45.250 --> 01:22:48.630
all of the scopes on the documentation side.

01:22:49.750 --> 01:22:54.189
Okay, wonderful. So before we get into the color

01:22:54.189 --> 01:22:56.130
scheme, we're going to show something else. I'm

01:22:56.130 --> 01:22:59.050
sorry, but I keep interrupting you and pushing

01:22:59.050 --> 01:23:05.750
you to different places. So you were gonna show

01:23:05.750 --> 01:23:10.029
something else. I don't remember what. I don't

01:23:10.029 --> 01:23:12.869
know. I think I was looking for the docs for

01:23:12.869 --> 01:23:16.890
Helix. Seeing if I can get like inspired by any

01:23:16.890 --> 01:23:22.069
of the config options. I noticed autosave there.

01:23:22.270 --> 01:23:24.949
So is that an option? Autosave and autoformat?

01:23:25.229 --> 01:23:31.829
Autosave. Oh, yes, yes. So as you can see. you

01:23:31.829 --> 01:23:34.229
can say automatically save it when the focus

01:23:34.229 --> 01:23:38.710
is lost and okay yeah but this is not something

01:23:38.710 --> 01:23:42.090
i personally use because for me i just have um

01:23:42.090 --> 01:23:45.649
save key bound to enter so i just press one key

01:23:45.649 --> 01:23:51.590
and it will save my file okay yeah and yeah so

01:23:51.590 --> 01:23:55.670
the issue with autosave is that um it sometimes

01:23:55.670 --> 01:23:58.949
it can trigger and if you have automatic formatting

01:23:58.949 --> 01:24:02.729
enabled Then it's going to format your file like

01:24:02.729 --> 01:24:05.829
at random times whilst you're editing. And this

01:24:05.829 --> 01:24:09.189
is not really a good experience. So what I prefer

01:24:09.189 --> 01:24:12.930
is like editing. And then when I decide that

01:24:12.930 --> 01:24:15.909
this is a state which I want to commit to, I

01:24:15.909 --> 01:24:20.710
just press enter and save. Okay. Yep. Yes. I

01:24:20.710 --> 01:24:24.149
got. I got used to auto save already any of them.

01:24:24.210 --> 01:24:27.029
So I do auto save and auto save triggers auto

01:24:27.029 --> 01:24:29.130
format. But I do understand what you're saying.

01:24:29.250 --> 01:24:32.109
I have it configured to save after three seconds.

01:24:32.170 --> 01:24:34.970
If I haven't made any changes, have a lot of

01:24:34.970 --> 01:24:38.869
conditions, you know, in which ones not to save

01:24:38.869 --> 01:24:42.069
and when to save. So if I'm in visual mode, don't

01:24:42.069 --> 01:24:44.750
save, right? Even if the three seconds pass,

01:24:45.069 --> 01:24:47.949
don't save. If I'm in insert mode, no. Only if

01:24:47.949 --> 01:24:51.060
I'm in normal mode. It's good to hear that it's

01:24:51.060 --> 01:24:56.920
an option. What else? What else? Oh, something

01:24:56.920 --> 01:25:00.640
that I wanted to ask. Give me a second. Oh, do

01:25:00.640 --> 01:25:02.920
you have your config in your .files? Do you have

01:25:02.920 --> 01:25:06.840
your .files public? Yes, my .files are on GitHub.

01:25:09.800 --> 01:25:16.600
So I think I have them. Let me see. Yeah, there

01:25:16.600 --> 01:25:20.899
we go. Nix .files. So all of these files are

01:25:20.899 --> 01:25:26.399
just publicly available. So this is my Helix

01:25:26.399 --> 01:25:30.340
config. It looks like this. I have about 400

01:25:30.340 --> 01:25:33.819
lines here, but most of this is for language

01:25:33.819 --> 01:25:40.579
server setup. So stuff like Tailwind CSS, what

01:25:40.579 --> 01:25:46.180
else? Nginx, this sort of stuff. And then also

01:25:46.180 --> 01:25:49.819
my custom overrides. But in terms of my personal

01:25:49.819 --> 01:25:55.920
config, I believe it's nothing special. The most

01:25:55.920 --> 01:25:59.399
important feature is for me, Yazi integration,

01:25:59.840 --> 01:26:02.699
which is this, which is already shown. And another

01:26:02.699 --> 01:26:05.380
one, which is a lazy git. So you can also have

01:26:05.380 --> 01:26:09.539
lazy git right inside of Helix. So yeah, I have

01:26:09.539 --> 01:26:12.199
this. Do you know about lazy git? Yeah, I use

01:26:12.199 --> 01:26:14.260
it all the time. That's my preferred method of

01:26:14.260 --> 01:26:18.020
pushing stuff. So you can open it like this normally,

01:26:18.239 --> 01:26:21.699
but you can also open it from Helix. So for me,

01:26:21.739 --> 01:26:25.060
I have key binding for control G and it opens

01:26:25.060 --> 01:26:30.779
it inside of the editor. Here I can make whatever

01:26:30.779 --> 01:26:35.859
changes I need to make. As you can see the gutter

01:26:35.859 --> 01:26:40.579
here, it says that this line was modified. it's

01:26:40.579 --> 01:26:46.079
blue on the left so um one thing you can do is

01:26:46.079 --> 01:26:49.880
just commit it so you just write some commit

01:26:49.880 --> 01:26:53.579
message here and as you can see the blue lines

01:26:53.579 --> 01:26:58.199
went away it means that this was committed yep

01:26:58.199 --> 01:27:03.640
i also use basically um i have it mapped to alt

01:27:03.640 --> 01:27:07.920
g and i get i get it from neovim right so notice

01:27:07.920 --> 01:27:11.350
that i'm inside neovim here alt g brings it up

01:27:11.350 --> 01:27:15.210
and i just can read my commits there so who is

01:27:15.210 --> 01:27:18.090
stealing the ideas from who i guess helix is

01:27:18.090 --> 01:27:20.449
stealing from any of him and you're the one doing

01:27:20.449 --> 01:27:28.689
all that possibly okay um you're that fast okay

01:27:28.689 --> 01:27:31.710
i noticed it's at that next file i know nothing

01:27:31.710 --> 01:27:35.810
about next i'm just a regular person so someone

01:27:35.810 --> 01:27:39.920
looking at your helix that next file can just

01:27:39.920 --> 01:27:43.140
copy whatever is in there just put it in their

01:27:43.140 --> 01:27:47.380
config that also yeah they should be able to

01:27:47.380 --> 01:27:49.460
just uh copy but they will have to change the

01:27:49.460 --> 01:27:51.760
syntax because the syntax is a little bit different

01:27:51.760 --> 01:27:56.079
but in terms of a key value pairs it's the same

01:27:56.079 --> 01:28:00.100
so okay yeah it basically just translates this

01:28:00.100 --> 01:28:04.319
dot nix into dot tumble a one -to -one mapping

01:28:04.319 --> 01:28:08.960
okay and that that that demo file is nowhere

01:28:08.960 --> 01:28:11.819
in your in your dot files that's just local yeah

01:28:11.819 --> 01:28:14.659
i guess right yeah um but i i can actually open

01:28:14.659 --> 01:28:18.720
it it's in my helix folder it gets automatically

01:28:18.720 --> 01:28:24.180
yeah here we go it's this it gets generated okay

01:28:24.180 --> 01:28:30.220
got it makes sense all right so um i do really

01:28:30.220 --> 01:28:32.899
appreciate your time nick it's been more than

01:28:32.899 --> 01:28:35.800
an hour and a half thank you very much I'll share

01:28:35.800 --> 01:28:39.560
this. Let's see what the folks say. And if you

01:28:39.560 --> 01:28:42.779
want to share more with us again, I'll reach

01:28:42.779 --> 01:28:46.220
out in Reddit. We can chat there. All right.

01:28:46.300 --> 01:28:51.039
Sure. So, yeah. Have a good one. Yeah, you too.

01:28:53.439 --> 01:28:53.880
Bye.
