My Emacs Workflow - As a Software Engineer and Student

Gavin Freeborn
29 May 202214:01

Summary

TLDRThe video script details a developer's transition from Vim to Emacs, exploring the efficiency of Emacs for daily tasks. It covers the use of Emacs's client-server architecture for quick startups, window management, and split screens. The script addresses command line workflows, showcasing how to run and manage commands within Emacs, including using 'popper' for terminal emulation. It also discusses note-taking integration, using 'org-protocol' for capturing ideas and code snippets. The video further delves into compiling code with Emacs, utilizing 'compile' command customizations, and leveraging 'lsp-mode' for coding assistance. Lastly, it touches on using Emacs for communication, like managing Matrix and Discord servers through 'eminent', and concludes with a call for viewer engagement and support.

Takeaways

  • 🔧 The speaker transitioned from Vim to Emacs and shares their workflow to address common questions about adapting to Emacs.
  • 🖥️ Emacs' client-server architecture allows for quick restarts and shared buffers between windows, aiding in efficient window management.
  • 🗂️ The speaker heavily utilizes splits in Emacs for multitasking and integrates this with their window manager for a seamless experience.
  • 💻 The command line workflow in Emacs can be similar to using a terminal, with the added benefit of asynchronous command execution and buffer sharing.
  • 🔗 Popper, a plugin/package, is used to manage multiple terminal-like buffers that can pop up and be hidden with a key binding.
  • 📝 For programming, Emacs can replace the need for multiple terminal windows with its built-in terminal emulation and shell functionality.
  • 📑 The 'with-editor' package allows external applications like Git to open and edit commit messages within Emacs buffers.
  • 📝 Note-taking in Emacs is enhanced by the ability to capture thoughts and ideas directly within the editor and link them to specific lines of code.
  • 🔗 The Org protocol and related tools enable capturing information from outside Emacs, like web pages, and integrating it into notes.
  • 🔧 Emacs' compile command simplifies the process of compiling code with customizable commands and environment variable settings.
  • ⚙️ LSP mode provides code hinting and snippets in Emacs, enhancing the coding experience, while the speaker prefers Temple for template management.

Q & A

  • What is the main topic of the video script?

    -The main topic of the video script is the presenter's workflow with Emacs, a text editor, and how they transitioned from using Vim, addressing common concerns and sharing their personal Emacs setup and usage.

  • How does the presenter utilize Emacs' client-server architecture?

    -The presenter uses Emacs' client-server architecture by starting Emacs with the server enabled, allowing for quicker subsequent opens and shared buffers between windows, which aids in efficient window management.

  • What is the significance of using 'popper' in the presenter's workflow?

    -Popper is a plugin that allows the presenter to have terminal-like buffers that act like pop-ups, which can be hidden and popped back up with a key binding, facilitating the management of multiple buffers for one-off commands.

  • How does the presenter handle running simple commands within Emacs?

    -The presenter can run simple commands within Emacs using the 'alt shift and the & symbol' to execute an asynchronous command in a buffer, providing a dumb terminal experience with additional Emacs functionalities.

  • What is the presenter's approach to using a terminal within Emacs?

    -The presenter can use 'vterm' for a fully functional terminal within Emacs or rely on a shell with Emacs key bindings for simpler terminal needs, allowing for completion and history searches without leaving the editor.

  • How does the 'with-editor' package assist the presenter in their workflow?

    -The 'with-editor' package allows the presenter to edit messages of commands like 'git commit' within Emacs, providing a seamless integration with the text editor for tasks that would typically require an external text editor.

  • What is the presenter's method for capturing thoughts or ideas during their work?

    -The presenter uses a capture interface in Emacs, triggered by a key binding, to quickly jot down thoughts or ideas, which are then stored in a designated notes file, allowing for easy retrieval and reference.

  • How does the presenter integrate note-taking with their code?

    -The presenter can link notes to specific lines of code, enabling them to jump back to the exact location in the code where the note was made, facilitating a tight integration between thought process and code development.

  • What is the 'org-protocol' and how does the presenter use it?

    -The 'org-protocol' is a method that allows the presenter to capture information from outside of Emacs, such as highlighted text, and add it to their notes within Emacs, enhancing the integration with other tools.

  • How does the presenter handle compiling code within Emacs?

    -The presenter uses the 'compile' command in Emacs, which can be customized for different file types or specific projects, and even set environment variables for tasks like resolving version conflicts in programming languages.

  • What is the presenter's preference for code snippets and why?

    -The presenter prefers using 'temple' for code snippets over 'yasnippet' due to personal preference for the way 'temple' handles templates, despite the need to pre-define snippets in 'temple'.

  • How does the presenter manage their communication across different platforms like Discord and Matrix?

    -The presenter uses 'eminent' to manage Matrix servers and mentions using Discord for school-related servers, highlighting the flexibility of using different platforms and the presenter's preference for staying connected.

