视频

Carsten Dominik 关于 org 模式的一篇很棒的 Google 讲话 : Emacs Org-mode - a system for note-taking and project planning
https://www.youtube.com/watch?v=oJTwQvgfgMM

org-mode 详细介绍: Getting Started With Org Mode (强烈推荐) https://www.youtube.com/watch?v=SzA2YODtgK4

elisp 介绍: An Introduction to Emacs Lisp
https://www.youtube.com/watch?v=2z-YBsd5snY&t=12s

swiper 详细视频: swiper screencast
https://www.youtube.com/watch?v=VvnJQpTFVDc

org-brain: Concept mapping in Emacs - Introduction
https://www.youtube.com/watch?v=3EGOwfWok5s

Getting Started with Org Roam - Build a Second Brain in Emacs
https://www.youtube.com/watch?v=AyhPmypHDEw

Emacs入门教程 (关于 elisp)
https://www.bilibili.com/video/BV1Pz4y1y7p9

网页

https://orgmode.org/

emacs org-mode 必须绑定的快捷键
https://orgmode.org/guide/Introduction.html#Activation

org-brain
https://github.com/Kungsgeten/org-brain

Org-roam
https://github.com/org-roam/org-roam

emacs 系列文章 https://changelog.complete.org/archives/tag/emacs2018

Emacs 系列(一):抛掉一切,投入 Emacs 和 Org 模式的怀抱
https://linux.cn/article-10297-1.html

Emacs 系列(二):Org 模式介绍
https://linux.cn/article-10312-1.html

Emacs 系列(三): Org 模式的补充
https://linux.cn/article-10327-1.html

Emacs 系列(四):使用 Org 模式自动管理邮件及同步文档
https://linux.cn/article-10334-1.html

Emacs 系列(五):Org 模式之文档与演示稿
https://linux.cn/article-10340-1.html

翻译--4.4 链接的各种操作 https://blog.51cto.com/darksun/1306574 # 文档 An Introduction to Emacs Lisp https://harryrschwartz.com/assets/documents/articles/an-introduction-to-emacs-lisp.pdf

段落上下移动

m - up, m - down 段落上移,段落下移。

字符 markup

  • *Bold*, 加粗
  • /italic/, 斜体
  • =verbatim=, 引用等浅色调
  • +strikethrough+, 删除线
  • -,以这个开头的类似于 markdown 中的 +

org-mode 必须增加的三个快捷键

