structeditorConfig {
intcx, cy; /* Cursor x and y position in characters */introwoff; /* Offset of row displayed. */intcoloff; /* Offset of column displayed. */intscreenrows; /* Number of rows that we can show */intscreencols; /* Number of cols that we can show */intnumrows; /* Number of rows */intrawmode; /* Is terminal raw mode enabled? */erow*row; /* Rows */intdirty; /* File modified but not saved. */char*filename; /* Currently open filename */charstatusmsg[80];
time_tstatusmsg_time;
structeditorSyntax*syntax; /* Current syntax highlight, or NULL. */};
typedefstructerow {
intidx; /* Row index in the file, zero-based. */intsize; /* Size of the row, excluding the null term. */intrsize; /* Size of the rendered row. */char*chars; /* Row content. */char*render; /* Row content "rendered" for screen (for TABs). */unsignedchar*hl; /* Syntax highlight type for each character in render.*/inthl_oc; /* Row had open comment at end in last syntax highlight
check. */} erow;
这里面有一个render字段,在editorUpdateRow()中,有这样的代码:
unsignedinttabs=0, nonprint=0;
intj, idx;
/* Create a version of the row we can directly print on the screen,
* respecting tabs, substituting non printable characters with '?'. */free(row->render);
for (j=0; j<row->size; j++)
if (row->chars[j] ==TAB)
tabs++;
unsignedlonglongallocsize= (unsignedlonglong)row->size+tabs*8+nonprint*9+1;
if (allocsize>UINT32_MAX) {
printf("Some line of the edited file is too long for kilo\n");
exit(1);
}
Webmention is a simple way to notify any URL when you link to it from your site.
It is an open web standard (W3C Recommendation) for conversations and interactions across the web, a powerful building block used for a growing distributed network of peer-to-peer comments, likes, reposts, and other responses across the web.
# ~/.mbsyncrc
# GlowIsle 账户配置
IMAPAccount GlowIsle
Host imap.qiye.aliyun.com
Port 993
User i@glowisle.me
Pass ******
TLSType IMAPS
AuthMechs LOGIN
CertificateFile /etc/ssl/certs/ca-certificates.crt
# 远程存储
IMAPStore glowisle-remote
Account GlowIsle
# 本地存储
MaildirStore glowisle-local
Path ~/mail/GlowIsle/
Inbox ~/mail/GlowIsle/Inbox
Subfolders Verbatim
# 同步通道
Channel glowisle
Far :glowisle-remote:
Near :glowisle-local:
Patterns *
Create Both
Sync All
Expunge Both
SyncState *
发邮件
# ~/.msmtprc
# glowisle
account glowisle
host smtp.qiye.aliyun.com
from i@glowisle.me
auth login
port 465
user i@glowisle.me
password *******
auth on
tls on
tls_starttls off #使用465端口时不能开启
tls_certcheck off
tls_trust_file /etc/ssl/certs/ca-certificates.crt
account default : glowisle
But before you doom yourself, here are some things you should know:
1. Don't forget to run 'doom sync' and restart Emacs after modifying init.el or
packages.el in ~/.config/doom. This is never necessary for config.el.
2. If something goes wrong, run `doom doctor` to diagnose common issues with
your environment, setup, and config.
3. Use 'doom upgrade' to update Doom. Doing it any other way will require
additional steps (see 'doom help upgrade').
4. Access Doom's documentation from within Emacs via 'SPC h d h' or 'C-h d h'
(or 'M-x doom/help').
Have fun!