Outlines

00:00

📝 Emacs Workflow Introduction

The speaker discusses their transition from Vim to Emacs and addresses common questions about daily workflow efficiency. They highlight the flexibility of Emacs, emphasizing that there are countless ways to customize it. The speaker shares their personal Emacs setup, including server-client architecture for quick startups and efficient window management with split screens. They also touch on the integration of command line operations within Emacs, showcasing how to run asynchronous commands and utilize popper for pop-up terminals, which aids in buffer management.

05:01

🔧 Enhancing Command Line Experience in Emacs

This paragraph delves into the command line workflow within Emacs, especially for those accustomed to using the terminal extensively. The speaker demonstrates how to execute simple commands directly in Emacs and how to utilize packages like 'popper' for enhanced terminal functionality. They also mention the use of 'vterm' for a full terminal experience and discuss shell integration for tasks that require a consistent terminal session. The speaker shares tips on using environment variables to handle version conflicts and the use of 'with-editor' for text editor integration in command-line tools.

10:03

📓 Note-Taking and Documentation in Emacs

The speaker describes their note-taking process in Emacs, which includes capturing thoughts and ideas directly within the editor. They use the 'org-mode' for note organization and demonstrate how to capture and link notes to specific lines of code. The speaker also explains how to integrate Emacs with other tools for capturing content from outside the editor, using the 'org-protocol'. Furthermore, they discuss the use of 'org-mode' for documenting project progress and sharing updates with colleagues via HTML exports, highlighting the efficiency of Emacs in both coding and documentation tasks.

🛠️ Code Compilation and Development Tools in Emacs

The speaker addresses the concerns around code compilation in Emacs, explaining the use of the 'compile' command for different programming languages and how to set environment variables for specific compilation tasks. They also discuss the use of 'lsp-mode' for code hinting and 'temple' for code snippets, comparing these with other alternatives like 'eglot' and 'yasnippet'. The speaker shares their preferences and setup for Lisp editing with 'sly' and mentions their communication tools, 'eminent' for Matrix and 'element' for Discord, showcasing the versatility of Emacs in development and communication.

Mindmap

Keywords

💡Emacs

Emacs is a highly customizable text editor that is popular among programmers and developers for its powerful features and extensibility. In the video, the speaker discusses their personal workflow with Emacs, highlighting how they transitioned from using Vim and adapted Emacs to suit their day-to-day tasks, such as compiling code and managing buffers.

💡Vim

Vim is another widely used text editor known for its efficiency and flexibility. The speaker mentions Vim as the previous editor they used before switching to Emacs, and they compare the workflow between the two, addressing common concerns about transitioning to Emacs.

💡Client-Server Architecture

This refers to a software design pattern where the program is divided into two parts: the client, which makes requests, and the server, which processes them. In the context of Emacs, the speaker uses the client-server architecture to quickly open new instances of Emacs and share buffers between windows.

💡Splits

In the video, 'splits' refer to the division of the Emacs window into multiple sections, allowing the user to view and edit different files or parts of a file simultaneously. The speaker mentions using splits heavily for their workflow, integrating it with their window manager.

💡Asynchronous Command

An asynchronous command in Emacs allows the user to run a system command without blocking Emacs' main interface. The speaker demonstrates this by using a key binding to update their distribution, showing how Emacs can handle system commands within the editor.

💡Popper

