blob: 12a7a6ad8e5f48afef70152cc49acba1209cfb33 (
plain) (
tree)
|
|
WEBVTT
00:00.960 --> 00:00:03.760
welcome everyone uh my name is ferming i
00:03.760 --> 00:00:05.120
work as a commonwealth engineer at
00:05.120 --> 00:00:08.000
ribbon pack and today i'm going to talk
00:08.000 --> 00:00:09.519
about
00:09.519 --> 00:00:11.360
how to build an e-max
00:11.360 --> 00:00:12.240
right
00:12.240 --> 00:00:16.640
so uh let's start by defining what is an
00:16.640 --> 00:00:18.000
imax
00:18.000 --> 00:00:20.080
so that this can be a really this can be
00:20.080 --> 00:00:21.920
really hard depending on
00:21.920 --> 00:00:23.920
what you want to say what you want to
00:23.920 --> 00:00:26.320
qualify what emas is and not i'm going
00:26.320 --> 00:00:27.920
to
00:27.920 --> 00:00:29.519
get just this definition it's not the
00:29.519 --> 00:00:31.840
best but it's mine right
00:31.840 --> 00:00:34.480
so i would argue that an emacs should
00:34.480 --> 00:00:37.440
have text editing capabilities
00:37.440 --> 00:00:38.879
i wouldn't say it should be a text
00:38.879 --> 00:00:41.120
editor but it should be able to work
00:41.120 --> 00:00:43.200
really well with text
00:43.200 --> 00:00:45.680
as you have introspection and a global
00:45.680 --> 00:00:46.879
state
00:46.879 --> 00:00:49.760
so you can ask them every time
00:49.760 --> 00:00:51.680
um software itself i think it should be
00:51.680 --> 00:00:54.879
able to modify itself while running
00:54.879 --> 00:00:56.640
um so you shouldn't be static and you
00:56.640 --> 00:00:59.280
shouldn't never restart for
00:59.280 --> 00:01:01.359
any reason like in engineering max you
01:01.359 --> 00:01:03.280
can't predefine every function or every
01:03.280 --> 00:01:05.680
functionality the way you want
01:05.680 --> 00:01:09.360
and extensibility should not be limited
01:09.360 --> 00:01:11.040
with this i mean that if you add a new
01:11.040 --> 00:01:12.560
package shouldn't be a difference you
01:12.560 --> 00:01:14.960
shouldn't have an api
01:14.960 --> 00:01:18.560
to extend the software and the entire uh
01:18.560 --> 00:01:20.640
software itself should be the external
01:20.640 --> 00:01:22.640
api code
01:22.640 --> 00:01:25.360
i'll argue that's also
01:25.360 --> 00:01:26.640
um
01:26.640 --> 00:01:28.320
should be list base
01:28.320 --> 00:01:29.759
but
01:29.759 --> 00:01:32.880
um it's controversial so
01:32.880 --> 00:01:34.720
yes they're going to get this definition
01:34.720 --> 00:01:37.280
and then extend upon it so
01:37.280 --> 00:01:38.880
bear with me
01:38.880 --> 00:01:41.920
so right now uh genuine max is the best
01:41.920 --> 00:01:44.079
emacs that we have that's not the only
01:44.079 --> 00:01:46.320
one uh
01:46.320 --> 00:01:48.479
not even the first one imax but it's the
01:48.479 --> 00:01:49.680
best one that we have the one that we're
01:49.680 --> 00:01:51.759
using the one that we that i'm using
01:51.759 --> 00:01:54.079
right now and the one that we're here
01:54.079 --> 00:01:55.280
for
01:55.280 --> 00:01:57.759
but as we all know it's not perfect i'm
01:57.759 --> 00:01:59.759
going to highlight some
01:59.759 --> 00:02:02.479
um imperfection that all that we should
02:02.479 --> 00:02:05.119
know i guess that you must have
02:05.119 --> 00:02:07.360
so the first one is that uh i would
02:07.360 --> 00:02:09.440
argue that inmate lisp is a good lisp
02:09.440 --> 00:02:11.280
but it's not a general purpose
02:11.280 --> 00:02:13.280
programming language
02:13.280 --> 00:02:15.040
you can do pretty crazy things with
02:15.040 --> 00:02:16.959
emacs but i will argue that you can do
02:16.959 --> 00:02:18.400
also do that with
02:18.400 --> 00:02:20.640
brain [ __ ] i'm not comparing them i know
02:20.640 --> 00:02:22.239
with my list so much better than brain
02:22.239 --> 00:02:24.720
[ __ ] but that's not an argument in
02:24.720 --> 00:02:26.480
mclisp it's
02:26.480 --> 00:02:29.599
a language for an editor
02:29.599 --> 00:02:32.080
not for writing
02:32.080 --> 00:02:34.720
game engine for example
02:34.720 --> 00:02:37.040
um it's not the fastest lisp we all know
02:37.040 --> 00:02:40.239
this is um
02:40.239 --> 00:02:42.319
not in the middle i will say was really
02:42.319 --> 00:02:44.720
slow now it's getting better maybe with
02:44.720 --> 00:02:46.480
the c integration
02:46.480 --> 00:02:49.200
um thanks to andrea it can be even
02:49.200 --> 00:02:51.680
better but we'll see and has limited
02:51.680 --> 00:02:55.360
concurrency this will still be the case
02:55.360 --> 00:02:58.159
it has shared threats first i know
02:58.159 --> 00:03:00.000
it's not perfect and it's also not that
03:00.000 --> 00:03:01.040
fast
03:01.040 --> 00:03:03.360
and even though this for some people is
03:03.360 --> 00:03:04.480
not an issue
03:04.480 --> 00:03:06.080
i'll argue that for me it's an issue
03:06.080 --> 00:03:07.920
which is the canoe emac score is written
03:07.920 --> 00:03:09.840
in the c
03:09.840 --> 00:03:13.519
um i'm not a big fan of c i mean i have
03:13.519 --> 00:03:15.519
wrote things about c in the past and
03:15.519 --> 00:03:16.840
it's
03:16.840 --> 00:03:20.560
okay as a language but um i prefer i'll
03:20.560 --> 00:03:22.800
be in lisp so i can hack on it easily
03:22.800 --> 00:03:24.720
and really find it while it's running
03:24.720 --> 00:03:27.440
all in just one language so you don't
03:27.440 --> 00:03:29.920
have to learn two languages to get into
03:29.920 --> 00:03:30.959
it
03:30.959 --> 00:03:33.120
um even though it's just ten percent of
03:33.120 --> 00:03:35.599
emacs right but still there needs to be
03:35.599 --> 00:03:38.799
maintained and yeah
03:38.799 --> 00:03:41.120
i don't like that uh kind of uh a max
03:41.120 --> 00:03:43.040
aspect but just
03:43.040 --> 00:03:45.360
this was just my opinion okay so while
03:45.360 --> 00:03:46.720
you're like you know mac's pretty good
03:46.720 --> 00:03:48.400
you should use it
03:48.400 --> 00:03:50.319
you probably use it if you're here and
03:50.319 --> 00:03:53.280
use it every day it's great
03:53.280 --> 00:03:54.239
so
03:54.239 --> 00:03:56.560
some people in the past
03:56.560 --> 00:03:58.080
wanted to write
03:58.080 --> 00:04:00.480
an e-max of course and not the emacs
04:00.480 --> 00:04:02.400
and they think about different things
04:02.400 --> 00:04:04.799
and they attempt to write similar emacs
04:04.799 --> 00:04:07.680
like things i'm going to um
04:07.680 --> 00:04:09.519
i know there's a lot of more way more
04:09.519 --> 00:04:12.879
emacs than the one i'm going to say now
04:12.879 --> 00:04:16.000
but i just going to
04:16.000 --> 00:04:18.639
focus on the emacs that uh meets the
04:18.639 --> 00:04:20.639
criteria are not like
04:20.639 --> 00:04:23.280
uh the linux turbo's emacs right which
04:23.280 --> 00:04:24.479
is just a c
04:24.479 --> 00:04:28.400
simple e max to write c for me that may
04:28.400 --> 00:04:30.160
be uh
04:30.160 --> 00:04:32.400
an e max for the people but not for me i
04:32.400 --> 00:04:34.639
wouldn't argue that that's not
04:34.639 --> 00:04:36.720
really an emacs just an editor with
04:36.720 --> 00:04:38.560
commands similar to imax
04:38.560 --> 00:04:40.160
but
04:40.160 --> 00:04:43.120
i digress okay so the language i will
04:43.120 --> 00:04:45.120
argue that common lisp may be the best
04:45.120 --> 00:04:46.320
language
04:46.320 --> 00:04:47.759
period
04:47.759 --> 00:04:49.600
sorry about that the best language for
04:49.600 --> 00:04:51.520
writing emacs also
04:51.520 --> 00:04:53.759
um it's a timeless standard reaching in
04:53.759 --> 00:04:57.520
the 1990s is fast and reliable
04:57.520 --> 00:05:00.160
it's a great lisp i will argue that the
05:00.160 --> 00:05:01.840
best lisp but i don't want to get any
05:01.840 --> 00:05:03.280
trouble so i would just say it's great
05:03.280 --> 00:05:04.400
lisp
05:04.400 --> 00:05:06.880
um has good library support doesn't have
05:06.880 --> 00:05:08.720
like a huge library like i would say
05:08.720 --> 00:05:12.160
python or c but pretty
05:12.160 --> 00:05:14.800
robust and good library
05:14.800 --> 00:05:18.000
similar to mclisp which may seem as a
05:18.000 --> 00:05:21.120
historical accident which maybe it is
05:21.120 --> 00:05:23.919
but also in this case has some
05:23.919 --> 00:05:26.160
interesting properties that will
05:26.160 --> 00:05:29.280
be discussed
05:29.280 --> 00:05:30.960
later
05:30.960 --> 00:05:32.400
okay so
05:32.400 --> 00:05:33.600
um
05:33.600 --> 00:05:35.280
taking common lisps a language to write
05:35.280 --> 00:05:36.479
an imax i'm going to get some
05:36.479 --> 00:05:37.759
technologies in documentation that we
05:37.759 --> 00:05:40.720
can use to write an e-max in common lisp
05:40.720 --> 00:05:43.440
so the first one is mcclaim which is an
05:43.440 --> 00:05:45.039
implementation of a
05:45.039 --> 00:05:47.120
common lisp interface standard
05:47.120 --> 00:05:50.320
this is great i mean i loved how
05:50.320 --> 00:05:52.720
this is written how it is defined i like
05:52.720 --> 00:05:54.479
standard things
05:54.479 --> 00:05:57.440
um mclean it's a marvelous tool i will
05:57.440 --> 00:05:59.759
argue that it's the best
05:59.759 --> 00:06:01.280
um toolkit
06:01.280 --> 00:06:03.039
i wouldn't say there's a toolkit because
06:03.039 --> 00:06:05.360
it's way more extense than it but it's
06:05.360 --> 00:06:07.919
great i would highly recommend if you
06:07.919 --> 00:06:10.639
want to write a gui application in
06:10.639 --> 00:06:14.400
common lisp well mcclain is great
06:14.400 --> 00:06:18.400
also some people thought about
06:18.400 --> 00:06:20.160
libraries for writing emac style
06:20.160 --> 00:06:22.720
application so to create an emacs some
06:22.720 --> 00:06:24.720
people already thought about this and
06:24.720 --> 00:06:26.479
wrote a paper
06:26.479 --> 00:06:27.440
um
06:27.440 --> 00:06:29.840
one of them was robert strand
06:29.840 --> 00:06:32.319
which is the guy more interested in in
06:32.319 --> 00:06:34.880
imax like things
06:34.880 --> 00:06:36.479
and this paper is great you can get a
06:36.479 --> 00:06:37.759
lot of information how you can write
06:37.759 --> 00:06:39.360
your application get
06:39.360 --> 00:06:41.039
similar functionality and all the things
06:41.039 --> 00:06:43.600
that i said before
06:43.600 --> 00:06:45.840
and also the same
06:45.840 --> 00:06:47.039
of the
06:47.039 --> 00:06:49.199
robert strand or the guys that wrote
06:49.199 --> 00:06:52.240
that paper also wrote clefo which is
06:52.240 --> 00:06:54.479
a library for text editor buffer but
06:54.479 --> 00:06:57.599
more important it's also a definition
06:57.599 --> 00:06:59.599
so this video
06:59.599 --> 00:07:02.639
out there will where he explains
07:02.639 --> 00:07:03.599
um
07:03.599 --> 00:07:05.919
what clapper is so he wrote an
07:05.919 --> 00:07:08.479
implementation of clover but it's more
07:08.479 --> 00:07:12.000
of like a
07:12.000 --> 00:07:12.880
um
07:12.880 --> 00:07:14.400
yeah
07:14.400 --> 00:07:17.599
like a standard like a way to write
07:17.599 --> 00:07:20.639
uh how buffers or work in emacs
07:20.639 --> 00:07:23.280
and i think it's better
07:23.280 --> 00:07:25.599
in some ways that what imac genuine mac
07:25.599 --> 00:07:26.960
does right now
07:26.960 --> 00:07:29.039
um in other ways it's really interesting
07:29.039 --> 00:07:31.759
and i just have had a lot of fun
07:31.759 --> 00:07:33.360
implementing it so
07:33.360 --> 00:07:35.919
i'm using it more or less
07:35.919 --> 00:07:38.080
uh so yeah that's some great
07:38.080 --> 00:07:40.479
documentation great foundation so you
07:40.479 --> 00:07:42.080
don't have to
07:42.080 --> 00:07:43.599
i mean it's
07:43.599 --> 00:07:44.879
really
07:44.879 --> 00:07:46.319
interesting to write everything by
07:46.319 --> 00:07:48.080
yourself because you are
07:48.080 --> 00:07:49.120
a great
07:49.120 --> 00:07:51.440
programmer and you you want to have
07:51.440 --> 00:07:52.879
control of everything i understand
07:52.879 --> 00:07:54.800
everything from the ground up but we
07:54.800 --> 00:07:56.720
have to understand that
07:56.720 --> 00:07:58.879
an imax it's a really complex
07:58.879 --> 00:08:00.639
application
08:00.639 --> 00:08:01.759
and
08:01.759 --> 00:08:03.120
i will say that if you have some
08:03.120 --> 00:08:05.520
foundation it will be easier and you
08:05.520 --> 00:08:08.479
don't have to rewrite the wheel 20 times
08:08.479 --> 00:08:10.080
right
08:10.080 --> 00:08:12.720
okay so attempts uh the same guy robert
08:12.720 --> 00:08:13.680
strand
08:13.680 --> 00:08:16.879
have two climax which is emacs and emacs
08:16.879 --> 00:08:19.360
like thing written in common lisp
08:19.360 --> 00:08:21.599
um the first ones the third one is
08:21.599 --> 00:08:23.360
abandon and the second one is a work in
08:23.360 --> 00:08:24.840
progress
08:24.840 --> 00:08:27.039
um it's really interesting the second
08:27.039 --> 00:08:29.440
one uses in fact the clefor buffer
08:29.440 --> 00:08:32.159
implementation one question
08:32.159 --> 00:08:36.880
and the first one is just a mcclaim um
08:36.880 --> 00:08:39.200
front end remax so it's really tight the
08:39.200 --> 00:08:40.800
so the the
08:40.800 --> 00:08:42.959
interface retired with the api so it's
08:42.959 --> 00:08:44.880
basically i'm sickly
08:44.880 --> 00:08:48.320
um software that's similar to an emacs
08:48.320 --> 00:08:49.360
right
08:49.360 --> 00:08:51.760
and the third one it's a lem project
08:51.760 --> 00:08:54.240
which is a common lisp editor that aims
08:54.240 --> 00:08:56.320
to be really close to remax and it
08:56.320 --> 00:08:59.519
probably fits the criteria but
08:59.519 --> 00:09:01.600
and uses the encourages for the
09:01.600 --> 00:09:03.279
interface for as i know and it's really
09:03.279 --> 00:09:05.200
commonly focused so it even has some
09:05.200 --> 00:09:08.560
major modes for other languages but
09:08.560 --> 00:09:09.839
i mean it's
09:09.839 --> 00:09:11.279
um
09:11.279 --> 00:09:13.440
it's mainly for common lisp written by
09:13.440 --> 00:09:15.680
common lisp and for common list
09:15.680 --> 00:09:18.080
developers
09:18.080 --> 00:09:21.839
um so i decided to write my own emacs
09:21.839 --> 00:09:23.839
but i don't want to write everything
09:23.839 --> 00:09:25.680
from scratch
09:25.680 --> 00:09:28.720
because i'm not a creator programmer
09:28.720 --> 00:09:29.839
and also because probably there's
09:29.839 --> 00:09:33.040
something that some people already tried
09:33.040 --> 00:09:34.640
and the first thing i noticed with all
09:34.640 --> 00:09:36.480
these attempts
09:36.480 --> 00:09:38.959
that they fail in compete with emacs so
09:38.959 --> 00:09:41.920
to say they don't have an imax conf
09:41.920 --> 00:09:43.839
and they don't support genuine max
09:43.839 --> 00:09:45.440
packages
09:45.440 --> 00:09:46.880
and that's a big deal because they're
09:46.880 --> 00:09:49.519
more of the thousands packages out there
09:49.519 --> 00:09:51.040
under great
09:51.040 --> 00:09:53.120
and imagine they want to convince
09:53.120 --> 00:09:54.800
someone to say hey try this editor
09:54.800 --> 00:09:57.440
instead of x thing
09:57.440 --> 00:09:59.839
i would say okay can i use git things so
09:59.839 --> 00:10:02.079
i have to write a git
10:02.079 --> 00:10:02.959
um
10:02.959 --> 00:10:04.640
liar
10:04.640 --> 00:10:07.360
maggot or mode and i want to play tetris
10:07.360 --> 00:10:09.440
the other road so that's
10:09.440 --> 00:10:10.640
really
10:10.640 --> 00:10:12.640
hard for one person to do
10:12.640 --> 00:10:14.079
so someone
10:14.079 --> 00:10:16.240
thought similar so they say okay i'm
10:16.240 --> 00:10:18.079
going to rewrite the maxi aph common
10:18.079 --> 00:10:19.200
lisp
10:19.200 --> 00:10:21.440
it was this is what back in 2005 by sol
10:21.440 --> 00:10:22.399
bets
10:22.399 --> 00:10:24.000
sabits
10:24.000 --> 00:10:26.000
but it was banjo in 2007. the project
10:26.000 --> 00:10:27.600
was called lice
10:27.600 --> 00:10:28.640
and
10:28.640 --> 00:10:31.600
it was a really interesting approach
10:31.600 --> 00:10:34.880
um it wasn't finished and it was lost in
10:34.880 --> 00:10:35.920
time
10:35.920 --> 00:10:37.440
so my idea was to continue with the
10:37.440 --> 00:10:38.880
project so the foundation was really
10:38.880 --> 00:10:40.320
interesting even though i didn't like
10:40.320 --> 00:10:42.160
some other
10:42.160 --> 00:10:43.760
designing choices
10:43.760 --> 00:10:45.360
um but i want to continue with projects
10:45.360 --> 00:10:47.519
finished you cannot see emacs api add a
10:47.519 --> 00:10:49.839
compatibility layer to use canoe max
10:49.839 --> 00:10:52.000
packages that's the selling point right
10:52.000 --> 00:10:53.760
so you don't have to
10:53.760 --> 00:10:56.000
use new things
10:56.000 --> 00:10:57.839
i like my emacs i just want to have my
10:57.839 --> 00:11:00.560
emacs with commodities that's it and
11:00.560 --> 00:11:02.959
also better probably a better buffer
11:02.959 --> 00:11:05.519
implementation so the idea now that uh
11:05.519 --> 00:11:07.839
having an imaginativity layer
11:07.839 --> 00:11:10.320
is there improving e-max upon it right
11:10.320 --> 00:11:13.040
you can use the e-max api or the new one
11:13.040 --> 00:11:14.880
depending on your needs
11:14.880 --> 00:11:15.760
you can also have that that
11:15.760 --> 00:11:19.120
compatibility of both
11:19.120 --> 00:11:21.920
so um i come up with cedar
11:21.920 --> 00:11:25.839
um cedar is my attempt is a nice
11:25.839 --> 00:11:27.120
fork
11:27.120 --> 00:11:30.079
i will say the hug for hard fork because
11:30.079 --> 00:11:32.399
i change um
11:32.399 --> 00:11:35.200
a lot of things and add a lot of things
11:35.200 --> 00:11:37.519
but it's similar still similar
11:37.519 --> 00:11:38.320
um
11:38.320 --> 00:11:39.680
and for this demo i'm going to use the
11:39.680 --> 00:11:41.839
cidar and courses branch we want to test
11:41.839 --> 00:11:44.880
it out because the other ones are a work
11:44.880 --> 00:11:46.560
in progress so one
11:46.560 --> 00:11:48.079
it's the mclean
11:48.079 --> 00:11:49.519
club for implementation which is not
11:49.519 --> 00:11:51.360
finished and doesn't run
11:51.360 --> 00:11:54.560
and the other one is with the visual
11:54.560 --> 00:11:54.959
that's to explain here but basically
11:54.959 --> 00:11:57.200
and debugger
11:57.200 --> 00:11:59.600
it's an interesting debugger similar to
11:59.600 --> 00:12:01.839
slime
12:01.839 --> 00:12:04.560
which is the superior lisp
12:04.560 --> 00:12:07.279
for re max let's begin with max so it's
12:07.279 --> 00:12:12.079
increases base also like um
12:12.079 --> 00:12:13.760
like limb
12:13.760 --> 00:12:16.959
but um way more easy simple
12:16.959 --> 00:12:19.279
um i
12:19.279 --> 00:12:22.880
write well i translate more or less this
12:22.880 --> 00:12:24.560
list mode functionality
12:24.560 --> 00:12:26.079
and it has similar
12:26.079 --> 00:12:28.079
genuine max api
12:28.079 --> 00:12:29.600
we'll see that in the demo
12:29.600 --> 00:12:31.600
um it's usable but i work in progress
12:31.600 --> 00:12:33.279
instead of functionality right now i'm
12:33.279 --> 00:12:35.279
not focusing on stability yet i'm
12:35.279 --> 00:12:38.240
focusing finish the mclean front end
12:38.240 --> 00:12:41.120
which i'm not even halfway there
12:41.120 --> 00:12:42.720
but i hope to finish it
12:42.720 --> 00:12:45.519
maybe next year who knows
12:45.519 --> 00:12:46.959
finish the compatibility layer from the
12:46.959 --> 00:12:48.399
new max packages i seen this i think
12:48.399 --> 00:12:50.959
this is doable i know how to do it i
12:50.959 --> 00:12:52.639
just need time
12:52.639 --> 00:12:53.600
maybe
12:53.600 --> 00:12:55.760
a little bit of caffeine
12:55.760 --> 00:12:57.040
coffee
12:57.040 --> 00:12:59.279
so uh let's go with the demo right
12:59.279 --> 00:13:02.079
so uh let's open terminal what's this
13:02.079 --> 00:13:04.800
anchor base let's go to quick lisp
13:04.800 --> 00:13:06.800
log there
13:06.800 --> 00:13:11.279
um and let's run it
13:11.279 --> 00:13:13.760
okay so now that we're here um it give
13:13.760 --> 00:13:16.000
us the welcome thing this is the main
13:16.000 --> 00:13:17.519
buffer it's like we'll say the emacs
13:17.519 --> 00:13:19.200
buffer when you enter
13:19.200 --> 00:13:21.040
um so we know that it's firming this is
13:21.040 --> 00:13:22.800
not hardcoded
13:22.800 --> 00:13:25.040
okay and now we see it's a major mode in
13:25.040 --> 00:13:27.200
the bottom right lisp
13:27.200 --> 00:13:29.360
it's lisp interaction and
13:29.360 --> 00:13:32.880
this is the name of the buffer right
13:32.880 --> 00:13:35.600
um okay so we have a couple of buffers
13:35.600 --> 00:13:38.240
we have scratch which is the fundamental
13:38.240 --> 00:13:40.720
mode and messages all right
13:40.720 --> 00:13:42.399
okay so
13:42.399 --> 00:13:44.639
let's get some interesting things first
13:44.639 --> 00:13:46.399
uh let's open a file
13:46.399 --> 00:13:48.959
so i think it's in
13:48.959 --> 00:13:51.199
programming
13:51.199 --> 00:13:53.440
a max
13:53.440 --> 00:13:56.480
conf 2021 and let's go to c there
13:56.480 --> 00:13:58.079
let's go to demo
13:58.079 --> 00:14:00.000
so let's open a file so
14:00.000 --> 00:14:01.440
um
14:01.440 --> 00:14:03.040
phone lock is not yet
14:03.040 --> 00:14:04.399
um
14:04.399 --> 00:14:06.240
well it's implemented so it's there but
14:06.240 --> 00:14:07.920
it's not active by default
14:07.920 --> 00:14:09.680
so let's open
14:09.680 --> 00:14:11.360
uh mx
14:11.360 --> 00:14:13.600
and let's go lisp
14:13.600 --> 00:14:16.079
interaction mode
14:16.079 --> 00:14:17.279
right
14:17.279 --> 00:14:19.199
so this when you show me here is the
14:19.199 --> 00:14:21.680
implementation of the kill sex sex
14:21.680 --> 00:14:24.240
express s expression command
14:24.240 --> 00:14:28.880
which is exactly the same point by point
14:28.880 --> 00:14:31.279
from the emacs one you can go right now
14:31.279 --> 00:14:32.959
umax and ask
14:32.959 --> 00:14:35.279
how is skills s expression defined this
14:35.279 --> 00:14:36.480
is the same
14:36.480 --> 00:14:38.560
and this is how you define a key so we
14:38.560 --> 00:14:41.920
have we can say uh describe
14:41.920 --> 00:14:43.839
symbol
14:43.839 --> 00:14:46.399
the package will be
14:46.399 --> 00:14:48.399
cedar and the symbol is
14:48.399 --> 00:14:50.480
global map
14:50.480 --> 00:14:51.610
global map
14:51.610 --> 00:14:53.279
[Applause]
14:53.279 --> 00:14:54.240
so
14:54.240 --> 00:14:56.160
it's a top level global keymap
14:56.160 --> 00:14:58.480
thank you for the information
14:58.480 --> 00:15:02.160
um but you can also say okay uh can i
15:02.160 --> 00:15:05.120
say okay
15:05.120 --> 00:15:08.000
global map
15:08.000 --> 00:15:10.079
okay i'll be giving this a key map so
15:10.079 --> 00:15:11.600
even though i want to aim to have the
15:11.600 --> 00:15:12.480
same
15:12.480 --> 00:15:15.920
um api the
15:15.920 --> 00:15:17.760
um sorry
15:17.760 --> 00:15:20.079
uh the back thing so the back end is
15:20.079 --> 00:15:22.480
going to be class oriented and not same
15:22.480 --> 00:15:24.720
any max but the return expression should
15:24.720 --> 00:15:27.680
be really similar so if we say current
15:27.680 --> 00:15:29.759
buffer
15:29.759 --> 00:15:31.759
it will give us the buffer it's not the
15:31.759 --> 00:15:33.759
same in emacs but it's a buffer object
15:33.759 --> 00:15:35.519
and we can also ask
15:35.519 --> 00:15:37.519
about let me try to remember
15:37.519 --> 00:15:39.440
oh there we are
15:39.440 --> 00:15:40.639
um
15:40.639 --> 00:15:41.839
but for
15:41.839 --> 00:15:45.680
name we can close this and open one here
15:45.680 --> 00:15:48.079
and we can say okay so we have this
15:48.079 --> 00:15:48.959
thing
15:48.959 --> 00:15:50.959
that will give us the name so uh this is
15:50.959 --> 00:15:52.800
similar to the emacs api
15:52.800 --> 00:15:54.399
as we saw we
15:54.399 --> 00:15:55.120
so
15:55.120 --> 00:15:57.519
briefly we have a lot a couple of
15:57.519 --> 00:15:58.639
commands
15:58.639 --> 00:16:00.240
um
16:00.240 --> 00:16:02.160
kills expression also have a little bit
16:02.160 --> 00:16:03.759
of
16:03.759 --> 00:16:06.639
help kill word kill line
16:06.639 --> 00:16:07.680
region
16:07.680 --> 00:16:08.959
kill buffer
16:08.959 --> 00:16:11.440
all things that we expect from emacs
16:11.440 --> 00:16:12.800
um
16:12.800 --> 00:16:14.320
and yeah this is there's a couple of
16:14.320 --> 00:16:16.160
things i may show but i think this is
16:16.160 --> 00:16:18.320
good enough i don't have enough time if
16:18.320 --> 00:16:20.720
you want more information
16:20.720 --> 00:16:22.800
so let's go back to it let's close the
16:22.800 --> 00:16:25.680
buffer does it work no it doesn't work
16:25.680 --> 00:16:28.079
okay now the head buffer no ah let's go
16:28.079 --> 00:16:29.920
to cedar
16:29.920 --> 00:16:32.320
okay so if you want more information
16:32.320 --> 00:16:32.870
um
16:32.870 --> 00:16:34.399
[Applause]
16:34.399 --> 00:16:36.880
first of all thank you very much um
16:36.880 --> 00:16:39.040
sorry i don't have enough time to show
16:39.040 --> 00:16:40.320
too much too many things i will see
16:40.320 --> 00:16:42.560
there but um
16:42.560 --> 00:16:44.639
yeah uh
16:44.639 --> 00:16:45.839
if you want more information you can
16:45.839 --> 00:16:48.079
always send me an email this is my
16:48.079 --> 00:16:50.240
webpage
16:50.240 --> 16:53.720
thank you very much
|