2020年3月

最近在调试 android,使用 串口半双工模式接收数据,碰到的问题是 unistd 中的 read 是block的,怎样才能超时退出。 刚开始找到的资料说是 c_cc[VMIN] = 0, c_cc[VTIME] = 10; 这样就能配置为 1s 超时了。但是实际上并不能够达到超时退出的功能。 后来经过进一步的资料查找,发现需要使用 下面的方法才能实现功能, VTIME 的配置好像没那么重要。 ```c++ struct timeval timeout; timeout.tv_sec = 0; timeout.tv_usec = 100000; retval = select(fd + 1, &rfds, NULL, NULL, &timeout);



参考: https://stackoverflow.com/questions/10522277/how-can-i-implement-timeout-for-read-when-reading-from-a-serial-port-c-c
https://linux.die.net/man/2/select
http://man7.org/linux/man-pages/man2/select.2.html
https://blog.mbedded.ninja/programming/operating-systems/linux/linux-serial-ports-using-c-cpp/#reading

1. 生成 tex

在 org 文件中按键 C-c C-e l l 这样能够生成 tex 文件

参考: http://tieba.baidu.com/p/3522363035

https://www.dazhuanlan.com/2019/10/16/5da60df92dd09/

https://blog.csdn.net/sinat_41104353/article/details/86763490 https://blog.csdn.net/yivanus/article/details/8689651 https://blog.csdn.net/sinat_41104353/article/details/86763490 https://sunyour.org/post/20160327-emacs-org-to-pdf-with-latex/

2. 报错处理。

当提示 "pdf was not produced. See "Org PDF LaTEx Output" for details" , 具体信息在 buffer 里面,通过 C-x b , 然后输入 *org ,自动补全后打开,即可看到错误信息。 解决方法: texlive 选择全部安装。

3. 在 org 的文件头部添加

#+LATEX_HEADER: \usepackage[UTF8]{ctex}

使用 xelatex 来输出有两种方法,

#+LATEX_CMD: xelatex

或者

(setq org-latex-pdf-process '("xelatex -interaction nonstopmode %f"
                              "xelatex -interaction nonstopmode %f"))

参考: https://sunyour.org/post/20160327-emacs-org-to-pdf-with-latex/

4. 官方org网站: https://orgmode.org/

系统: win7en

在 emacs 文件的开头输入:

-*- coding: utf-8 -*-

这样就可以以 utf-8 的编码进行保存。

还可以在配置文件中加入: (setq default-buffer-file-coding-system 'utf-8-unix) 。 具体参考: https://www.cnblogs.com/taosim/articles/3327909.html http://www.bubuko.com/infodetail-1878850.html https://www.emacswiki.org/emacs/ChangingEncodings

M-x describe-font RET 使用这个命令可以获得当前设置的字体描述。

中文会卡也有可能是行号功能的问题, linum-mode 可能导致卡,所以 emacs26 新加了一个 display-line-numbers-mode,这个没有性能问题,应该不会卡。