Popper is a plugin for Emacs that provides a popup terminal interface. The speaker uses Popper to manage buffers and run commands within Emacs, making it easier to work with multiple terminal sessions without leaving the editor.

💡Vterm

Vterm is a package for Emacs that provides a fully functional terminal emulator within the editor. The speaker mentions Vterm as an alternative to using external terminals, allowing for a more integrated development environment.

💡Shell

In the context of the video, a 'shell' refers to a command-line interface for Emacs that allows the user to execute shell commands directly within the editor. The speaker discusses using the shell for tasks like running Node.js projects and managing terminal sessions.

💡LSP Mode

LSP Mode stands for Language Server Protocol mode, which is a feature in Emacs that provides language-specific features such as code completion, diagnostics, and code navigation. The speaker mentions using LSP mode for code hinting and editing, highlighting its importance in their workflow.

💡Note-Taking

The speaker discusses their note-taking process within Emacs, which involves capturing thoughts and ideas while programming. They use Emacs commands to quickly jot down notes and associate them with specific lines of code or projects, demonstrating how Emacs can be used for more than just code editing.

💡Compile Command

The compile command in Emacs is used to execute a command for building or compiling code. The speaker explains how they use this command for various programming tasks, including setting environment variables for different projects and integrating with other tools like 'with-editor'.

💡Org-Protocol

The Org-protocol is a method for Emacs to handle requests from other applications, such as capturing text from a web page and adding it to an Org-mode file. The speaker describes setting up Org-protocol to capture notes from outside of Emacs, showing its versatility in integrating with other tools.

💡Matrix

Matrix is an open standard for secure and decentralized communication, and the speaker mentions using a Matrix client within Emacs to manage their communication channels. This demonstrates the speaker's preference for open and decentralized solutions in their workflow.

Highlights

Transition from Vim to Emacs and the resulting workflow questions.

Introduction to personal Emacs workflow with various tools and functions.

Utilization of Emacs's client-server architecture for quick session restarts.

Integration of Emacs with window manager for efficient buffer sharing.

Exploration of command line workflow in Emacs using async shell commands.

Use of popper package for pop-up terminal functionality in Emacs.

Comparison between Emacs integrated terminal and traditional terminal usage.

Demonstration of using shell in Emacs for programming tasks and session management.

Explanation of environment variable setup for consistent terminal sessions.

Discussion on capturing thoughts and ideas within Emacs for better integration with work.

Use of org-protocol for capturing information from outside of Emacs.

Application of the rubber ducky principle for problem-solving within Emacs.

Documentation of project progress using Emacs and sending updates via email.

Compiling code in Emacs using the compile command and custom configurations.

Setting environment variables within Emacs for specific programming language versions.

Use of LSP mode for code hinting and the transition from eglot to lsp-mode.

Employment of temple for code snippets in Emacs as an alternative to yasnippet.

Integration of Emacs with Discord and Matrix using eminent and emint.

Acknowledgment of Patreon and GitHub Sponsors for their support.

Transcripts

play00:00

so when i first switched to emacs from

play00:02

vim i got a lot of questions asking me

play00:04

how i get my day-to-day workflow done a

play00:06

lot of people say questions like i'm not

play00:08

able to compile code i don't really know

play00:10

a good workflow or

play00:12

using the command line is just what i

play00:14

know and i don't know how i could switch

play00:15

away from it and a lot of questions and

play00:17

statements like that that kind of made

play00:19

me interested in talking a bit about my

play00:21

workflow with emacs so i decided to make

play00:23

this video just introducing you guys to

play00:25

some of the concepts some of the tools

play00:27

some of the functions that i use day to

play00:30

day with emacs to try and give you guys

play00:32

a better idea of kind of what a possible

play00:34

workflow is there are literally

play00:36

millions of ways that you can use emacs

play00:38

this is just how i personally use it

play00:40

anyways without any more delays let's

play00:41

get into it

play00:43

[Music]

play00:46

so first off when i start up emacs i

play00:48

have the actual server startup as well

play00:51

so that way i can actually take

play00:53

advantage of emacs's client server

play00:55

architecture once i open emacs once i

play00:57

can basically open them again

play01:00