* org-mode activation
  Add the following lines to your Emacs init file to define global
  keys for three commands that are useful in any Emacs buffer, not
  just Org buffers.

  #+BEGIN_SRC emacs-lisp
    (global-set-key (kbd "C-c l") #'org-store-link)
    (global-set-key (kbd "C-c a") #'org-agenda)
    (global-set-key (kbd "C-c a") #'org-agenda)
  #+END_SRC

链接

  • 网络链接,直接 c-c c-l 就可以输入链接和描述了。
  • 文件内链接,需要先在出处 c-c l 或者 m-x org-store-link 来生成链接,然后在需要的地方 c-c c-l,按 up 按键,就可以直接加载刚才保存的文件链接了。

在链接上 c-c c-o 就可以跳转链接了。

表格

  • 第一行,只要输入类似 |some|data|
  • 第二行,只要输入 |- 然后 tab 就可以全部补完
  • 下面每一个格子,都可以通过 tab 来切换
  • m-up, m-down 可以表格中对行进行上下调换, m-left, m-right 可以表格的列进行左右调换。

导出其他格式

  • c-c c-e 导出选择界面
  • h, o 就可以自动打开浏览器,展示刚才导出的 html 格式的文档。
  • 在导出界面中,c-s 可以选择 export scope 是 buffer,还是subtree,也就是是整个文件,还是大纲

增加文档描述

  • #+TITLE: A Gentle Introduction to Org-mode 在文本的任何地方,有这一行,就可以在导出的文件中显示在标题栏。
  • #+OPTIONS: toc:nil, 导出文件没有目录。

源码块

  • <s 然后 tab,然后输入代码的格式,比如 emacs-lisp, ruby 等等
  • 在代码块中使用 c-c ' 就可以打开专门的窗口,来编写代码块。
  • 源码想要导出 html 格式,需要安装 htmlize 才可以。别忘了在 myinit.org 里面增加相应的 use-package.
  • 如果想要执行相应的代码块,那么必须安装了相应的插件

LaTeX

  • - Character: \alpha \rightarrow \beta 这个导出之后,就是 a -> b
  • - $O(n \log n)$ 这个也可以生成类似于 O(n log n)
  • 下面的生成两行表达式
\begin{align*}
  3 * 2 + &= 6 + 1 \\
          &= 7
\end{align*}

literate programming

指的就是 org 里面的代码块,可以用于 init.el中。

  • c-c ; 标记为注释

Todo stuff

  • TODO ... 标记为 todo
  • s-m-<ret>,在上一行结束,按这个组合键,可以立刻进入下一行的todo,直接输入相应内容即可。
  • c-c c-t, 可以在 todo, done, none 三种状态之间循环。
  • s-left, s-right 修改时间戳
  • c-c c-d,可以指定 deadline,使用 s-up, down, left, right 来选择日期。
  • 'c-c a`, agenda
  • 'c-c c-x c-d`,归档完成的事情
  • c-c c-c, capture, capture中输入的好像放到一个 bookmarks 文件里面去了。
  • todo 也可以嵌套。

其他杂项

  • 联系人地址簿 (40:00)
  • blog 可以使用 org2blog,或者 org-publish
  • ox-twbs 可以导出支持 tw 的 html 格式。(46:00)
  • ox-gfm 可以导出支持 github 的 markdown 格式。(46:20)
  • org-drill,可以生成问答小卡片 (46:50)
  • orgzly, 安卓设备上使用 org-mode 来同步的 gtd 工具。
  • entr,服务器上运行的软件,当文件有改变时,执行指定的命令。
  • owncloud, nextcloud, 私有云部署 (54:00)

参考:

Getting Started With Org Mode
https://www.youtube.com/watch?v=SzA2YODtgK4

github: Harry R. Schwartz
https://github.com/hrs

dotfiles/emacs/dot-emacs.d/configuration.org
https://github.com/hrs/dotfiles/blob/main/emacs/dot-emacs.d/configuration.org

youtube

https://www.youtube.com/user/mzamansky/playlists

github

github 上面关于 emacs 的配置有三个仓库分别是:
https://github.com/zamansky/using-emacs
https://github.com/zamansky/dot-emacs-videos-to-77
https://github.com/zamansky/dot-emacs

上面这三个仓库按照时间顺序从旧到新,配合着上面的视频的是 using-emacs 这个仓库。

blog

https://cestlaz.github.io/stories/emacs/

org 相关视频

可以参考: https://www.youtube.com/watch?v=SzA2YODtgK4 这个视频对 org 讲解的比较深入。

org 层次

使用 * 来表达层次。

org 缩进

  - 123
  - 456

类似于上面这个,第一行可以直接使用 tab,然后输入 - 123,第二行的时候,可以 tab + - + tab 这样,第二行就可以和第一行对齐了。 如果是 -``tab 那么会比上一行还要缩进。

org 添加网络链接

c-c c-l 可以输入链接,然后 <ret> 可以输入描述。backspace 可以修改内容 当然也可以直接输入链接,如: [[https://www.bilibili.com][b站]] 在链接上 c-c c-o 就可以调用浏览器,打开对应的链接。

org 块操作

m-上m-下 可以把相应的块上移或者下移。 tab 可以打开或者收缩块。

org 打开的时候,就全部展开

在文件头部添加 #+STARTUP: showall, 然后重新打开这个文件,或者 m-x revert-buffer 也可以直接重新加载这个文件。

org 多个*,只显示一个,其他隐藏

把文件头的 #+STARTUP: showall 修改为 #+STARTUP: showall hidestars,然后 m-x revert-buffer 即可。

安装 org-bullets

;; org-bullets https://github.com/integral-dw/org-bullets
(use-package org-bullets
  :ensure t
  :config
  (add-hook 'org-mode-hook #'org-bullets-mode))

这个 config 下面的配置,是直接从 org-bullets 的 github 里面复制过来的,github 里面是这样的 :

(require 'org-bullets)
(add-hook 'org-mode-hook #'org-bullets-mode)

保存之后,运行 c-x c-e 来安装包。 安装完之后,在 org 的文件里面 m-x revert-buffer 就可以看到 * 变成子弹形状了。

问题:

git push 的时候,提示要不就关闭 github 上面的 email 隐私,要不就使用无回复邮箱。

解决方法

设置项目本身的 email。

  1. 进入项目根目录
  2. git config user.email xxxx@users.noreply.github.com
  3. 回退上次的提交,git reset --soft HEAD~1
  4. 使用新的 email 来提交,git commit -m "xxx"
  5. git push

参考:

remote: error: GH007: Your push would publish a private email address.
https://blog.csdn.net/neuldp/article/details/76737010

配置文件位置

配置文件放在 .emacs.d/init.el

去除开始页面

init.el 中增加

;; don't show startup message
(setq inhibit-startup-message t)

elpa package

(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives
         '("melpa" . "https://melpa.org/packages/"))

(package-initialize)

重新打开 emacs 后,m-x list-packages 可以查看到内置的包。m-x packages-refresh-content 可以链接网络刷新这些包。

安装 use-package 用于简化与 package-manager 的沟通。

https://github.com/jwiegley/use-package

;; install use-package
(unless (package-installed-p 'use-package)
  (package-refresh-contents)
  (package-install 'use-package))

然后在上面这个末尾输入 c-x c-e 运行这条语句,按照 use-package

安装 try,用于测试包,而不安装包,https://github.com/larstvei/Try

;; try
(use-package try
  :ensure t)

然后在上面这个末尾输入 c-x c-e 运行这条语句,然后就可以 m-x try 来安装相应的包,比如说 2048-game,按照好之后,就可以 m-x 2048-game 来运行这个包。但是当重启 emacs 的时候,就无法再次运行上次的 2048-game 了, try 就是为了尝试这个作用。

安装 which-key,当按了 c-x 之类的按键之后,等待 1秒钟,下面就会有可用的提示。 https://github.com/justbur/emacs-which-key

;; which-key https://github.com/justbur/emacs-which-key
(use-package which-key
  :ensure t
  :config (which-key-mode))

别忘了添加之后输入 c-x c-e 来安装好这个包,然后输入 c-x 等待1秒,就可以看到相应的提示内容了。

参考:

Using Emacs - Setting up the Package Manager
https://cestlaz.github.io/posts/using-emacs-1-setup/

参考:

[问题] Could not find method compile() for arguments [directory ‘libs’]的两种情况汇总
https://blog.csdn.net/m0_52739647/article/details/119736421

Android Studio project with path '... ' could not be found in project ' app' 报错解决方案
https://blog.csdn.net/lvshuchangyin/article/details/51780431

android studio 导入源码库,Android Studio导入Android源码/调试framework的教程
https://blog.csdn.net/weixin_39819283/article/details/117610442

Android studio 引入第三方库(github开源库)
https://blog.csdn.net/shi_xin/article/details/79033886

参考:

安卓使用FileProvider.getUriForFile出现问题解决
https://blog.csdn.net/luo13788507590/article/details/98615151

Couldn‘t find meta-data for provider with authority
https://blog.csdn.net/haiyoumeizhuce/article/details/99981936

解决: Couldn‘t find meta-data for provider with authority xxx.fileProvider
https://blog.csdn.net/qq_31877171/article/details/114314648

安卓从6.0适配到7.0以上遇到的FileProvider相关问题踩坑
https://blog.csdn.net/qq_36165311/article/details/108777003

android7.0之后版本,FileProvider适配问题
https://blog.csdn.net/oudetu/article/details/78444097

Failed to find configured root that contains
https://www.cnblogs.com/fengfenghuifei/p/10725603.html

FileProvider 的使用(Failed to find configured root that contains/storage/emulated/0/DCIM/ )
https://blog.csdn.net/leilifengxingmw/article/details/57405908

java.lang.IllegalArgumentException: Failed to find configured root that contains /storage/emulated/0
https://blog.csdn.net/m0_46366678/article/details/113616407

java.lang.IllegalArgumentException:未能找到包含/storage/emulated/0/Pictures/的已配置根目录
https://cloud.tencent.com/developer/ask/sof/145862

java.lang.IllegalArgumentException: Failed to find configured root that contains .....
https://blog.csdn.net/liu_xueping/article/details/103980700

java.lang.IllegalArgumentException: Failed to find configured root that contains .....
https://blog.csdn.net/songzi1228/article/details/83546066

参考:

Android应用内升级App/Apk升级(下载Apk并且安装)
https://juejin.cn/post/6882191830700523527

Android应用内升级App
https://www.jianshu.com/p/234426d802a0

android app开发之app本地更新
https://blog.csdn.net/l506945024/article/details/54599327

移动端APP应用版本升级更新方案:整包更新及资源在线升级(热更新)
https://www.cnblogs.com/goloving/p/14350784.html

关于app更新升级的方法
https://blog.csdn.net/qq_21153627/article/details/79399611

Android产品研发(十四)-->App升级与更新
https://blog.csdn.net/qq_23547831/article/details/51764773

DownloadManager下载Apk使用详解
https://blog.csdn.net/weimiannihao/article/details/106786816

Android开发 android7.0安装apk文件的姿势
https://blog.csdn.net/pkandroid/article/details/53716719