Emacs,git 常用技巧总结
org-roam
canlendar 的使用
是个管理办法,但是感觉流程不够清晰
agenda的一个视图如下:
每次显示一周的,如果有计划,会显示计划,我感觉像日历那样的会更好
- C-c . : 调出日历,插入当下时间
- C-c C-s : schedule 的开始时间
- C-c C-d : schedule 的结束时间
- C-c C-x C-i : 任务开始(in)
- C-c C-x C-o : 任务结束(out)
- M-x org-clock-report: 生成时间统计表
- C-c a : 查看agenda
重装时备份文件
(更新包时包之间的依赖很复杂,重装更简单)
重装办法
-
mv ~/.emacs.d ~/.emacs.d.bak
-
git clone –depth 1 https://github.com/seagle0128/.emacs.d.git ~/.emacs.d
-
打开emacs,等自动更新即可
因为我用的是Centaur Emacs,如是操作即可
配置保存
将在原.emacs.d文件夹里的相关备份文件放到新的.emacs.d文件夹里
- bookmark文件(所有书签归位)
- custom.el文件(所有的自定义快捷键)
- snippets文件夹(所有的快捷模板)
解决org中多级标题显示问题
作者的ui使用了org-modern的配置,而org-modern里面使用的特殊字符需要电脑装相应的字体(没搜到,所以应该并不常用的字体),因此修改多级标题的图标显示为自定义显示。
原代码 .emacs.d/lisp/init-org.el 文件中
(use-package org-modern
:after org
:diminish
:autoload global-org-modern-mode
:init (global-org-modern-mode 1))
将其改成:新代码中加了2行自定义的层级图标
;; Prettify UI
(use-package org-modern
:after org
:diminish
;; --- 新增的部分开始 ---
:custom
;; 这里定义标题层级的图标。列表中的第一个符号对应一级标题,第二个对应二级,以此类推。
;; 我换成了一组兼容性更好的常用符号。
(org-modern-star '("◉" "○" "◈" "◇" "✳" "✚" "✜"))
;; --- 新增的部分结束 ---
:autoload global-org-modern-mode
:init (global-org-modern-mode 1))
更改前:
更改后:
bookmark
- C-x r l : 列出书签
- C-x r m : 保存书签
- S-x bookmark-save : 可以在书签保存文件中修修改书签
- S-M: mark set
- Shift-S >: 跳到最后
org
Shift-Tab: 循环标题折叠 C-c C-e: 导出md文件到hugo
打开shell
打开当下目录的shell:F9,打开EggGump的shell: F4
ox-hugo 安装
用于导致org文件为hugo适配的markdown格式
安装完 ox-hugo 后,快捷键 C-c C-e 无法绑定, 需要执行命令
M-x org-hugo-export-wim-to-md
才可使用快捷銉
因此需要在配置文件中添加启动命令,如下
(use-package ox-hugo
:after ox
:ensure t)
Yasnippet Config
调出yasnippet配置
M-x yas-new-snippet
写配置文件
# -*- mode: snippet -*-
# name: hugo_blog
# key: >hugo
# --
Adding your snippet here!
- name: 你给你的snippet起的名字
- key: 要调出snippet时所需要的快捷键
在.emacs.d/custom.el中添加配置
下面的配置中绑定了扩展快捷键 C-c y
(use-package yasnippet
:ensure t
:defer t
:init
:bind
(:map yas-minor-mode-map
("C-c y" . yas-expand))
:config
(setq yas-snippet-dirs '("~/.emacs.d/snippets/"))
(yas-reload-all))
使用说明
-
输入">hugo"
-
正常会弹出扩展提示
-
弹出提示后,按C-c y,即可替换面事先安排好的模板了。 提示示例如下:
hugo 的YASnippet配置
这里用截图显示,因为使用文本会被识别导致导出错误 需要注意的是,迁移文件时,记得修改HUGO_BASE_DIR为自己的文件,
具体配置可见 使用emacs写hugo博客 中
自定义配置文件修改汇总 (centaur-emacs)
- .emacs.d/custom.el
;; ;;自定义截图
(defun org-screenshot ()
"Take a screenshot into a unique-named file in the current buffer file
directory and insert a link to this file."
(interactive)
(setq filename
(concat (make-temp-name "./images/") ".png"))
(setq dirname
"./images/"
)
(if (file-exists-p dirname)
()
(make-directory dirname)
)
;;(suspend-frame)
(call-process-shell-command (concat "screencapture -s \"" filename "\""))
(insert (concat "[[" filename "]]"))
(org-display-inline-images)
)
(global-set-key (kbd "C-c p") 'org-screenshot)
;; ;; Yasnippet 配置
(use-package yasnippet
:ensure t
:defer t
:init
:bind
(:map yas-minor-mode-map
("C-c y" . yas-expand))
:config
(setq yas-snippet-dirs '("~/.emacs.d/snippets/"))
(yas-reload-all))
;; ;; 更改光标为bar
(setq-default cursor-type 'bar) ;更改光标为bar
;; ;; 加载 ox-hugo
(use-package ox-hugo
:after ox
:ensure t)
;; ;; latex预览变大
(with-eval-after-load 'org
(setq org-preview-latex-default-process 'dvipng)
;; (setq org-preview-latex-image-width 2.0)
(setq org-format-latex-options
(plist-put org-format-latex-options :scale 2.5))
)
;; ;;设置图片预览大用固定值
(setq org-image-actual-width 600)
;; ;;
;; 循环隐藏shell
(defvar my-egggump-shell-buffer "*EggGump-Shell*"
"Buffer name for the EggGump shell.")
(defun my-toggle-shell-egggump ()
"Toggle visibility of a shell in /Users/hubing/ExtraLearning/blog/EggGump."
(interactive)
(let ((buf (get-buffer my-egggump-shell-buffer)))
;; 如果 buffer 存在且窗口可见 → 隐藏窗口
(if (and buf (get-buffer-window buf))
(delete-window (get-buffer-window buf))
;; 否则 → 显示/创建 shell buffer
(progn
(unless buf
(let ((default-directory "/Users/hubing/ExtraLearning/blog/EggGump/"))
(shell my-egggump-shell-buffer)))
(pop-to-buffer my-egggump-shell-buffer)))))
(global-set-key (kbd "<f4>") #'my-toggle-shell-egggump)
弃用配置
;; ;;使用snipeast 截图
(defun org-snipaste ()
"Take a screenshot into a unique-named file in the current buffer file
directory and insert a link to this file."
(interactive)
(setq filename
(concat (make-temp-name "./images/") ".png"))
(setq dirname
"./images/"
)
(if (file-exists-p dirname)
()
(make-directory dirname)
)
;;(suspend-frame)
(call-process-shell-command
(concat "/Applications/Snipaste.app/Contents/MacOS/Snipaste snip"))
(insert (concat "[[" filename "]]"))
(org-display-inline-images)
)
(global-set-key (kbd "C-c y") 'org-snipaste)
;; ;; 打开shell
;; ;; 按F4打开指定位置的shell
(defun my-open-shell-egggump ()
"Open a shell in /Users/hubing/ExtraLearning/blog/EggGump."
(interactive)
(let ((default-directory "/Users/hubing/ExtraLearning/blog/EggGump/"))
(shell)))
(global-set-key (kbd "<f4>") #'my-open-shell-egggump)
Git 区
Git推送到新的github账号
-
修改配置,保证名字和邮箱为新号
-
绑定远程的
-
本地生成key, 并将这个key传到github中
-
即可开始推送
通过将远程仓库git clone到本地(注意这里要使用ssh,github好像对https限制了),再将内容复制到这个仓库里能更容易地完成往新账号的推送
文若可采,幸赐清茗一盏,以助笔耕不辍