very quickly

play01:01

faster than a lot of terminals can open

play01:03

up because of that i can also have share

play01:05

buffers between my windows that takes up

play01:06

a lot of my window management i also use

play01:09

splits pretty heavily so just like this

play01:11

i can switch back and forth between

play01:13

splits and i actually have that

play01:14

integrated into my window manager i'll

play01:17

post my configuration for that down in

play01:19

the description if you guys are

play01:20

interested now probably the biggest

play01:22

thing for people coming from vim to

play01:24

emacs is the question of how does my

play01:26

command line work flow go

play01:28

i'm really used to using the command

play01:29

line i'm used to opening up a ton of

play01:31

terminals and just running a command in

play01:33

those then putting them off to the side

play01:34

and ignoring them for a bit now luckily

play01:36

the workflow actually doesn't change too

play01:38

much if you're just running like simple

play01:39

commands you can actually do a ton of

play01:41

that just from emacs without any real

play01:43

thought a good example of one that i run

play01:44

all the time is updating my distribution

play01:47

now for me all i would do is i would do

play01:49

alt shift and the and symbol and this

play01:52

allows me to run an asynchronous command

play01:54

now i could do yay dash s-y-y-u enter

play01:57

and it will run the command just down

play01:59

here if i wanted it to maybe be a bit

play02:00

bigger i can make it a bit larger i can

play02:03

just simply hit enter and it will run my

play02:05

update and everything which is pretty

play02:06

helpful it's also worth noting that this

play02:08

gives you a dumb terminal so you do get

play02:10

access to a bit of extra functionality

play02:12

good example of this is being able to

play02:14

move around just like you would any

play02:16

other buffer um without having to enter

play02:18

some special mode and you can also just

play02:19

type stuff and it will treat it like

play02:21

normal obviously since this is running

play02:23

an update that's not really going to do

play02:24

too much for me now the nice thing about

play02:26

this is that since i use this plugin or

play02:28

package popper it basically allows me to

play02:31

have this kind of act like a pop-up

play02:33

terminal so a good example is i could do

play02:36

just one key binding hide it pop it back

play02:38

up and i can have multiple of these if i

play02:40

wanted to and i use that for managing a

play02:41

lot of my buffers that i kind of just

play02:43

want to use for a quick little one-off

play02:44

command or something like that now when

play02:46

i really need a terminal often i will

play02:48

just open up a terminal but sometimes

play02:51

i'm not as much of a fan of this

play02:52

workflow but i know a lot of people are

play02:54

you could use v term and you get a fully

play02:57

functional terminal and you could do i

play02:59

don't know vim there you go and you can

play03:01

run neovim inside of emacs if you really

play03:03

wanted to do that but uh not really

play03:05

necessary for most people and it's

play03:07

actually pretty surprisingly fast about

play03:09

as fast as you would expect any

play03:11

integrated terminal in a text editor to

play03:13

be now usually when it comes to normal

play03:15

programming a lot of stuff that i end up

play03:17

doing is running a command maybe i want

play03:19

to have like a session for example if

play03:20

i'm working on a node project sort of

play03:23

stuff blah blah um but sometimes that

play03:25

just is how it is that's how jobs work

play03:27

uh and so sometimes you have to work

play03:29

with node and sometimes you want to use

play03:30

nvm and have a consistent terminal

play03:32

session going and then what i tend to

play03:34

use is i tend to use a shell so i'll run

play03:36

the command shell and this will give me

play03:38

a simple

play03:39

um kind of like a simple dumbed-down

play03:41

shell it still gives me the same key

play03:43

bindings i'm used to in emacs if i did

play03:45

ls i could kind of jump around just like

play03:46

normal and it allows me to get the same

play03:48

completion so if i want to do cat

play03:50

tm and i could just hit alt slash and i

play03:53

could get completion so tmp dot c alt

play03:56

tab and that will try and complete it i

play03:58

also obviously have a completion coming

play04:01

from corfu which is my completion engine

play04:04

basically what i use for code completion

play04:05

but you can also kind of like copy stuff

play04:07

around too if you wanted to and you get

play04:08

like history backward searches i don't

