-
Notifications
You must be signed in to change notification settings - Fork 0
/
vib.cast
269 lines (269 loc) · 35.2 KB
/
vib.cast
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
{"version": 2, "width": 120, "height": 33, "timestamp": 1620725115, "env": {"SHELL": "/bin/bash", "TERM": "screen"}}
[0.008881, "o", "\u001b[?1049h\u001b[?1h\u001b="]
[0.00942, "o", "\u001b[1;33r\u001b[23m\u001b[24m\u001b[0m\u001b[H\u001b[J\u001b[?25l\u001b[2;1H\u001b[1m\u001b[34m~ \u001b[3;1H~ \u001b[4;1H~ \u001b[5;1H~ \u001b[6;1H~ \u001b[7;1H~ \u001b[8;1H~ \u001b[9;1H~ "]
[0.0097, "o", " \u001b[10;1H~ \u001b[11;1H~ \u001b[12;1H~ \u001b[13;1H~ \u001b[14;1H~ \u001b[15;1H~ \u001b[16;1H~ \u001b[17;1H~ "]
[0.009858, "o", " \u001b[18;1H~ \u001b[19;1H~ \u001b[20;1H~ \u001b[21;1H~ \u001b[22;1H~ \u001b[23;1H~ \u001b[24;1H~ \u001b[25;1H~ "]
[0.010023, "o", " \u001b[26;1H~ \u001b[27;1H~ \u001b[28;1H~ \u001b[29;1H~ \u001b[30;1H~ \u001b[31;1H~ \u001b[32;1H~ \u001b[0m\u001b[11;52HVIM - Vi IMproved\u001b[13;53Hversion 8.2.814\u001b[14;49Hby Bram Moolenaar et al.\u001b[15;45HModified by Gentoo-8.2.0814-r100\u001b"]
[0.010208, "o", "[16;39HVim is open source and freely distributable\u001b[18;49HSponsor Vim development!\u001b[19;38Htype :help sponsor\u001b[34m<Enter>\u001b[0m for information \u001b[21;38Htype :q\u001b[34m<Enter>\u001b[0m to exit \u001b[22;38Htype :help\u001b[34m<Enter>\u001b[0m or \u001b[34m<F1>\u001b[0m for on-line help\u001b[23;38Htype :help version8\u001b[34m<Enter>\u001b[0m for version info\u001b[1;1H\u001b[34h\u001b[?25h"]
[0.376962, "i", "\\"]
[0.647614, "i", "b"]
[0.647999, "o", "\u001b[?25l\u001b[33;1H:%!bash -ic \"\u001b[34h\u001b[?25h"]
[0.958889, "i", "g"]
[0.959258, "o", "g"]
[1.172548, "i", "e"]
[1.172904, "o", "e"]
[1.245203, "i", "t"]
[1.245625, "o", "t"]
[1.328053, "i", " "]
[1.328434, "o", " "]
[1.562647, "i", "l"]
[1.56295, "o", "l"]
[1.740681, "i", "o"]
[1.741061, "o", "o"]
[1.847228, "i", "b"]
[1.847626, "o", "b"]
[1.969693, "i", "s"]
[1.970002, "o", "s"]
[2.052312, "i", "t"]
[2.052725, "o", "t"]
[2.177798, "i", "e"]
[2.17811, "o", "e"]
[2.374045, "i", "."]
[2.3744, "o", "."]
[2.477206, "i", "r"]
[2.477515, "o", "r"]
[2.513772, "i", "s"]
[2.514082, "o", "s"]
[2.788703, "i", "\""]
[2.789108, "o", "\""]
[3.039825, "i", "\r"]
[3.040137, "o", "\r"]
[3.043432, "o", "\u001b[?25l\u001b[34h\u001b[?25h"]
[4.002644, "o", "\u001b[?25l\u001b[2;1HLobsters\u001b[2;9H\u001b[K\u001b[3;1H\u001b[34m^[\u001b[0m1\u001b[34m^]\u001b[0m \u001b[3;7H\u001b[K\u001b[4;1H\u001b[34m^[\u001b[0m2\u001b[34m^]\u001b[0m Lobsters\u001b[4;15H\u001b[K\u001b[5;1H\u001b[34m^[\u001b[0m3\u001b[34m^]\u001b[0m Recent\u001b[5;13H\u001b[K\u001b[6;1H\u001b[34m^[\u001b[0m4\u001b[34m^]\u001b[0m Comments\u001b[6;15H\u001b[K\u001b[7;1H\u001b[34m^[\u001b[0m5\u001b[34m^]\u001b[0m Search\u001b[7;13H\u001b[K\u001b[8;1H\u001b[34m^[\u001b[0m6\u001b[34m^]\u001b[0m Login\u001b[8;12H\u001b[K\u001b[9;1H\u001b[34m^[\u001b[0m7\u001b[34m^]\u001b[0m \u001b[9;7H\u001b[K\u001b[10;1H42\u001b[10;3H\u001b[K\u001b[11;1H\u001b[34m^[\u001b[0m8\u001b[34m^]\u001b[0m The Lobster Programming Language\u001b[11;39H\u001b[K\u001b[12;1H\u001b[34m^[\u001b[0m9\u001b[34m^]\u001b[0m games\u001b[12;12H\u001b[K\u001b[13;1H\u001b[34m^[\u001b[0m10\u001b[34m^]\u001b[0m plt\u001b[13;11H\u001b[K\u001b[14;1H\u001b[34m^[\u001b[0m11\u001b[34m^]\u001b[0m strlen.com\u001b[14;18H\u001b[K\u001b[15;1H\u001b[34m^[\u001b[0m12\u001b[34m^]\u001b[0m \u001b[15;8H\u001b[K\u001b[16;1Hvia\u001b[16;4H\u001b[K\u001b[17;1H\u001b[34m^[\u001b[0m13\u001b[34m^]\u001b[0m hwayne\u001b[17;14H\u001b[K\u001b[18;1H14 hours ago\u001b[18;13H\u001b[K\u001b[19;1H|\u001b[19;2H\u001b[K\u001b[20;1H\u001b[34m^[\u001b[0m14\u001b[34m^]\u001b[0m cached\u001b[20;14H\u001b[K\u001b[21;1H|\u001b[21;2H\u001b[K\u001b[22;1H\u001b[34m^[\u001b[0m15\u001b[34m^]\u001b[0m \u001b[22;8H\u001b[K\u001b[23;1H16 comments\u001b[23;12H\u001b[K\u001b[24;1H\u001b[34m^[\u001b[0m16\u001b[34m^]\u001b[0m \u001b[24;8H\u001b[K\u001b[25;1H16\u001b[25;3H\u001b[K\u001b[26;1H\u001b[34m^[\u001b[0m17\u001b[34m^]\u001b[0m \u001b[26;8H\u001b[K\u001b[27;1H6\u001b[27;2H\u001b[K\u001b[28;1H\u001b[34m^[\u001b[0m18\u001b[34m^]"]
[4.002706, "o", "\u001b[0m My Development Environment in 2021\u001b[28;42H\u001b[K\u001b[29;1H\u001b[34m^[\u001b[0m19\u001b[34m^]\u001b[0m emacs\u001b[29;13H\u001b[K\u001b[30;1H\u001b[34m^[\u001b[0m20\u001b[34m^]\u001b[0m practices\u001b[30;17H\u001b[K\u001b[31;1H\u001b[34m^[\u001b[0m21\u001b[34m^]\u001b[0m ideas.offby1.net\u001b[31;24H\u001b[K\u001b[32;1H\u001b[34m^[\u001b[0m22\u001b[34m^]\u001b[0m \u001b[32;8H\u001b[K\u001b[1;1H\u001b[34h\u001b[?25h"]
[5.917811, "i", "\u0004"]
[5.918263, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[16M\u001b[1;33r\u001b[17;1Hauthored by\r\n\u001b[34m^[\u001b[0m23\u001b[34m^]\u001b[0m offby1\r\n2 hours ago\r\n|\r\n\u001b[34m^[\u001b[0m24\u001b[34m^]\u001b[0m cached\r\n|\r\n\u001b[34m^[\u001b[0m25\u001b[34m^]\u001b[0m\r\nno comments\r\n\u001b[34m^[\u001b[0m26\u001b[34m^]\u001b[0m\r\n0\r\n\u001b[34m^[\u001b[0m27\u001b[34m^]\u001b[0m\r\n39\r\n\u001b[34m^[\u001b[0m28\u001b[34m^]\u001b[0m Announcing Rust 1.52.1\r\n\u001b[34m^[\u001b[0m29\u001b[34m^]\u001b[0m release\r\n\u001b[34m^[\u001b[0m30\u001b[34m^]\u001b[0m rust\r\n\u001b[34m^[\u001b[0m31\u001b[34m^]\u001b[0m blog.rust-lang.org\u001b[33;1H\u001b[K\u001b[1;1H\u001b[34h\u001b[?25h"]
[7.702233, "i", "/"]
[7.702584, "o", "\u001b[?25l\u001b[33;1H/\u001b[34h\u001b[?25h"]
[7.980903, "i", "<"]
[7.981341, "o", "<"]
[8.284994, "i", "1"]
[8.285418, "o", "1"]
[8.553563, "i", "8"]
[8.553987, "o", "8"]
[8.887185, "i", ">"]
[8.887501, "o", ">"]
[9.168382, "i", "\r"]
[9.168816, "o", "\r\u001b[?25l"]
[9.169245, "o", "\u001b[23m\u001b[24m\u001b[0m\u001b[H\u001b[J\u001b[1;1H<3> lobste.rs/recent\r\n<4> lobste.rs/comments\r\n<5> lobste.rs/search\r\n<6> lobste.rs/login\r\n<7> lobste.rs/login\r\n<8> strlen.com/lobster/\r\n<9> lobste.rs/t/games\r\n<10> lobste.rs/t/plt\r\n<11> lobste.rs/domain/strlen.com\r\n<12> lobste.rs/u/hwayne\r\n<13> lobste.rs/u/hwayne\r\n<14> archive.md/http%3A%2F%2Fstrlen.com%2Flobster%2F\r\n<15> lobste.rs/s/d14crk/lobster_programming_language\r\n<16> lobste.rs/s/d14crk/lobster_programming_language\r\n<17> lobste.rs/login\r\n<18> ideas.offby1.net/posts/development-environment-2021.html\r\n<19> lobste.rs/t/emacs\r\n<20> lobste.rs/t/practices\r\n<21> lobste.rs/domain/ideas.offby1.net\r\n<22> lobste.rs/u/offby1\r\n<23> lobste.rs/u/offby1\r\n<24> archive.md/https%3A%2F%2Fideas.offby1.net%2Fposts%2Fdevelopment-environment-2021.html\r\n<25> lobste.rs/s/n6lh6u/my_development_environment_2021\r\n<26> lobste.rs/s/n6lh6u/my_development_environment_2021\r\n<27> lobste.rs/login\r\n<28> blog.rust-lang.org/2021/05/10/Rust-1.52.1.html\r\n<29> lobste.rs/t/release\r\n<30> lobste.rs/t/rust\r\n<31> lobste.rs/"]
[9.16961, "o", "domain/blog.rust-lang.org\r\n<32> lobste.rs/u/nerosnm\r\n<33> lobste.rs/u/nerosnm\r\n<34> archive.md/https%3A%2F%2Fblog.rust-lang.org%2F2021%2F05%2F10%2FRust-1.52.1.html\u001b[16;1H\u001b[34h\u001b[?25h"]
[9.573899, "i", "\\"]
[9.800916, "i", "u"]
[9.801399, "o", "<18> \u001b[?25l\u001b[33;1H:%!bash -ic \"get \"\b\u001b[33;18H\u001b[K\u001b[33;18Hideas.offby1.net/posts/development-environment-2021.html\"\r"]
[9.804722, "o", "\u001b[34h\u001b[?25h"]
[11.597988, "o", "\u001b[?25l697 lines filtered\u001b[33;19H\u001b[K"]
[11.598449, "o", "\u001b[1;1H\u001b[K\u001b[2;1HDevelopment Environment (2021) - Ideas.Offby1\r\n\u001b[34m^[\u001b[0m1\u001b[34m^]\u001b[0m Ideas.Offby1\u001b[3;19H\u001b[K\u001b[4;1HDevelopment Environment (2021)\r\nMon 10 May 2021\u001b[5;16H\u001b[K\u001b[6;1H\u001b[34m^[\u001b[0m2\u001b[34m^]\u001b[0m tools\u001b[6;12H\u001b[K\u001b[7;1H\u001b[34m^[\u001b[0m3\u001b[34m^]\u001b[0m emacs\u001b[7;12H\u001b[K\u001b[8;1H\u001b[34m^[\u001b[0m4\u001b[34m^]\u001b[0m direnv\u001b[8;13H\u001b[K\u001b[9;1HI've had a good couple of years in terms of tool discovery. Rather than try to tweet about them in bits and bobs, I figuu\u001b[10;1Hred I would write up a few bits and pieces that I like.\r\nChezmoi\u001b[11;8H\u001b[K\u001b[12;1HIf you do not personalize your configuration or only ever use a single operating system with a single account and none oo\u001b[13;1Hf your dotfiles contain secrets then you dont need chezmoi. Otherwise, read on\r\nAbove all else, managing my dotfiles has been the thing I've spent the most time messing around with. I have, variously:\u001b[15;1Hkept them in CVS\u001b[15;17H\u001b[K\u001b[16;1Hkept them in SVN\u001b[16;17H\u001b[K\u001b[17;1Hkept them in Gi\u001b[17;17H\u001b[K\u001b[18;1Hinstalled them using stow\u001b[18;26H\u001b[K\u001b[19;1Hinstalled them using ha"]
[11.598553, "o", "nd-built shell scripts\r\ninstalled them using a simple code checkout\r\nmanaged multiple dotfile repos with\r\nmr\u001b[22;3H\u001b[K\u001b[23;1HIt has been a damned nightmare.\u001b[23;32H\u001b[K\u001b[24;1HWhich is why \u001b[24;14H\u001b[K\u001b[25;1H\u001b[34m^[\u001b[0m5\u001b[34m^]\u001b[0m chezmoi\u001b[25;14H\u001b[K\u001b[26;1Hhas been such a breath of fresh air. Chezmoi combines simple templating, a CLI that can perform basic state management aa\u001b[27;1Hnd change management operations, and a small TOML configuration model. I use it for everything that goes in\r\n$HOME\u001b[28;6H\u001b[K\u001b[29;1Hthat I care to retain, and I can trivially configure my home and work computers from the same shell configuration.\r\nDoom Emacs\u001b[30;11H\u001b[K\u001b[31;1HDoom is a configuration framework for GNU Emacs tailored for Emacs bankruptcy veterans who want less framework in their \u001b[32;1Hframeworks, a modicum of stability (and reproducibility) from their package manager, and the performance of a hand rolle\u001b[31;1H\u001b[1m\u001b[34m@ "]
[11.598592, "o", " \u001b[32;1H@ \u001b[1;1H\u001b[34h\u001b[?25h"]
[12.998397, "i", "j"]
[12.998797, "o", "\r\n"]
[13.243407, "i", "j"]
[13.24372, "o", "\r\n"]
[13.273464, "i", "j"]
[13.273782, "o", "\r\n"]
[13.303143, "i", "j"]
[13.30352, "o", "\r\n"]
[13.332817, "i", "j"]
[13.333138, "o", "\r\n"]
[13.362445, "i", "j"]
[13.362779, "o", "\r\n"]
[13.392194, "i", "j"]
[13.392577, "o", "\r\n"]
[13.720413, "i", "j"]
[13.720776, "o", "\r\n"]
[13.964115, "i", "j"]
[13.96446, "o", "\r\n\r\n"]
[13.993818, "i", "j"]
[13.994241, "o", "\r\n"]
[14.023431, "i", "j"]
[14.023847, "o", "\r\n\r\n"]
[14.053184, "i", "j"]
[14.05362, "o", "\r\n"]
[14.310632, "i", "j"]
[14.310949, "o", "\r\n"]
[14.555182, "i", "j"]
[14.555519, "o", "\r\n"]
[14.584857, "i", "j"]
[14.585193, "o", "\r\n"]
[14.614578, "i", "j"]
[14.615001, "o", "\r\n"]
[14.644253, "i", "j"]
[14.644677, "o", "\r\n"]
[14.67443, "i", "j"]
[14.674835, "o", "\r\n"]
[14.704178, "i", "j"]
[14.704611, "o", "\r\n"]
[14.891314, "i", "j"]
[14.891637, "o", "\r\n"]
[15.135744, "i", "j"]
[15.136163, "o", "\r\n"]
[15.16539, "i", "j"]
[15.165709, "o", "\r\n"]
[15.38822, "i", "j"]
[15.388606, "o", "\r\n"]
[15.63392, "i", "j"]
[15.634332, "o", "\r\n\r\n"]
[15.66363, "i", "j"]
[15.664067, "o", "\r\n"]
[15.69331, "i", "j"]
[15.693736, "o", "\r\n"]
[15.723248, "i", "j"]
[15.723703, "o", "\u001b[?25l\u001b[1;32r\u001b[0m\u001b[1;1H\u001b[2M\u001b[1;33r\u001b[29;1HDoom is a configuration framework for GNU Emacs tailored for Emacs bankruptcy veterans who want less framework in their \u001b[30;1Hframeworks, a modicum of stability (and reproducibility) from their package manager, and the performance of a hand rollee\u001b[31;1Hd config (or better). It can be a foundation for your own config or a resource for Emacs enthusiasts to learn more aboutt\u001b[32;1H our favorite operating system.\u001b[33;1H\u001b[K\u001b[29;1H\u001b[34h\u001b[?25h"]
[15.752824, "i", "j"]
[15.753058, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[4M\u001b[1;33r\u001b[29;1HI've been an Emacs user since 2005, after spending my university years using Vim. During that time, I've had a host of dd\u001b[30;1Hifferent configurations for it. I started off with the one my team at ACI/MessagingDirect used, which was a pretty powerr\u001b[31;1Hful metaprogramming environment that served me well until I finally added too much cruft and it fell over. I've gone thrr\u001b[32;1Hough Prelude and Spacemacs as well, but none of them have fit me quite like\u001b[29;1H\u001b[34h\u001b[?25h"]
[15.92637, "i", "j"]
[15.926752, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1H\u001b[34m^[\u001b[0m6\u001b[34m^]\u001b[0m Doom\r\u001b[34h\u001b[?25h"]
[16.171198, "i", "j"]
[16.171594, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1Hdoes. Doom is a strange mix of superbly simple and deeply flexible, which fits Emacs to a tee.\r\u001b[34h\u001b[?25h"]
[16.201282, "i", "j"]
[16.201622, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[2M\u001b[1;33r\u001b[31;1HSome of the things that it offers that I really like:\r\nliterate configuration\u001b[31;1H\u001b[34h\u001b[?25h"]
[16.230952, "i", "j"]
[16.231327, "o", "\r\n"]
[16.260622, "i", "j"]
[16.260993, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1HMy configuration is written in\r\u001b[34h\u001b[?25h"]
[16.29018, "i", "j"]
[16.290416, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[2M\u001b[1;33r\u001b[31;1H\u001b[34m^[\u001b[0m7\u001b[34m^]\u001b[0m org-mode\r\n, making it not so much \"self-documenting\" as it is \"a readme that happens to have configuration in it\". For one small e\u001b[32;1H\u001b[1m\u001b[34m@ \u001b[31;1H\u001b[34h\u001b[?25h"]
[16.445435, "i", "j"]
[16.445816, "o", "\u001b[?25l\u001b[1;32r\u001b[0m\u001b[32;1H\r\n\u001b[1;33r\u001b[31;1H, making it not so much \"self-documenting\" as it is \"a readme that happens to have configuration in it\". For one small ee\u001b[32;1Hxample:\u001b[31;1H\u001b[34h\u001b[?25h"]
[16.689367, "i", "j"]
[16.689682, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1HMonitor my roam directory for changes (dropbox is the reason here) and re-run\r\u001b[34h\u001b[?25h"]
[16.946233, "i", "j"]
[16.946602, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1Hthe roam DB cache build when some are observed.\r\u001b[34h\u001b[?25h"]
[17.190494, "i", "j"]
[17.19085, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1HCaveat: this is not recursive.\r\u001b[34h\u001b[?25h"]
[17.220251, "i", "j"]
[17.220602, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1H#+begin_src emacs-lisp\r\u001b[34h\u001b[?25h"]
[17.523128, "i", "j"]
[17.523483, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1H(after! org-roam\r\u001b[34h\u001b[?25h"]
[17.767422, "i", "j"]
[17.767776, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1H(file-notify-add-watch org-roam-directory '(change)\r\u001b[34h\u001b[?25h"]
[17.797103, "i", "j"]
[17.797459, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1H(lambda (_event)\r\u001b[34h\u001b[?25h"]
[17.826593, "i", "j"]
[17.826813, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1H(org-roam-db-build-cache))))\r\u001b[34h\u001b[?25h"]
[17.856456, "i", "j"]
[17.856671, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1H#+end_src\r\u001b[34h\u001b[?25h"]
[17.886244, "i", "j"]
[17.886609, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1Hmodern development tools\r\u001b[34h\u001b[?25h"]
[18.221785, "i", "j"]
[18.222177, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1HDoom ships with code completion, LSP support, vim and emacs keybindings, project support, modes for many modern tools.\r\u001b[34h\u001b[?25h"]
[18.467438, "i", "j"]
[18.467669, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[2M\u001b[1;33r\u001b[31;1Hcommunity\r\nDoom has an active and helpful Discord. It's actually the best place to talk about Emacs in general that I've found.\u001b[31;1H\u001b[34h\u001b[?25h"]
[18.497137, "i", "j"]
[18.49741, "o", "\r\n"]
[18.526865, "i", "j"]
[18.527218, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1Hdirenv\r\u001b[34h\u001b[?25h"]
[18.556373, "i", "j"]
[18.556621, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[2M\u001b[1;33r\u001b[31;1Hdirenv is an extension for your shell. It augments existing shells with a new feature that can load and unload environmee\u001b[32;1Hnt variables depending on the current directory.\u001b[31;1H\u001b[34h\u001b[?25h"]
[18.586129, "i", "j"]
[18.586458, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[4M\u001b[1;33r\u001b[29;1HA year ago I discovered\r\n\u001b[34m^[\u001b[0m8\u001b[34m^]\u001b[0m direnv\r\n, which apparently makes me\r\nvery\u001b[29;1H\u001b[34h\u001b[?25h"]
[18.615881, "i", "j"]
[18.616286, "o", "\r\n"]
[18.647795, "i", "j"]
[18.648195, "o", "\r\n"]
[18.677532, "i", "j"]
[18.677938, "o", "\r\n"]
[19.000646, "i", "j"]
[19.001107, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[4M\u001b[1;33r\u001b[29;1Hlate to the party. The first commit was laid down in 2010, and it solves a problem I've tried to address with a half dozz\u001b[30;1Hen other tools over the years. In the simplest possible terms, it lets me set project level environment variables.\r\nI have two patterns I use a lot: First, I tend to have my AWS profile set in a top level envrc:\r\nexport\u001b[29;1H\u001b[34h\u001b[?25h"]
[19.244759, "i", "j"]
[19.245194, "o", "\r\n\r\n"]
[19.274794, "i", "j"]
[19.275229, "o", "\r\n"]
[19.304551, "i", "j"]
[19.304927, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1HAWS_REGION\r\u001b[34h\u001b[?25h"]
[19.65085, "i", "j"]
[19.651212, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1H=\b\u001b[34h\u001b[?25h"]
[19.896122, "i", "j"]
[19.896344, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1Hus-west-2\r\u001b[34h\u001b[?25h"]
[19.926551, "i", "j"]
[19.92691, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1Hexport\r\u001b[34h\u001b[?25h"]
[19.95626, "i", "j"]
[19.956644, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1HAWS_DEFAULT_REGION\r\u001b[34h\u001b[?25h"]
[19.985978, "i", "j"]
[19.986316, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1H=\b\u001b[34h\u001b[?25h"]
[20.015652, "i", "j"]
[20.016061, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[2M\u001b[1;33r\u001b[31;1H$AWS_REGION\r\nexport\u001b[31;1H\u001b[34h\u001b[?25h"]
[20.045357, "i", "j"]
[20.045666, "o", "\r\n"]
[20.075042, "i", "j"]
[20.075351, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1HAWS_PROFILE\r\u001b[34h\u001b[?25h"]
[20.104874, "i", "j"]
[20.10511, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1H=\b\u001b[34h\u001b[?25h"]
[20.134675, "i", "j"]
[20.134937, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1Hchicago\r\u001b[34h\u001b[?25h"]
[20.164492, "i", "j"]
[20.164881, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1HSecond, on a package by package basis, I will set up things like the runtimes and some specific custom tools:\r\u001b[34h\u001b[?25h"]
[20.194067, "i", "j"]
[20.194288, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1Hsource_up\r\u001b[34h\u001b[?25h"]
[20.426331, "i", "j"]
[20.426749, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1H# what this does is pull in whatever .envrc exists in a higher directory\r\u001b[34h\u001b[?25h"]
[20.672147, "i", "j"]
[20.672515, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1Hlayout python python3\r\u001b[34h\u001b[?25h"]
[20.701641, "i", "j"]
[20.701863, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1Huse pip-tools requirements.in --no-emit-index-url --no-emit-trusted-host\r\u001b[34h\u001b[?25h"]
[20.731511, "i", "j"]
[20.731846, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[2M\u001b[1;33r\u001b[31;1HThis pair here gives me an AWS client already configured to the right profile, using a python 3 virtualenv specific to tt\u001b[32;1Hhe project, and thanks to\u001b[31;1H\u001b[34h\u001b[?25h"]
[20.761222, "i", "j"]
[20.761601, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1H\u001b[34m^[\u001b[0m9\u001b[34m^]\u001b[0m my direnv and pip-tools integration\r\u001b[34h\u001b[?25h"]
[20.793097, "i", "j"]
[20.793332, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1Hsome sweet automatic dependency management. This works in every shell and once you have it it's hard to work without it.\u001b[32;1H\u001b[34h\u001b[?25h"]
[20.822932, "i", "j"]
[20.823356, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1HOh, and in case that wasn't awesome enough, Doom Emacs has support for it built in.\r\u001b[34h\u001b[?25h"]
[20.852546, "i", "j"]
[20.852847, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1Hstarship\r\u001b[34h\u001b[?25h"]
[20.882107, "i", "j"]
[20.882293, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[2M\u001b[1;33r\u001b[31;1HThe minimal, blazing-fast, and infinitely customizable prompt for any shell!\r\nFast: it's fast really really fast!\u001b[31;1H\u001b[34h\u001b[?25h"]
[20.912316, "i", "j"]
[20.912621, "o", "\r\n"]
[20.941997, "i", "j"]
[20.942345, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1HCustomizable: configure every aspect of your prompt.\r\u001b[34h\u001b[?25h"]
[20.971736, "i", "j"]
[20.972123, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1HUniversal: works on any shell, on any operating system.\r\u001b[34h\u001b[?25h"]
[21.001411, "i", "j"]
[21.00177, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1HIntelligent: shows relevant information at a glance.\r\u001b[34h\u001b[?25h"]
[21.03106, "i", "j"]
[21.031411, "o", "\u001b[?25l\u001b[1;32r\u001b[32;1H\r\n\u001b[1;33r\u001b[32;1HFeature rich: support for all your favorite tools.\r\u001b[34h\u001b[?25h"]
[21.061232, "i", "j"]
[21.061652, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[2M\u001b[1;33r\u001b[31;1HEasy: quick to install start using it in minutes.\r\nMy shell prompt is somewhere I spend a lot of time, and finding one that shows the information I need, and does so quick\u001b[32;1H\u001b[1m\u001b[34m@ \u001b[31;1H\u001b[34h\u001b[?25h"]
[21.091009, "i", "j"]
[21.091451, "o", "\u001b[?25l\u001b[1;32r\u001b[0m\u001b[1;1H\u001b[2M\u001b[1;33r\u001b[30;1HMy shell prompt is somewhere I spend a lot of time, and finding one that shows the information I need, and does so quickk\u001b[31;1Hly. I've gone through a lot of them over the years, all of various degrees of \"pretty\" and \"slow\". I finally found one tt\u001b[32;1Hhat's fast enough for me, though, and it's a rocket.\u001b[30;1H\u001b[34h\u001b[?25h"]
[21.468535, "i", "\u0004"]
[21.469179, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[16M\u001b[1;33r\u001b[17;1HStarship is implemented in Rust, and it uses a set of modules alongside support for custom modules to display an elegantt\u001b[18;1H prompt in minimal time. I use it to show me the currenet state of my git repo, the SSH keys I have in my agent, and in \u001b[19;1Hthe case of my work prompt, some internal metadata about the project I'm looking at that otherwise I'd have to keep in mm\u001b[20;1Hy head.\r\nOn a personal level, Starship also contains the\r\n\u001b[34m^[\u001b[0m10\u001b[34m^]\u001b[0m first serious Rust code I have ever written\r\nand I'm pretty proud of that.\r\nasdf\r\nManage multiple runtime versions with a single CLI tool\r\nI had been using a mix of\r\nrbenv\r\nand\r\npyenv\r\nto manage my runtimes for projects. I admit, though, I've gotten tired of trying to keep them all straight in my head. II\u001b[31;1Ht turns out I'm not alone.\r\n\u001b[34m^[\u001b[0m11\u001b[34m^]\u001b[0m asdf\r\u001b[34h\u001b[?25h"]
[21.674514, "i", "\u0004"]
[21.675129, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[16M\u001b[1;33r\u001b[17;1Htakes on the problem of managing all of the runtime managers in one simple tool. Instead of a\r\n.python-versions\r\nfile, and a ruby one, and a node one...\r\nasdf\r\nuses a single\r\n.tool-versions\r\nto designate all of its pluggable runtimes. It doesn't have as wide-ranging tool support -- I only just got a PR to the \u001b[24;1Hemacs mspyls LSP server project merged that allows it to work -- but in most cases no special casing is needed. It's addd\u001b[25;1Hed some much needed simplicity to my devenv.\r\nFeedback!\r\nI don't embed any comments on this site, so if you want to give me feedback on the posts you find here, I encourage you \u001b[28;1Hto tweet at me\r\n\u001b[34m^[\u001b[0m12\u001b[34m^]\u001b[0m @offby1\r\n.\r\n\u001b[34m^[\u001b[0m13\u001b[34m^]\u001b[0m Tweet about this\r\nCategories\r\u001b[34h\u001b[?25h"]
[21.999106, "i", "\u0004"]
[21.999636, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[16M\u001b[1;33r\u001b[17;1H\u001b[34m^[\u001b[0m14\u001b[34m^]\u001b[0m Amazon Expedition\r\n\u001b[34m^[\u001b[0m15\u001b[34m^]\u001b[0m humour\r\n\u001b[34m^[\u001b[0m16\u001b[34m^]\u001b[0m internet\r\n\u001b[34m^[\u001b[0m17\u001b[34m^]\u001b[0m life\r\n\u001b[34m^[\u001b[0m18\u001b[34m^]\u001b[0m pics\r\n\u001b[34m^[\u001b[0m19\u001b[34m^]\u001b[0m programming\r\n\u001b[34m^[\u001b[0m20\u001b[34m^]\u001b[0m society\r\n\u001b[34m^[\u001b[0m21\u001b[34m^]\u001b[0m tools\r\n\u001b[34m^[\u001b[0m22\u001b[34m^]\u001b[0m travel\r\n\u001b[34m^[\u001b[0m23\u001b[34m^]\u001b[0m work\r\nlinks\r\n\u001b[34m^[\u001b[0m24\u001b[34m^]\u001b[0m Follow @offby1\r\n\u001b[34m^[\u001b[0m25\u001b[34m^]\u001b[0m Github\r\n\u001b[34m^[\u001b[0m26\u001b[34m^]\u001b[0m Encrypt a message to me\r\nTags\r\n\u001b[34m^[\u001b[0m27\u001b[34m^]\u001b[0m culture\u001b[28;1H\u001b[34h\u001b[?25h"]
[23.153383, "i", "\u001b"]
[23.332602, "i", "u"]
[23.333285, "o", "\u0007\u001b[?25l\u001b[33;1H309 more lines; before #2 13 seconds ago"]
[23.333618, "o", "\u001b[1;1H\u001b[K\u001b[2;1HLobsters\u001b[2;9H\u001b[K\u001b[3;1H\u001b[34m^[\u001b[0m1\u001b[34m^]\u001b[0m\u001b[3;7H\u001b[K\u001b[4;1H\u001b[34m^[\u001b[0m2\u001b[34m^]\u001b[0m Lobsters\r\n\u001b[34m^[\u001b[0m3\u001b[34m^]\u001b[0m Recent\u001b[5;13H\u001b[K\u001b[6;1H\u001b[34m^[\u001b[0m4\u001b[34m^]\u001b[0m Comment\r\n\u001b[34m^[\u001b[0m5\u001b[34m^]\u001b[0m Search\u001b[7;14H\u001b[K\u001b[8;1H\u001b[34m^[\u001b[0m6\u001b[34m^]\u001b[0m Login\u001b[8;12H\u001b[K\u001b[9;1H\u001b[34m^[\u001b[0m7\u001b[34m^]\u001b[0m \u001b[9;7H\u001b[K\u001b[10;1H42\u001b[10;3H\u001b[K\u001b[11;1H\u001b[34m^[\u001b[0m8\u001b[34m^]\u001b[0m The Lobster Programming Language\u001b[11;39H\u001b[K\u001b[12;1H\u001b[34m^[\u001b[0m9\u001b[34m^]\u001b[0m games\u001b[12;13H\u001b[K\u001b[13;4H0\u001b[3Cplt\u001b[13;11H\u001b[K\u001b[14;1H\u001b[34m^[\u001b[0m11\u001b[34m^]\u001b[0m strlen.com\u001b[15;4H2\u001b[15;8H\u001b[K\u001b[16;1Hvia\u001b[16;4H\u001b[K\u001b[17;4H3\u001b[3Chwayne\u001b[17;15H\u001b[K\u001b[18;1H14 hours ago\u001b[18;13H\u001b[K\u001b[19;1H|\u001b[19;2H\u001b[K\u001b[20;4H4\u001b[3Ccached\r\n|\u001b[21;2H\u001b[K\u001b[22;4H5\u001b[22;8H\u001b[K\u001b[23;1H16 comments\u001b[23;12H\u001b[K\u001b[24;3H16\u001b[24;8H\u001b[K\u001b[25;1H16\u001b[25;3H\u001b[K\u001b[26;3H17\u001b[26;8H\u001b[K\u001b[27;1H6\u001b[27;2H\u001b[K\u001b[28;3H18\u001b[3CMy Development Environment in 2021\u001b[29;3H19\u001b[3Cemacs\u001b[29;13H\u001b[K\u001b[30;4H0\u001b[3Cpractices\u001b[30;18H\u001b[K\u001b[31;1H\u001b[34m^[\u001b[0m21\u001b[34m^]\u001b[0m ideas.offby1.net\u001b[32;4H2\u001b[32;8H\u001b[K\u001b[1;1H\u001b[34h\u001b[?25h"]
[24.239057, "i", "\u0004"]
[24.239533, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[16M\u001b[1;33r\u001b[17;1Hauthored by\r\n\u001b[34m^[\u001b[0m23\u001b[34m^]\u001b[0m offby1\r\n2 hours ago\r\n|\r\n\u001b[34m^[\u001b[0m24\u001b[34m^]\u001b[0m cached\r\n|\r\n\u001b[34m^[\u001b[0m25\u001b[34m^]\u001b[0m\r\nno comments\r\n\u001b[34m^[\u001b[0m26\u001b[34m^]\u001b[0m\r\n0\r\n\u001b[34m^[\u001b[0m27\u001b[34m^]\u001b[0m\r\n39\r\n\u001b[34m^[\u001b[0m28\u001b[34m^]\u001b[0m Announcing Rust 1.52.1\r\n\u001b[34m^[\u001b[0m29\u001b[34m^]\u001b[0m release\r\n\u001b[34m^[\u001b[0m30\u001b[34m^]\u001b[0m rust\r\n\u001b[34m^[\u001b[0m31\u001b[34m^]\u001b[0m blog.rust-lang.org\u001b[33;1H\u001b[K\u001b[1;1H\u001b[34h\u001b[?25h"]
[24.470644, "i", "\u0004"]
[24.471129, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[16M\u001b[1;33r\u001b[17;1H\u001b[34m^[\u001b[0m32\u001b[34m^]\u001b[0m\r\nvia\r\n\u001b[34m^[\u001b[0m33\u001b[34m^]\u001b[0m nerosnm\r\n18 hours ago\r\n|\r\n\u001b[34m^[\u001b[0m34\u001b[34m^]\u001b[0m cached\r\n|\r\n\u001b[34m^[\u001b[0m35\u001b[34m^]\u001b[0m\r\n6 comments\r\n\u001b[34m^[\u001b[0m36\u001b[34m^]\u001b[0m\r\n6\r\n\u001b[34m^[\u001b[0m37\u001b[34m^]\u001b[0m\r\n24\r\n\u001b[34m^[\u001b[0m38\u001b[34m^]\u001b[0m zxpy: A tool for shell scripting in Python, inspired by Google's zx\r\n\u001b[34m^[\u001b[0m39\u001b[34m^]\u001b[0m programming\r\n\u001b[34m^[\u001b[0m40\u001b[34m^]\u001b[0m python\u001b[1;1H\u001b[34h\u001b[?25h"]
[24.89072, "i", "\u0004"]
[24.891226, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[16M\u001b[1;33r\u001b[17;1H\u001b[34m^[\u001b[0m41\u001b[34m^]\u001b[0m github.com\r\n\u001b[34m^[\u001b[0m42\u001b[34m^]\u001b[0m\r\nvia\r\n\u001b[34m^[\u001b[0m43\u001b[34m^]\u001b[0m thunderbottom\r\n16 hours ago\r\n|\r\n\u001b[34m^[\u001b[0m44\u001b[34m^]\u001b[0m cached\r\n|\r\n\u001b[34m^[\u001b[0m45\u001b[34m^]\u001b[0m\r\n21 comments\r\n\u001b[34m^[\u001b[0m46\u001b[34m^]\u001b[0m\r\n21\r\n\u001b[34m^[\u001b[0m47\u001b[34m^]\u001b[0m\r\n3\r\n\u001b[34m^[\u001b[0m48\u001b[34m^]\u001b[0m Babel is used by millions, so why are we running out of money?\r\n\u001b[34m^[\u001b[0m49\u001b[34m^]\u001b[0m programming\u001b[1;1H\u001b[34h\u001b[?25h"]
[25.561924, "i", "\u0004"]
[25.562394, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[16M\u001b[1;33r\u001b[17;1H\u001b[34m^[\u001b[0m50\u001b[34m^]\u001b[0m babel.dev\r\n\u001b[34m^[\u001b[0m51\u001b[34m^]\u001b[0m\r\nvia\r\n\u001b[34m^[\u001b[0m52\u001b[34m^]\u001b[0m sanxiyn\r\n2 hours ago\r\n|\r\n\u001b[34m^[\u001b[0m53\u001b[34m^]\u001b[0m cached\r\n|\r\n\u001b[34m^[\u001b[0m54\u001b[34m^]\u001b[0m\r\n10 comments\r\n\u001b[34m^[\u001b[0m55\u001b[34m^]\u001b[0m\r\n10\r\n\u001b[34m^[\u001b[0m56\u001b[34m^]\u001b[0m\r\n28\r\n\u001b[34m^[\u001b[0m57\u001b[34m^]\u001b[0m Shouting at hard drives in the datacenter (2008)\r\n\u001b[34m^[\u001b[0m58\u001b[34m^]\u001b[0m video\u001b[1;1H\u001b[34h\u001b[?25h"]
[26.22519, "i", "\u0004"]
[26.22561, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[16M\u001b[1;33r\u001b[17;1H\u001b[34m^[\u001b[0m59\u001b[34m^]\u001b[0m hardware\r\n\u001b[34m^[\u001b[0m60\u001b[34m^]\u001b[0m performance\r\n\u001b[34m^[\u001b[0m61\u001b[34m^]\u001b[0m youtube.com\r\n\u001b[34m^[\u001b[0m62\u001b[34m^]\u001b[0m\r\nvia\r\n\u001b[34m^[\u001b[0m63\u001b[34m^]\u001b[0m itamarst\r\n18 hours ago\r\n|\r\n\u001b[34m^[\u001b[0m64\u001b[34m^]\u001b[0m cached\r\n|\r\n\u001b[34m^[\u001b[0m65\u001b[34m^]\u001b[0m\r\n5 comments\r\n\u001b[34m^[\u001b[0m66\u001b[34m^]\u001b[0m\r\n5\r\n\u001b[34m^[\u001b[0m67\u001b[34m^]\u001b[0m\r\n18\u001b[1;1H\u001b[34h\u001b[?25h"]
[26.855812, "i", "\u0004"]
[26.856311, "o", "\u001b[?25l\u001b[1;32r\u001b[1;1H\u001b[16M\u001b[1;33r\u001b[17;1H\u001b[34m^[\u001b[0m68\u001b[34m^]\u001b[0m Security keys are now supported for SSH Git operations\r\n\u001b[34m^[\u001b[0m69\u001b[34m^]\u001b[0m security\r\n\u001b[34m^[\u001b[0m70\u001b[34m^]\u001b[0m github.blog\r\n\u001b[34m^[\u001b[0m71\u001b[34m^]\u001b[0m\r\nvia\r\n\u001b[34m^[\u001b[0m72\u001b[34m^]\u001b[0m jamesog\r\n15 hours ago\r\n|\r\n\u001b[34m^[\u001b[0m73\u001b[34m^]\u001b[0m cached\r\n|\r\n\u001b[34m^[\u001b[0m74\u001b[34m^]\u001b[0m\r\n10 comments\r\n\u001b[34m^[\u001b[0m75\u001b[34m^]\u001b[0m\r\n10\r\n\u001b[34m^[\u001b[0m76\u001b[34m^]\u001b[0m\r\n21\u001b[1;1H\u001b[34h\u001b[?25h"]
[28.948471, "i", ":"]
[28.948845, "o", "\u001b[?25l\u001b[33;1H:\u001b[34h\u001b[?25h"]
[29.174636, "i", "q"]
[29.174986, "o", "q"]
[29.462536, "i", "!"]
[29.462876, "o", "!"]
[29.679543, "i", "\r"]
[29.680012, "o", "\r\u001b[?25l\u001b[33;1H\u001b[K\u001b[33;1H\u001b[?1l\u001b>\u001b[34h\u001b[?25h\u001b[?1049l"]