Spacemacs 笔记

本文记录在使用spacemacs过程的一些笔记

待办事项

  1. TODO 项

    标题以 TODO 开始时它就成为了一个 TODO 项,例如:

    1
    
    ***TODO Write letter to Sam Fortune
    
  2. 进度显示

    在标题的任何地方插入‘[/]’或者‘[%]’即可

    1
    2
    3
    4
    5
    
      * Organize Party [33%]
      ** TODO Call people [1/2]
      *** TODO Peter
      *** DONE Sarah
      ** TODO Buy food
    
  3. 标签

    标签的前面和后面都应该有一个冒号,例如,“:work:”。可以指定多个标签,就像“:work:urgent:”。如果一个标题具有某个标签,它的所有子标题也会继承这个标签。

    1
    2
    3
    
    * Meeting with the French group     :work:
    ** Summary by Frank                 :boss:notes:
    *** TODO Prepare slides for him     :action:
    
  4. 截止期限

    1
    2
    3
    
    *** TODO write article about the Earth for the Guide
    The editor in charge is bbdb:Ford Prefect
    DEADLINE: <2004-02-29 Sun>
    
  5. 日程安排

    计划在给定的那个日期开始进行那项任务

    1
    2
    
    *** TODO Call Trillian for a date on New Years Eve.
    SCHEDULED: <2004-12-25 Sat>
    
快捷键 功能
C-c C-t 将当前项的状态在(unmarked)->TODO->DONE 之间循环切换
C-c a t 显示全局 TODO 列表
S-M-RET 在当前项下插入一个新的 TODO 项
C-c C-q 为当前标题输入标签
C-c C-d 在标题下面一行插入一个带有“DEADLINE”关键字的时间戳
C-c C-s 在标题下面插入一个带有“SCHEDULED”关键字的时间戳

Markdown mode

Shortcut

short cut usage
C-c C-l insert a Link
C-c C-i insert a image
C-c C-s text style
C-c C-s f footnote
C-c C-c n renumbers any ordered lists in the buffer that are out of sequence
C-c C-c ] completes all headings and normalizes all horizontal rules in the buffer.
C-c < and C-c > Shifting the Region

Org mode

Shortcut

short cut usage
Space t L 一行的文字太多不够显示,自动换行显示

Setting

保存时自动清除空格

在.spacemacs文件中加入

1
2
(add-hook 'before-save-hook 'delete-trailing-whitespace)
(add-hook 'before-save-hook 'whitespace-cleanup)

显示自动换行

M-x spacemacs/toggle-visual-line-navigation-on

clang-format

1
2
3
clang-format -style=google -dump-config > .clang-format
(require 'clang-format)
(global-set-key (kbd "C-c C-f") 'clang-format-region)

代码跳转

需添加 semantic layer 首先需要打开 semantic_modesrefactor-refactor-at-point, 且跳转只支持已经打开过的文件

  • C+c , J 全局跳转
  • C+c , j 本地文件的跳转

需要 ctags layer

  • SPC m g d 跳转定义
  • SPC m g r 跳转引用
  • SPC m g R 恢复上次 gtags 命令
  • SPC m g p 跳到上次历史跳转
  • SPC m g n 跳到下次历史跳转

记得需要在系统中安装 global sudo apt install global ctags 然后执行 M m p G 确认使用 ctags 为 backend.

M-RET g G 打开新 buffer 显示函数定义
ctrl + ] 定位函数定义位置
ctrl + o 返回原来的地方
g d 转到光标所指的局部变量的定义

操作快捷键

移动:

  • {数字} j 往下滚动 N 行
  • {数字} k 往上滚动 N 行
  • SPC j j 跳转至视线范围内的字符
  • SPC j l 跳至指定行
  • C M a 跳至函数开头
  • M f 前进一个单词
  • M b 回退一个单词

搜索:

  • SPC s s 搜索字符串
  • M % 文件内字符串替换
  • C M % 文件内正则表达式字符串替换
  • SPC h m 浏览 manual 手册
  • SPC e l 查看语法错误的位置
  • SPC \ 工程内搜索字符串

选择:

  • C M h 选中当前函数
  • C x h 全选

文件:

  • SPC f f 打开文件
  • SPC f r 打开最近文件
  • SPC f t 打开文件导航树
  • SPC f s 保存文件
  • SPC b b 切换到指定文件

窗口:

  • SPC w s 下方新建窗口
  • C w s 下方新建窗口
  • SPC w v 右侧新建窗口
  • C w v 右侧新建窗口
  • SPC {0-9} 窗口跳转
  • SPC w m 最大化当前窗口
  • SPC w d 关闭窗口

注释:

  • M ; 添加注释
  • SPC i s 代码片段或注释插入
  • C x C ; 注释行

代码折叠:

  • z c 折叠代码
  • z o 展开代码
  • z a 折叠/展开代码
  • z m 折叠所有
  • z r 展开所有

shell:

  • "SPC !" 执行 shell 命令
  • 命令 eshell 执行多条指令

编辑:

  • SPC a u 撤销或重做
  • SPC s e 同步编辑当前区域变量
  • SPC s h 高亮变量, n/p 跳下/上, d 跳到定义的位置
  • SPC s c 取消高亮
  • M RET 打开 semantic 选项,选择 r 然后 . 可以自动生成类声明函数的代码
  • C c < 左移动代码
  • C c > 左移动代码

.spacemacs 配置生效

  • SPC f e R
updatedupdated2022-07-082022-07-08