ZeroEmacs: 从零配置你的Emacs

谢谢,之前不知道 package-initialize 这个函数。

01 哈哈,每次配置崩了,就要瞬回一次蛮荒时代,简直没法想自己是怎么调教成功这个小怪兽的

1赞

今天也是, doom 因为网络的原因差点没重装好,才体会到有点基本配置做家底真很nice,至少能倒退回青铜和铁器时代。

设置好Emacs最高频的应用bookmarks这个中央控制台和全局地图,同时也要配置好查看每个街区的局部地图工具 dired。

dire默认开启状态,展示文件的全部信息:

这对文件的打开,查找,重命名带来不便,因此按键 ( 调用 dired-hide-details-mode 将详情关掉。

;; Set dired
(add-hook 'dired-mode-hook #'dired-hide-details-mode)

设置好bookmarks和dired,全局的工作告一段落。

顺带手给ZeroEmacs创建快捷启动 alias

# zeroemacs from terminal
alias zemacs="emacs -nw -Q -l ~/.zeroemacs/config.el"
# zeroemacs from GUI
alias zeroemacs="emacs -Q -l ~/.zeroemacs/config.el"

在加载每个文件的时候错误处理一下,

在编辑evil模块相关文件前开个emacs-server,

或者维护一份vim配置,问题还是挺小的(逃

dired似乎不太好定制,我好久以前发过一贴问 如何定制dired显示的内容 最后也没搞定,我只看 |名称|修改日期|大小| 这三个,并且文件名要显示在第一列,文件名显示在所有文件信息的最后面才看到,这个总感觉不符合直觉(除了dired外,我常用的其它各种文件管理器,任务管理器都是以文件名称为第一列), 现在用org-mode自已整了一个 org-mode超链接文件的打开方式 org-file-apps

1赞

我是自己从零调教的,所以瞬回上古真心往事不堪回首,真是在Emas上浪费太多时间了啊 :rofl:

1赞

+1,我通常用daemon+emacsclient,正常app启动仅仅用来调试,不然真是瞬间连开个文件困难(我还Emacs里映射交换了Cmd和Ctrl,崩了真是手指完全打架)

1赞

厉害,刚接触的时候从零开始太难了。很早就听说过spaceemacs,但是spaceemacs对键盘毫无逻辑的魔改,屡次劝退了想要学习使用的热情;Spaceemacs用户平常很少用其工作,他们日常用jetbrain和vscode,只是人前炫技的时候用,所以当时对emacs的感觉就是花里胡哨。

之后机缘巧合用了prelude开始上路,直到用了doom切到高速路。

从零开始配置emacs能坚持到现在,真牛人,普通人早就劝退了。

1赞

好多人是从知道spaceemacs开始知道了emacs。但是当打开spaceemacs的时候,打开emacs-manual只有两眼一抹黑,键位完全不对应,驴唇马嘴。只能转而去读spaceemacs的手册。

于是,包括我在内的很多人,在没有弄清楚spaceemacs只是emacs的一个畸形配置之前,就怀抱着怎么会有a-emacs,b-eamcs,c-emacs这么多乱七八糟的emacs的疑惑离开了。

doom 的键位还是蛮合理的, 但编辑时时不时卡顿。 所以自定义一份还是必要的。 满足基本需求。

2赞

将 doom 配置成了 原生 emacs 的键位,没用evil的键位,加了这一行。

;;Key Configuration for Doom as Vanilla Emacs
(setq evil-default-state 'emacs)

认真学过vim,也啃过 practical vim; 但是,在insert-mode下自定义了一堆快捷键。

之后,别人告诉我,你适合用emacs。

1赞

哈哈,那时候还没有sublime,更别说atom、vscode了,(spacemacs、doom都是很后面的事了,这俩好像是由于emacs竞争者变多,为了重新吸引emacs新用户而诞生的,确实挺不错)。那时IDE胜行,想要个好的可扩展的编辑器,也就vim/emacs二选一,不然就只能忍受notepad++, ultraedit这类(还只能windows)。

1赞

真实,我曾经把vim生生用成了只有insert-mode,然后有vim达人不忍直视了,说你可快别用了,上emacs吧。现在vim只维持一个mini配置+powerbar,改改config文件用(不配置才能用上真vim :rofl:

2赞

要不要考虑下最新的猫态编辑(逃

3赞

很香,讲解视频的逻辑也清晰,从您这边也了解尝试了下dvp键盘布局,有收获,谢谢!!

2赞

我也是先用的vim,发现无论怎样用都用不起来,n次半途而废,直到发现emacs,然后就是那里不爽改那里,没感觉自己是从零配置emacs,而是从零开始改起,当有一个地方(痛点)经过自己魔改后用得爽了,那应该就算入门了。 每个人的这个地方估计都不一样吧, 我的是快捷键

这应该是从零配置emacs少有的优点,方便魔改,如果使用成熟配置spacemacs、doom,应该不太好改

2赞

啊这 虽然spacemacs近两年在本论坛和reddit式微但也不至于被你说成这样
https://github.com/dvcrn/sublimious
https://github.com/VSpaceCode/VSpaceCode
https://github.com/SpaceVim/SpaceVim
https://github.com/hlissner/doom-emacs/blob/develop/modules/config/default/+evil-bindings.el

3赞

抱歉啊哭泣🤣,刚接触emacs的时候运气不好,遇人不淑,因此有偏见。

1赞

配置好全局导航图bookmark与局域地图dired,ZeroEmacs进入工作模式,开始配置 agenda。

一、Agenda 界面

agenda界面设置3个小时的区域间隔:

;;agenda-time-grid
(setq org-agenda-time-grid (quote ((daily today require-timed)
                                   (300
                                    600
                                    900
                                    1200
                                    1500
                                    1800
                                    2100
                                    2400)
                                   "......"

"-----------------------------------------------------"
                                   )))

同时设置 org-agenda的目录:

(setq org-agenda-files '("~/Documents/OrgMode/ORG/diary-by-months/" ;; 2020-01-10
10:45:25
                         "~/Documents/OrgMode/ORG/Master/" ;;2019-06-18 13:37:12
                         ))

二、 org-capture 模板

org-capture的模板,当前简化至,只留下 Note 和 Plan。

;; org-agenda
;;最后只保留Note和Plan两部分。
(defun my-org-goto-last-note-headline ()
  "Move point to the last headline in file matching \"* Notes\"."
  (end-of-buffer)
  (re-search-backward "\\* Note"))

(defun my-org-goto-last-plan-headline ()
  "Move point to the last he adline in file matching \"* Plans\"."
  (end-of-buffer)
  (re-search-backward "\\* Plan"))


(setq org-capture-templates
      '(("n" "Note" entry
         (file+function "~/Documents/OrgMode/ORG/Master/todo.today.org"
                        my-org-goto-last-note-headline)
         "* %i%? \n%T")
        ("p" "Plan" entry
         (file+function "~/Documents/OrgMode/ORG/Master/todo.today.org"
                        my-org-goto-last-plan-headline)
         "* TODO %i%?")
        ))

三、定义新的一天

每天由于 M-x newday 开启新的一天,将会自动创建:

image|400x2197, 50%5%

;; newday
(defun newday ()
  (interactive)
  (progn
    (find-file "~/Documents/OrgMode/Org/Master/todo.today.org")
    (goto-char (point-max))
    (insert "*" ?\s (format-time-string "%Y-%m-%d %A") ?\n
            "** Plan\n"
            "** HandsOn\n"
            "** Notes\n"
            "** Review\n"
            )))
;;today
(defun today ()
  (interactive)
  (progn
    (find-file "~/Documents/OrgMode/Org/Master/todo.today.org")
    (goto-char (point-max))
    (re-search-backward "\\* Plan"))) 

四、today.org

today.org 文件中只保留一周的记录,startup设置content展开全部heading。 满一周后做好week-review总结后,转移到 diary-by-months.org 中去。

image

五、工作流速览

  1. M-x newday 开始新的一天
  2. org-capture 写入note与任务
  3. 从agenda-view中往非当前执行的任务添加笔记
  4. 作日总结和周总结,today文件只保留一周的内容。

https://github.com/AbstProcDo/ZeroEmacs

3赞