play04:11

really know what uh commands i ran

play04:12

recently apparently i ran reboot

play04:14

somewhere recently now probably the big

play04:16

fear that a lot of people have with

play04:17

using something like this is if they

play04:19

called something like man and then

play04:20

normally you would get

play04:22

an interface with less but you can

play04:23

actually basically add an environment

play04:25

variable to tell it to use cat instead

play04:27

of less and then as a result it gives

play04:29

you a nice little way to avoid having

play04:32

less because unfortunately less doesn't

play04:33

really work in shell you'd have to use v

play04:35

term to have that full terminal

play04:36

functionality but who really needs less

play04:39

when you have your entire text editor to

play04:41

be able to do this obviously this is a

play04:43

in my opinion better option than using

play04:45

less it opens about as fast and

play04:47

everything like that so not much reason

play04:48

to use less in my mind and also there's

play04:50

already a man command in emacs but this

play04:53

was just a simple example now something

play04:55

worth noting is that there is a cage out

play04:57

there called with editor i believe it's

play04:59

called which basically it's used in

play05:01

magic which is a get client for emacs so

play05:04

by default your alt uh your old amber

play05:07

and symbol i won't actually call this it

play05:09

will run async shell command but i have

play05:11

it bound to with editor async shell

play05:13

command

play05:14

so that way i can do something like git

play05:16

commit

play05:18

and then hit enter

play05:19

uh yeah let's open that in a new buffer

play05:21

and it will actually let me edit this in

play05:23

emacs so updated

play05:26

templates

play05:28

i guess

play05:29

there we go

play05:31

so as you can see it actually works

play05:32

pretty well and you get a nice little

play05:34

way to kind of integrate well with the

play05:37

text editor when you run a command this

play05:39

can be done with pretty much anything

play05:41

that calls your text editor

play05:42

right now on to note taking so a lot of

play05:45

times when i am programming or really

play05:48

getting any of my work done a lot of

play05:50

times i'll have a thought or an idea and

play05:51

i want to

play05:53

capture that in a note now what i used

play05:54

to do is i would use like the notes app

play05:56

on my phone but that's not very helpful

play05:58

because then you kind of lose a lot of

play05:59

functionality you don't have access to

play06:01

it on your computer you can't jump from

play06:03

that to a line of code that's

play06:05

kind of crazy i've never really heard of

play06:06

people doing that um with a lot of their

play06:07

note-taking but that's how i like to do

play06:10

a lot of my stuff so say for example i'm

play06:12

editing my configuration and i think of

play06:14

a pretty clever idea and i would run the

play06:16

command or the key binding control cc to

play06:18

get a capture interface and this will

play06:20

give me a bunch of options um so let's

play06:22

just do

play06:23

c for cool thing

play06:24

and then this line was pretty cool

play06:29

and then ctrl c ctrl c and that will

play06:32

store that in my notes under this file

play06:34

right here and if i just do control u

play06:37

ctrl c c

play06:39

and then do c to cool it will actually

play06:41

take us to it and this

play06:42

so this is the

play06:44

little part that we added and we can

play06:46

actually do ctrl c ctrl o to kind of

play06:48

jump to that line in the code and it

play06:50

will take us to the exact line that we

play06:51

took that note at um and you can expand

play06:53

this pretty far in fact i have that set

play06:55

up with cute browser

play06:56

as well as recently i set that up with

play06:58

mixed and just for reference you can

play07:00

actually take this a little farther so

play07:02

while right now i'm just able to do

play07:03

capturing from within emacs i can

play07:05

actually do capturing from outside of

play07:07

emacs so let's highlight this text and i

play07:09

have this set up myself and you can do

play07:11

ctrl c ctrl c and it will actually give

play07:14

you a little prompt so let's do to do

play07:16

this time hit enter and then it will

play07:17

actually capture it and takes the text

play07:19

that we had highlighted and allows me to

play07:21

give it a name

play07:22

and then i can go ahead and save that

play07:24

and it's added to my notes just like

play07:26

that very easy to integrate with other

play07:27

tools i'm using something called the org

play07:30

protocol you can kind of integrate this

play07:31

into

play07:32

