blob: e4508034fa644c88e19d30e6c87a8f0c07c95c71 (
plain) (
tree)
|
|
WEBVTT
00:00:02.960 --> 00:00:04.960
far away in the heavenly abode of the
00:00:04.960 --> 00:00:06.560
great god indra
00:00:06.560 --> 00:00:08.320
there is a wonderful net which has been
00:00:08.320 --> 00:00:10.160
hung by some cunning artificer
00:00:10.160 --> 00:00:12.080
in such a manner that it stretches out
00:00:12.080 --> 00:00:14.320
infinitely in all directions
00:00:14.320 --> 00:00:15.920
in accordance with the extravagant
00:00:15.920 --> 00:00:18.240
tastes of deities the artificer has hung
00:00:18.240 --> 00:00:20.960
a single glittering jewel in each eye of
00:00:20.960 --> 00:00:22.080
the net
00:00:22.080 --> 00:00:24.000
and since the net itself is infinite the
00:00:24.000 --> 00:00:26.480
jewels are infinite in number
00:00:26.480 --> 00:00:28.400
there hang the jewels glittering like
00:00:28.400 --> 00:00:30.480
stars in the first magnitude
00:00:30.480 --> 00:00:33.440
a wonderful sight to behold were we to
00:00:33.440 --> 00:00:34.800
select one of these jewels for
00:00:34.800 --> 00:00:35.680
inspection
00:00:35.680 --> 00:00:37.760
we would discover that in its polished
00:00:37.760 --> 00:00:39.520
surface there are reflected
00:00:39.520 --> 00:00:41.920
all the other jewels in the net infinite
00:00:41.920 --> 00:00:43.360
in number
00:00:43.360 --> 00:00:45.600
if we look still more closely we would
00:00:45.600 --> 00:00:47.840
see that each of the jewels reflected in
00:00:47.840 --> 00:00:48.960
this one jewel
00:00:48.960 --> 00:00:52.239
reflects all the others this is the
00:00:52.239 --> 00:00:54.000
metaphor of indra's net
00:00:54.000 --> 00:00:56.840
which is told in some schools of
00:00:56.840 --> 00:00:59.359
philosophy let's keep this metaphor in
00:00:59.359 --> 00:01:00.160
mind
00:01:00.160 --> 00:01:01.920
because it'll help us understand the
00:01:01.920 --> 00:01:03.760
Emacs extension that we're about to
00:01:03.760 --> 00:01:06.960
discuss
00:01:06.960 --> 00:01:10.080
so in editing text there's two
00:01:10.080 --> 00:01:13.200
main paradigms one
00:01:13.200 --> 00:01:16.880
is um editing at the ground level
00:01:16.880 --> 00:01:19.439
where the characters that we type
00:01:19.439 --> 00:01:22.159
actually appear on the screen
00:01:22.159 --> 00:01:25.960
the changes we make actually occur
00:01:25.960 --> 00:01:28.479
[Music]
00:01:28.479 --> 00:01:30.720
the other editing paradigm is where we
00:01:30.720 --> 00:01:33.439
escape to a higher level
00:01:33.439 --> 00:01:36.000
and now the characters that we type are
00:01:36.000 --> 00:01:36.479
not
00:01:36.479 --> 00:01:39.040
they don't actually appear on the screen
00:01:39.040 --> 00:01:41.600
because we're not at the ground level
00:01:41.600 --> 00:01:44.799
with the text we are at a higher level
00:01:44.799 --> 00:01:48.479
looking down at the text
00:01:48.479 --> 00:01:51.920
and regarding the text referring to
00:01:51.920 --> 00:01:54.640
this world of text in terms of a
00:01:54.640 --> 00:01:56.159
language
00:01:56.159 --> 00:01:57.920
for instance we could describe this
00:01:57.920 --> 00:02:00.640
world as having words and paragraphs and
00:02:00.640 --> 00:02:02.079
sentences and
00:02:02.079 --> 00:02:04.640
lines and so on and we could reason
00:02:04.640 --> 00:02:05.360
about this
00:02:05.360 --> 00:02:08.800
text in terms of these
00:02:08.800 --> 00:02:11.440
textual entities and this textual
00:02:11.440 --> 00:02:13.120
language
00:02:13.120 --> 00:02:15.920
this is the second paradigm of text
00:02:15.920 --> 00:02:18.640
editing
00:02:18.640 --> 00:02:22.800
and when we're in the second paradigm
00:02:22.800 --> 00:02:24.800
there is a way to go down to ground
00:02:24.800 --> 00:02:26.480
level you hit enter
00:02:26.480 --> 00:02:28.160
now or we'll hit enter to go down to the
00:02:28.160 --> 00:02:30.480
ground level and you can hit escape
00:02:30.480 --> 00:02:33.200
to go back out to the referential level
00:02:33.200 --> 00:02:35.200
enter to go down to ground level
00:02:35.200 --> 00:02:37.280
and escape to go up to the referential
00:02:37.280 --> 00:02:40.160
level
00:02:40.160 --> 00:02:44.879
now in vim the nouns
00:02:44.879 --> 00:02:48.239
in this world of text all
00:02:48.239 --> 00:02:50.959
share the same referential plane which
00:02:50.959 --> 00:02:51.519
we call
00:02:51.519 --> 00:02:54.319
normal mode so in normal mode all of the
00:02:54.319 --> 00:02:54.959
nouns
00:02:54.959 --> 00:02:57.360
of the world of text are available
00:02:57.360 --> 00:02:58.959
whether it's words or sentences or
00:02:58.959 --> 00:03:00.959
paragraphs
00:03:00.959 --> 00:03:04.400
and they all share this same
00:03:04.400 --> 00:03:08.319
referential plane and there's uh
00:03:08.319 --> 00:03:11.120
they sort of compete for space on the
00:03:11.120 --> 00:03:12.720
keyboard
00:03:12.720 --> 00:03:15.760
um so an alternative uh
00:03:15.760 --> 00:03:17.680
way to structure these modes is instead
00:03:17.680 --> 00:03:19.280
of having a single mode where all the
00:03:19.280 --> 00:03:21.840
nouns coexist
00:03:21.840 --> 00:03:24.959
peacefully or otherwise you instead
00:03:24.959 --> 00:03:30.400
have a dedicated mode for every noun
00:03:30.400 --> 00:03:33.040
so in that case what happens is because
00:03:33.040 --> 00:03:35.440
your modal spaces are now much smaller
00:03:35.440 --> 00:03:37.280
you're just talking about words or
00:03:37.280 --> 00:03:38.720
paragraphs or
00:03:38.720 --> 00:03:42.560
lines or something the keys that you use
00:03:42.560 --> 00:03:45.760
can be much more targeted
00:03:45.760 --> 00:03:48.560
and you can use the same keystrokes in
00:03:48.560 --> 00:03:50.400
in all of your modes and they would have
00:03:50.400 --> 00:03:52.000
the same ideas behind them but
00:03:52.000 --> 00:03:53.280
they would have different effects
00:03:53.280 --> 00:03:55.519
depending on which context you're using
00:03:55.519 --> 00:03:57.519
so it's the same keystrokes different
00:03:57.519 --> 00:03:59.120
contexts
00:03:59.120 --> 00:04:01.360
and the advantage of that is it's often
00:04:01.360 --> 00:04:02.480
easier
00:04:02.480 --> 00:04:05.519
to change context than it is to
00:04:05.519 --> 00:04:09.040
learn new key bindings so let's see
00:04:09.040 --> 00:04:12.080
an example of how that works we go into
00:04:12.080 --> 00:04:13.680
character mode and if you look at the
00:04:13.680 --> 00:04:14.000
mode
00:04:14.000 --> 00:04:15.439
line at the bottom of the screen there
00:04:15.439 --> 00:04:18.720
you'll see that we're in character mode
00:04:18.720 --> 00:04:21.519
and now when we move up down left and
00:04:21.519 --> 00:04:23.919
right we're moving by character
00:04:23.919 --> 00:04:28.479
we can also transform the text and
00:04:28.479 --> 00:04:30.240
the transformations occur in terms of
00:04:30.240 --> 00:04:32.400
character
00:04:32.400 --> 00:04:34.320
you can also go into word mode and in
00:04:34.320 --> 00:04:35.520
word mode
00:04:35.520 --> 00:04:38.560
the transformations that you do are on
00:04:38.560 --> 00:04:40.000
words
00:04:40.000 --> 00:04:42.320
and you try you your movement is also in
00:04:42.320 --> 00:04:43.440
terms of words
00:04:43.440 --> 00:04:45.600
so that's the level of granularity that
00:04:45.600 --> 00:04:46.560
you have
00:04:46.560 --> 00:04:49.520
you could also go to line mode and when
00:04:49.520 --> 00:04:50.720
you're in line mode
00:04:50.720 --> 00:04:53.759
you go up and down by line and you can
00:04:53.759 --> 00:04:54.240
move
00:04:54.240 --> 00:04:57.520
lines up and down left and right and so
00:04:57.520 --> 00:04:59.120
on
00:04:59.120 --> 00:05:00.880
and the transformations you do are in
00:05:00.880 --> 00:05:02.800
terms of lines
00:05:02.800 --> 00:05:08.400
you could also go to window mode where
00:05:08.400 --> 00:05:10.639
now the objects that you're referring to
00:05:10.639 --> 00:05:12.400
are windows and you can
00:05:12.400 --> 00:05:15.759
move spatially amongst the windows or
00:05:15.759 --> 00:05:17.520
make do transformations on the windows
00:05:17.520 --> 00:05:20.850
using the same keystrokes
00:05:20.850 --> 00:05:22.840
[Music]
00:05:22.840 --> 00:05:25.360
um
00:05:25.360 --> 00:05:28.720
so let's go to
00:05:28.720 --> 00:05:32.800
um right and so um the one of the things
00:05:32.800 --> 00:05:35.280
the the principles that play here is
00:05:35.280 --> 00:05:36.880
something called the rumpelstiltskin
00:05:36.880 --> 00:05:38.000
principle which is something
00:05:38.000 --> 00:05:40.720
that's known in computer science which
00:05:40.720 --> 00:05:42.320
is that if you can name something then
00:05:42.320 --> 00:05:43.759
you have that you have power
00:05:43.759 --> 00:05:46.720
then you have power over it so this is
00:05:46.720 --> 00:05:48.560
kind of an adaptation of that principle
00:05:48.560 --> 00:05:50.479
which says that if you can
00:05:50.479 --> 00:05:52.320
name something and if you can talk about
00:05:52.320 --> 00:05:54.000
it then it's a noun
00:05:54.000 --> 00:05:55.360
[Music]
00:05:55.360 --> 00:05:56.960
in your editing language and if it's a
00:05:56.960 --> 00:05:58.960
noun then it has
00:05:58.960 --> 00:06:01.520
it's a mode so if we can talk about it
00:06:01.520 --> 00:06:02.319
it's a noun
00:06:02.319 --> 00:06:05.039
if it's a noun then it's a mode and one
00:06:05.039 --> 00:06:06.479
of the things we've been talking a lot
00:06:06.479 --> 00:06:07.039
about
00:06:07.039 --> 00:06:10.800
is modes so in fact
00:06:10.800 --> 00:06:14.240
uh by this principle modes also
00:06:14.240 --> 00:06:17.280
should be a mode
00:06:17.280 --> 00:06:19.039
you should have a mode that can reason
00:06:19.039 --> 00:06:21.120
in terms of modes as objects just like
00:06:21.120 --> 00:06:22.080
you have
00:06:22.080 --> 00:06:23.759
modes where you can reason in terms of
00:06:23.759 --> 00:06:26.560
words or lines as objects
00:06:26.560 --> 00:06:28.800
and so let's do that let's go to mode
00:06:28.800 --> 00:06:30.479
mode
00:06:30.479 --> 00:06:34.000
when you go to mode mode you see that uh
00:06:34.000 --> 00:06:36.080
the objects that are depicted here are
00:06:36.080 --> 00:06:37.919
the modes that are
00:06:37.919 --> 00:06:40.960
that are present in the buffer
00:06:40.960 --> 00:06:44.880
which we knew about um because the
00:06:44.880 --> 00:06:46.400
style of editing that we had in this
00:06:46.400 --> 00:06:48.720
buffer was the vim style of editing
00:06:48.720 --> 00:06:50.479
where there's an insert mode at the
00:06:50.479 --> 00:06:52.400
ground level and a normal mode that you
00:06:52.400 --> 00:06:53.039
can escape
00:06:53.039 --> 00:06:57.280
to you insert enter the ground level
00:06:57.280 --> 00:07:00.479
enter to the insert mode and escape to
00:07:00.479 --> 00:07:02.880
normal mode and when you look at the
00:07:02.880 --> 00:07:03.680
mode mode
00:07:03.680 --> 00:07:06.160
representation you see that in fact that
00:07:06.160 --> 00:07:10.479
is the structure that's depicted
00:07:10.479 --> 00:07:12.720
but in different situations you might
00:07:12.720 --> 00:07:14.080
find
00:07:14.080 --> 00:07:16.080
that you that these modes are not the
00:07:16.080 --> 00:07:17.680
ones that you want you want something
00:07:17.680 --> 00:07:19.360
more tailored for the specific
00:07:19.360 --> 00:07:20.880
application
00:07:20.880 --> 00:07:23.050
for instance if you're editing
00:07:23.050 --> 00:07:24.240
[Music]
00:07:24.240 --> 00:07:27.360
lisp code uh or or code in general but
00:07:27.360 --> 00:07:30.880
list code is a particular example
00:07:30.880 --> 00:07:32.960
you might want to take advantage of the
00:07:32.960 --> 00:07:34.000
structure of
00:07:34.000 --> 00:07:37.599
the code and for lisp code in particular
00:07:37.599 --> 00:07:40.960
we have a mode called symax mode
00:07:40.960 --> 00:07:44.240
which is able to reason
00:07:44.240 --> 00:07:46.720
about your code in terms of its tree
00:07:46.720 --> 00:07:47.919
structure
00:07:47.919 --> 00:07:50.560
so you can use the same keystrokes hkl
00:07:50.560 --> 00:07:51.120
goes
00:07:51.120 --> 00:07:53.440
left right up and down but you also have
00:07:53.440 --> 00:07:54.960
other keystrokes that are more
00:07:54.960 --> 00:07:58.080
specialized to the application
00:07:58.080 --> 00:08:01.520
and you can run the code and
00:08:01.520 --> 00:08:06.960
we'll see that happen here in a minute
00:08:06.960 --> 00:08:10.080
and you can make changes to it really
00:08:10.080 --> 00:08:12.240
quickly
00:08:12.240 --> 00:08:18.000
and see the effects of those changes
00:08:18.000 --> 00:08:19.440
and you're doing this all in a mode
00:08:19.440 --> 00:08:21.360
that's convenient for
00:08:21.360 --> 00:08:23.199
this particular application which is
00:08:23.199 --> 00:08:25.039
editing lisp code
00:08:25.039 --> 00:08:28.960
and that is in this case symmex mode
00:08:28.960 --> 00:08:31.039
so typically when you're editing code
00:08:31.039 --> 00:08:32.640
like this you'd want to be
00:08:32.640 --> 00:08:34.800
in insert mode actually typing out the
00:08:34.800 --> 00:08:36.640
code
00:08:36.640 --> 00:08:38.320
and then you'd want to escape to simex
00:08:38.320 --> 00:08:40.959
mode rather than normal mode
00:08:40.959 --> 00:08:42.159
and then you could escape again and
00:08:42.159 --> 00:08:44.080
you'd end up in normal mode
00:08:44.080 --> 00:08:46.720
so this if we go to mode mode we see is
00:08:46.720 --> 00:08:48.000
depicted
00:08:48.000 --> 00:08:51.040
as this tower where insert is at the
00:08:51.040 --> 00:08:52.800
bottom and normal is at the top but
00:08:52.800 --> 00:08:54.800
symmex mode is in between
00:08:54.800 --> 00:08:57.200
the two you could also change that if
00:08:57.200 --> 00:08:58.800
you like if you don't want cmx mode to
00:08:58.800 --> 00:09:00.640
be there you could just
00:09:00.640 --> 00:09:03.760
move it to the top and now you find some
00:09:03.760 --> 00:09:05.600
mixes at the top and you enter down to
00:09:05.600 --> 00:09:06.160
normal
00:09:06.160 --> 00:09:07.600
you can see it on the status bar at the
00:09:07.600 --> 00:09:10.480
bottom there enter to insert
00:09:10.480 --> 00:09:13.839
escape to normal escape to symmex and
00:09:13.839 --> 00:09:16.480
in fact you can even add more modes if
00:09:16.480 --> 00:09:19.380
you don't like the existing ones
00:09:19.380 --> 00:09:21.519
[Music]
00:09:21.519 --> 00:09:23.839
and now we have an additional mode here
00:09:23.839 --> 00:09:25.440
we have window mode it goes down to
00:09:25.440 --> 00:09:27.519
symmex goes down to normal
00:09:27.519 --> 00:09:30.320
enter the insert escape to normal escape
00:09:30.320 --> 00:09:33.600
to smx escape the window
00:09:33.600 --> 00:09:37.600
um so we've talked okay so another thing
00:09:37.600 --> 00:09:41.760
actually to note here is that in editing
00:09:41.760 --> 00:09:45.360
modes um
00:09:45.360 --> 00:09:46.720
if you look at the mode line at the
00:09:46.720 --> 00:09:48.399
bottom of the screen
00:09:48.399 --> 00:09:50.640
you'll see that we are currently in this
00:09:50.640 --> 00:09:51.519
buffer
00:09:51.519 --> 00:09:54.560
we are currently in line mode
00:09:54.560 --> 00:09:57.600
and I'm going to hit enter now and
00:09:57.600 --> 00:09:58.720
you'll see that when I hit
00:09:58.720 --> 00:10:01.519
enter nothing is happening it's still in
00:10:01.519 --> 00:10:02.160
line mode
00:10:02.160 --> 00:10:05.120
if you'd escape it's still in line mode
00:10:05.120 --> 00:10:07.200
and you can find out the reason for that
00:10:07.200 --> 00:10:10.640
by taking another meta jump out of this
00:10:10.640 --> 00:10:12.800
and you'll see that in fact the reason
00:10:12.800 --> 00:10:15.279
is that we're currently in line mode
00:10:15.279 --> 00:10:17.360
and line mode is the only one available
00:10:17.360 --> 00:10:19.519
in this tower
00:10:19.519 --> 00:10:21.760
for editing the modes that are in
00:10:21.760 --> 00:10:24.880
operation in your ground level
00:10:24.880 --> 00:10:26.560
and in fact line mode is all you need
00:10:26.560 --> 00:10:28.320
here because this is just
00:10:28.320 --> 00:10:30.320
uh the nature of how these modes are
00:10:30.320 --> 00:10:32.079
laid out is
00:10:32.079 --> 00:10:35.040
in in rows and so line mode is the most
00:10:35.040 --> 00:10:36.399
appropriate thing here
00:10:36.399 --> 00:10:37.680
but you could change it to something
00:10:37.680 --> 00:10:39.740
else if you like
00:10:39.740 --> 00:10:40.959
[Music]
00:10:40.959 --> 00:10:44.160
and then now we've seen two towers we've
00:10:44.160 --> 00:10:44.560
seen
00:10:44.560 --> 00:10:48.079
the vim tower and we've seen
00:10:48.079 --> 00:10:53.680
also the symex tower the the lisp tower
00:10:53.680 --> 00:10:56.959
and it turns out that because we've been
00:10:56.959 --> 00:10:58.880
talking about towers now
00:10:58.880 --> 00:11:01.519
by the rumpelstiltskin principle towers
00:11:01.519 --> 00:11:02.800
also
00:11:02.800 --> 00:11:06.399
um can be talked about
00:11:06.399 --> 00:11:09.279
and therefore they also are a mode so
00:11:09.279 --> 00:11:11.200
how do we go to tower mode
00:11:11.200 --> 00:11:14.640
and the way we go tower mode is we do
00:11:14.640 --> 00:11:19.200
we go in a slightly different direction
00:11:19.200 --> 00:11:20.800
and we find that we are now in tower
00:11:20.800 --> 00:11:23.360
mode
00:11:23.360 --> 00:11:27.440
and we see that there are many towers
00:11:27.440 --> 00:11:29.279
available so we're now
00:11:29.279 --> 00:11:32.640
we're we're seeing several possible
00:11:32.640 --> 00:11:36.240
towers that we have written
00:11:36.240 --> 00:11:39.120
um to be available and for use in
00:11:39.120 --> 00:11:41.440
different buffers and you can edit them
00:11:41.440 --> 00:11:44.000
on the fly for instance let's enter this
00:11:44.000 --> 00:11:46.630
tower
00:11:46.630 --> 00:11:48.000
[Music]
00:11:48.000 --> 00:11:49.920
and now you see that in the bottom of
00:11:49.920 --> 00:11:51.519
the in the mode line you see that we're
00:11:51.519 --> 00:11:52.480
going
00:11:52.480 --> 00:11:54.240
across all of these different modes that
00:11:54.240 --> 00:11:56.480
were in the tower
00:11:56.480 --> 00:11:58.800
and you could escape and you could even
00:11:58.800 --> 00:12:00.399
move things around you could put window
00:12:00.399 --> 00:12:00.880
mode
00:12:00.880 --> 00:12:02.399
all the way at the bottom right above
00:12:02.399 --> 00:12:04.079
insert mode
00:12:04.079 --> 00:12:06.880
let's see that happen there it is window
00:12:06.880 --> 00:12:09.839
is right above insert
00:12:09.839 --> 00:12:13.040
so on and the tower always reflects your
00:12:13.040 --> 00:12:14.240
current position
00:12:14.240 --> 00:12:15.760
so if you're in buffer mode here and you
00:12:15.760 --> 00:12:17.600
go down to line mode
00:12:17.600 --> 00:12:19.120
when you go back to mode mode you see
00:12:19.120 --> 00:12:22.480
that we are in line mode
00:12:22.480 --> 00:12:24.000
but in practice you wouldn't have a
00:12:24.000 --> 00:12:26.160
tower this elaborate because
00:12:26.160 --> 00:12:28.959
you'd rather have several smaller towers
00:12:28.959 --> 00:12:29.440
you
00:12:29.440 --> 00:12:33.360
enter that you alternate between
00:12:33.360 --> 00:12:36.639
um okay so one
00:12:36.639 --> 00:12:39.839
other thing of interest here is that
00:12:39.839 --> 00:12:42.240
when you're in tower mode
00:12:42.240 --> 00:12:43.839
if you look at the status line at the
00:12:43.839 --> 00:12:45.920
bottom there we are currently
00:12:45.920 --> 00:12:49.200
in buffer mode while we are in tower
00:12:49.200 --> 00:12:49.839
mode
00:12:49.839 --> 00:12:51.600
and tower mode actually isn't a mode
00:12:51.600 --> 00:12:53.519
really neither is mode mode they're
00:12:53.519 --> 00:12:53.920
really
00:12:53.920 --> 00:12:58.000
referential planes or meta planes
00:12:58.000 --> 00:13:00.959
um in any case you can see that we're in
00:13:00.959 --> 00:13:03.120
buffer mode and we can take a meta jump
00:13:03.120 --> 00:13:04.560
out of this to confirm
00:13:04.560 --> 00:13:07.120
that buffer mode is the only mode
00:13:07.120 --> 00:13:08.000
available
00:13:08.000 --> 00:13:10.560
when we're editing towers because that's
00:13:10.560 --> 00:13:11.200
the one
00:13:11.200 --> 00:13:14.240
we need given that our towers are
00:13:14.240 --> 00:13:15.200
represented
00:13:15.200 --> 00:13:23.200
in individual buffers
00:13:23.200 --> 00:13:26.000
right so let's uh let's see where we're
00:13:26.000 --> 00:13:26.320
at
00:13:26.320 --> 00:13:28.240
trump's still skin principle we talked
00:13:28.240 --> 00:13:30.160
about mode mode
00:13:30.160 --> 00:13:32.240
um we talked about the strange loop
00:13:32.240 --> 00:13:33.920
application of
00:13:33.920 --> 00:13:37.820
ground level modes in meta levels
00:13:37.820 --> 00:13:39.600
[Music]
00:13:39.600 --> 00:13:42.240
and yeah we saw the different towers and
00:13:42.240 --> 00:13:43.199
in fact
00:13:43.199 --> 00:13:46.639
you can we're currently in
00:13:46.639 --> 00:13:50.720
vim tower
00:13:50.720 --> 00:13:53.120
where you can go to Emacs tower and now
00:13:53.120 --> 00:13:54.720
with a single keystroke you can
00:13:54.720 --> 00:13:55.760
alternate
00:13:55.760 --> 00:13:59.040
between e-max
00:13:59.040 --> 00:14:02.399
and vim which are represented which are
00:14:02.399 --> 00:14:05.519
modeled as towers
00:14:05.519 --> 00:14:09.279
um
00:14:09.279 --> 00:14:13.360
okay so
00:14:13.360 --> 00:14:15.360
so there's uh the one thing that we've
00:14:15.360 --> 00:14:17.040
sort of alluded to is that there are two
00:14:17.040 --> 00:14:18.160
directions
00:14:18.160 --> 00:14:20.480
that you can travel in when you're going
00:14:20.480 --> 00:14:22.399
through this framework
00:14:22.399 --> 00:14:25.120
one lev one direction is uh and we'll
00:14:25.120 --> 00:14:33.760
visualize it with uh like so
00:14:33.760 --> 00:14:35.120
there's two directions you can travel
00:14:35.120 --> 00:14:37.040
and you can either go sideways or you
00:14:37.040 --> 00:14:38.399
can go up and down
00:14:38.399 --> 00:14:40.399
if you go sideways you're changing your
00:14:40.399 --> 00:14:41.680
perspective
00:14:41.680 --> 00:14:45.440
so normal mode word mode line mode
00:14:45.440 --> 00:14:47.360
window mode and so on are all different
00:14:47.360 --> 00:14:49.120
perspectives on your under on your
00:14:49.120 --> 00:14:51.680
ground editing experience
00:14:51.680 --> 00:14:53.040
and the other direction you can travel
00:14:53.040 --> 00:14:55.519
in is up or down which takes you
00:14:55.519 --> 00:14:57.920
through meta levels so you go from the
00:14:57.920 --> 00:14:59.600
ground level editing experience
00:14:59.600 --> 00:15:01.920
up to mode mode and then up to the tower
00:15:01.920 --> 00:15:03.440
plane and so on
00:15:03.440 --> 00:15:07.040
or uh yeah and so on
00:15:07.040 --> 00:15:10.800
um yeah so this all sounds
00:15:10.800 --> 00:15:14.880
very complex but the truth is
00:15:14.880 --> 00:15:18.160
it's not really that complicated
00:15:18.160 --> 00:15:21.519
even though it feels that way the reason
00:15:21.519 --> 00:15:22.959
it isn't that complicated
00:15:22.959 --> 00:15:26.480
is because no matter how many levels
00:15:26.480 --> 00:15:28.800
up or down you go and no matter where
00:15:28.800 --> 00:15:30.160
you are
00:15:30.160 --> 00:15:32.399
whether you're in at the ground level
00:15:32.399 --> 00:15:34.079
editing the actual text
00:15:34.079 --> 00:15:36.000
or whether you're at a meta level some
00:15:36.000 --> 00:15:37.600
unknown meta level and you don't know
00:15:37.600 --> 00:15:39.279
where you are
00:15:39.279 --> 00:15:42.320
no matter where you are the way in which
00:15:42.320 --> 00:15:44.399
you interact with it
00:15:44.399 --> 00:15:47.519
is the same at every level
00:15:47.519 --> 00:15:52.000
and that is the great power of um
00:15:52.000 --> 00:15:55.440
this approach is that
00:15:55.440 --> 00:15:58.720
all of the different levels um are the
00:15:58.720 --> 00:16:00.880
same
00:16:00.880 --> 00:16:03.839
and in fact the complexity of the whole
00:16:03.839 --> 00:16:05.759
is exactly identical to the
00:16:05.759 --> 00:16:08.720
complexity of each part so if you know
00:16:08.720 --> 00:16:10.000
how to edit words
00:16:10.000 --> 00:16:12.959
in the ground level buffer and you know
00:16:12.959 --> 00:16:13.440
how to move
00:16:13.440 --> 00:16:15.839
lines around using line mode then you
00:16:15.839 --> 00:16:16.720
know how to edit
00:16:16.720 --> 00:16:19.519
any aspect of your editing experience at
00:16:19.519 --> 00:16:22.800
any level
00:16:22.800 --> 00:16:23.310
so
00:16:23.310 --> 00:16:26.240
[Music]
00:16:26.240 --> 00:16:30.079
um
00:16:30.079 --> 00:16:32.000
so this is a pre-release demo this
00:16:32.000 --> 00:16:33.839
doesn't exist on melpa
00:16:33.839 --> 00:16:36.880
yet but you can follow updates um
00:16:36.880 --> 00:16:40.079
at this repo on github
00:16:40.079 --> 00:16:44.079
and if you can also be a beta tester or
00:16:44.079 --> 00:16:45.199
something like that if you like that
00:16:45.199 --> 00:16:46.000
would be very
00:16:46.000 --> 00:16:49.199
uh helpful and you can learn more about
00:16:49.199 --> 00:16:50.560
this at
00:16:50.560 --> 00:16:53.920
dream.org which is where I house
00:16:53.920 --> 00:16:55.920
the research that I work on and in
00:16:55.920 --> 00:16:57.279
particular
00:16:57.279 --> 00:17:00.800
the research on epistemic levels is what
00:17:00.800 --> 00:17:03.600
inspired this particular Emacs extension
00:17:03.600 --> 00:17:06.480
you can also learn about dialectical
00:17:06.480 --> 00:17:08.480
inheritance attribution which is the
00:17:08.480 --> 00:17:10.880
basis of
00:17:10.880 --> 00:17:14.559
a new economic system that could be fair
00:17:14.559 --> 00:17:16.959
and could lead to a prosperous and happy
00:17:16.959 --> 00:17:19.439
world
00:17:19.439 --> 00:17:22.799
and um yeah you can follow me on
00:17:22.799 --> 00:17:26.319
twitter at countwajoula and
00:17:26.319 --> 00:17:31.919
that's it thank you
|