more normal browsers as well there might

play07:34

be something like that out for a similar

play07:36

program using a plug-in this is actually

play07:38

relatively straightforward with emacs

play07:41

now while this may seem really simple i

play07:43

actually do this quite a lot especially

play07:44

when i want to kind of think through a

play07:46

problem a lot of times

play07:49

what you'll end up doing when you're

play07:50

working on a big project is you'll have

play07:51

a question for somebody

play07:53

and before i actually ask them the

play07:55

question what i try to do is ask it

play07:56

myself so i'll write down as much

play07:58

information as i can so a good idea

play08:00

would be to

play08:01

capture and then it would be knowledge

play08:04

it's okay and i would type in a thing

play08:07

a bit of a description about what's

play08:09

going wrong and i would write out word

play08:11

for word what my problem is as if i was

play08:13

going to tell it to someone and then

play08:15

this actually allows me to

play08:17

come up with the solution myself it's

play08:19

what's known as a rubber ducky principle

play08:20

a lot of programmers and people in the

play08:22

world use this to help them come up with

play08:24

solutions to problems now something i

play08:26

tend to do a lot as well is i'll be

play08:28

working on this project i'll be

play08:29

documenting everything that's happening

play08:30

so project

play08:32

so yeah i've got all these topics and i

play08:34

can actually go ahead and send these off

play08:36

as an email really easily doing org lime

play08:39

subtree html eye so that way i could

play08:41

actually have this in a whole buffer but

play08:43

i guess in this case i could do this

play08:44

with the whole buffer but we'll just do

play08:46

this with the subtree hit enter and then

play08:48

i hit p for my personal and i can

play08:50

actually get this turned into html and

play08:52

send this as a message to somebody um

play08:54

this is really useful i used this a

play08:55

bunch

play08:56

at my previous job i actually sent this

play08:58

a couple times to co-workers so they had

play09:00

an idea of what i was working on now

play09:02

next up is compiling code compiling code

play09:04

is something that a lot of people have

play09:06

issues with for quite a while and

play09:08

probably the best way to get started

play09:09

with it is actually pretty

play09:10

straightforward what i'll do is i can go

play09:12

ahead and compile it using the compile

play09:15

command and so when i enter that it will

play09:17

give you an option to enter in what the

play09:18

command you want to use to compile is by

play09:21

default it uses make but you can

play09:22

pre-configure this for different file

play09:24

types in addition you can also have uh

play09:26

really clever tricks which i like to do

play09:29

for example if i go to my

play09:31

dwm

play09:32

config.h at the very top here i actually

play09:35

have this command right here and so this

play09:37

little section at the top actually does

play09:39

uh makes this that way when i do

play09:41

compile

play09:42

and enter it will actually enter this

play09:44

command up here um and i use this for a

play09:46

lot of config files where you need to

play09:48

like run a command after you've changed

play09:49

the config

play09:50

so i can just to control x control m and

play09:53

it will compile my program so there we

play09:56

go and so it's updated my dwm

play09:58

installation which is pretty cool a good

play10:01

example of what i was talking about was

play10:03

doing the dot x resources

play10:06

right here i have a little command and

play10:08

so if i did compile it will actually

play10:10

give me the command so if i changed it

play10:12

and run the compile command it would

play10:13

actually update my x resources which is

play10:16

a pretty useful

play10:17

another thing the compile command offers

play10:19

is a way to set environment variables

play10:21

this was super useful when i had to work

play10:23

with java and i had a version conflict

play10:25

between my language server and the

play10:27

actual code base

play10:29

instead of having to go through a lot of

play10:30

the headache of trying to get the

play10:31

language server to work with a different

play10:33

version of java i know it's possible i

play10:34

just haven't really put in the time to

play10:36

figure out how to do it

play10:37

this gave me a way to basically just

play10:39

whenever i wanted to compile change the

play10:41

version of java i was using which is

play10:43

super helpful now as you guys may have

play10:45

noticed um when i went to that c file um

play10:48

i got a lot of code hinting and this is

play10:50

all done using lsp mode

play10:52

up until very recently i was using eglot

play10:55

but recently i've just started using lsp

play10:57

mode

play10:58

just due to like a few uh annoyances

play11:01

probably the biggest one with snippets

play11:03

while i know a lot of people like to use

play11:05

yeah snippet i actually use uh temple

play11:08

temple template it's just temple i guess

play11:10

um but basically how they would work is

play11:11

it's basically a way to do templates and

play11:13

so you could like type in a command or

play11:16

sorry like a like you do if and then alt

play11:18

tab and that will give me a nice little

play11:20

snippet here and i have to pre-define

play11:22

these i know this is one of the losses

play11:24

of not using yeah snippet but i

play11:26

personally prefer

play11:28

this current setup maybe i'll do a video

play11:30

on this in the future but it's not

play11:31

really i won't go too far into it for

play11:34

this video but i could just have a

play11:35

little like i

play11:36

equals equals

play11:38

10.

play11:39

now obviously i'm getting

play11:41

coding errors just because of that but

play11:43

there we go so i could

play11:45

move things around if i wanted to

play11:47

kind of just wanted to show off my

play11:48

current setup um obviously right now i

play11:50

don't have this project configured

play11:52

properly but yeah

play11:54

and as well obviously as you guys know i

play11:56

use uh sly i use sly for my actual lisp

play11:59

editing so this one too you guys kind of

play12:01

know that workflow so i won't really

play12:03

bore you guys with it now while i do use

play12:05

discord as my main server i actually do

play12:07

also use uh element not quite as often

play12:10

just because there's a few discord

play12:12

servers for school and stuff like that

play12:13

that i you know frequent every once in a

play12:15

while and try to stay in touch with but

play12:17

basically i what i like to use is

play12:19

eminent

play12:20

and emint basically allows me to just

play12:23

one sec let me log in really quick sorry

play12:25

about that just didn't want to show off

play12:26

my password but emmett gives me a way to

play12:28

kind of view a lot of my matrix servers

play12:32

um

play12:32

so basically a good example would be

play12:35

let's go to my my general chat if i hit

play12:38

enter it gives me all of the most recent

play12:40

messages and i can scroll upward and get

play12:43

earlier messages

play12:45

and so this is nice when i want to use a

play12:47

matrix channel and i do often use my

play12:49

matrix channel when

play12:50

sometimes since i have like a matrix

play12:52

bridge set up um it's really nice just

play12:55

because i can access the

play12:56

discord server and for those of the

play12:58

people that are on matrix they don't

play13:00

have to worry about

play13:01

um

play13:02

me not seeing their messages because

play13:04

sometimes there can be a bit of a delay

play13:05

hey guys sorry for the sudden change of

play13:07

scenery i was recording that really late

play13:09

at night if you couldn't tell by the

play13:10

fact that i was borderline whispering um

play13:12

so i decided to cut off the video there

play13:14

hopefully you guys don't mind and i'll

play13:16

be sure to come back to the topic in the

play13:17

future if anything were to change where

play13:19

i go i would just like to give a big

play13:21

shout out to connor g and russell willis

play13:24

for supporting me on patreon and finally

play13:26

platinus carr and tallguy janks for

play13:28

supporting me on github sponsors if you

play13:31

guys want to support the channel i'd

play13:32

really appreciate it and you guys can go

play13:34

ahead and find my get up sponsors and

play13:36

patreon if you guys are to pick between

play13:37

the two i'd prefer github sponsors just

play13:39

because it uh throws more of the money

play13:40

my way and it doesn't just pocket the

play13:42

rest of it but anyways i really

play13:44

appreciate you guys watching the video

play13:45

let me know if you have any questions or

play13:46

you want me to go in depth into any of

play13:48

these topics because i did talk about a

play13:49

lot of different tools and features in

play13:51

emacs so be sure to let me know anyways

play13:53

guys thanks for watching and i'll see

play13:54

you next time

play13:56

[Music]

Rate This

5.0 / 5 (0 votes)

Связанные теги
Emacs WorkflowCoding EfficiencyNote-takingCommand LineTerminal IntegrationCode CompilationLSP ModeOrg-modeMatrix ChatPatreon Support
Вам нужно краткое изложение на английском?