Spacemacs使用

Spacemacs快捷键

光标行位置
| zt | evil-scroll-line-to-top | 顶部 |
| zz | evil-scroll-line-to-center | 居中 |
| zb | evil-scroll-line-to-bottom | 底部 |

折叠快捷键

快捷键 函数 说明
za evil-toggle-fold 触发
zc evil-close-fold 折叠
zo evil-open-fold 展开
zm evil-close-folds 折叠全部
zr evil-open-folds 展开全部

跳转
| ,gd | xref-find-definitions | |
| ,gb | xref-pop-marker-stack | |
| ,gr | xref-find-references | |

| SPC-cl | comment-or-uncomment-region | 注释 |

Spacemacs快捷键

Spacemacs 默认用 projectile 探测工作项目

若是git项目,Spacemacs发现有.git目录,就会认为是一个Spacemacs Project

spacemacs离线安装
https://edward852.github.io/post/spacemacs离线安装/
Spacemacs使用指南
https://code-monkey.top/2016/12/26/spacemacs-usage/
Spacemacs入门总结
https://everettjf.github.io/2017/03/11/spacemacs-tutorial/
spacemacs 使用gdb
https://blog.csdn.net/csfreebird/article/details/71171559
spacemacs用git layer管理代码
https://blog.csdn.net/csfreebird/article/details/52871162
Pythoner 的 spacemacs 入门指北
https://blog.csdn.net/zlyf1101/article/details/101930070
记录 Org 和 Markdown 的一些异同
https://blog.csdn.net/Homography/article/details/106161787

DevOps Spacemacs Org
https://www.dazhuanlan.com/dayexiangcai/topics/1162658

Spacemacs

Spacemacs文档
SPC h SPC 调出所有帮助文档
SPC h l 列出spacemacs layers
SPC h d 查看describe相关文档
SPC h d f 查看指定函数的帮助文档
SPC h d b 查看指定快捷键绑定的命令
SPC h d v 查看指定变量的帮助文档

| SPC f e d | 打开.spacemacs配置文件 |
| SPC f e R | 重载配置 |
| SPC q R | 重启Emacs |

| SPC q q | 杀掉进程 |
| SPC z x | 修改字体大小 |
| SPC t 8 | 高亮显示第80列以后的任何字符|
| SPC t f | 显示填充列(默认填充列设置为80)|
| SPC t h h | 切换当前行的高亮显示|
| SPC t h i | 切换突出显示缩进级别|
| SPC t l | 切换截断线|
| SPC t L | 切换视线|
| SPC t n | 切换行号|
| SPC t v | 切换平滑滚动|
| SPC T n | 切换到在 dotspacemacs-themes 中列出的下一个主题 |
| SPC T s | 从 helm buffer 选择一个主题 |
| SPC T t | 切换工具栏|
| SPC T T | 切换帧透明度并进入透明度瞬态状态 |
| SPC T m | 切换菜单栏|
| SPC T ~ | 在空行的边缘显示 ~|
| SPC T F | 全屏切换帧|
| SPC T f | 切换显示边缘|
| SPC T M | 切换帧最大化|
| SPC t m m | minor mode 指示器开启关闭|

which-key 插件提供快捷键绑定菜单
spc-spc-helm-imenu 查看单个文件结构大纲

Project

项目
SPC p f 查找项目文件并快速打开
SPC p R 在项目中替换字符串,根据输入「匹配」和「替换」字符串,然后输入替换方式
E 修改刚才输入的「替换」字符串
RET 表示不作处理
y 只替换一出
Y 替换全部
n / delete  跳过当前匹配项,匹配下一项
^ 跳过当前匹配项,匹配上一项
, 替换当前项,但不移动光标

SPC p p 切换项目
SPC p D 在dired中打开项目根目录

查找
SPC f g 搜索相关函数名

Window

窗口快捷键
SPC w /或v 垂直分割
SPC w -或s 水平分割
SPC w + 窗口布局切换
SPC w j,k,h,l 移动光标到上下左右窗口
SPC w J,K,H,L 移动光标到最上下左右窗口
SPC N 快速切换到窗口N
SPC w d 删除窗口
SPC w m 当前窗口最大化
SPC w c buffer居中模式
SPC w C buffer居中并满屏
SPC w f 窗口联动跟随模式

Buffer

Buffer快捷键
SPC b n 下一个buffer
SPC b p 上一个buffer
SPC b N 新buffer
SPC b P 拷贝剪切板内容覆盖整体buffer内容
SPC b d 删除此buffer
SPC b m 删除其它buffer
SPC b k 关闭当前buffer
SPC b h 跳转到home起始页面
SPC b W buffer列表 工作站
SPC b b 列出所有buffer helm-mini

File

File文件操作
SPC f f 使用helm查找文件
SPC f L 全局搜索,使用helm-local再当前系统查找文件
SPC f r 最近打开的文件列表
SPC f R 重命名当前文件
SPC f s 保存文件
SPC f S 保存所有打开的Buffer

SPC / 用合适的工具搜索内容,相当于grep /ack/ag/pt xxx
SPC s c 清除搜索高亮
SPC SPC 搜索当前文件
SPC f t 打开当前文件所在目录
SPC p t 打开当前文件所在根目录
SPC n 跳转窗口

SPC j = 对齐,相当于beautify

shell

SPC ' 打开/关闭shell
C-k 前一条shell命令
C-j 后一条shell命令

快速翻页

快速翻页 (在 spacemacs 0.1xx 中没测试过)
SPC n , 或 . 或 < 或 > 进入 scrolling transient state
然后重复按 , 或 . 或 < 或 > 即可,
按其他键会退出 scrolling transient state
, 向上翻一页
. 向下翻一页
< 向上翻半页

向下翻半页

让 Spacemacs 支持 EditorConfig

EditorConfig 是一个配置文件,一般位于项目的根目录,它可以让不同的编辑器和 IDE 都按照相同的格式来格式化代码,对于项目的维护者来说是一个很好的工具。
Spacemacs 也支持 EditorConfig,只需要在配置文件中添加配置即可。下面以 OS X 为例,通过以下步骤即可让 Spacemacs 支持 EditorConfig:
$ brew install editorconfig
在 ~/.spacemacs 中的 dotspacemacs-additional-packages 中添加 editorconfig:
dotspacemacs-additional-packages
'( editorconfig )
创建 .editorconfig 文件,写上自己喜欢的配置。
在 ~/.spacemacs 中的 docspacemacs/user-config 中加入 (editorconfig-mode 1)。

Git 集成 (必须先配置 Magit 的使用)

Git 是一个优秀的版本控制工具,我们可以在 .spacemacs 的 dotspacemacs-configuration-layers 列表中添加 git 就可以集成 git 了。
下面是一些常用的 git 命令,前缀为 g。
spacemacs 0.1xx:
Git Magit
git init SPC g i
git status SPC g s
git add SPC g s 弹出层选中文件然后按 s
git add currentFile SPC g S
git commit SPC g c c
git push SPC g P 按提示操作
git checkout xxx SPC g C
git checkout -- xxx SPC g s 弹出层选中文件然后按 u
git log SPC g l l
spacemacs 0.2xx:
大部分命令整合到 SPC g s 中,需要按照提示执行命令
在 commit 时,我们输入完 commit message 之后,需要按 C-c C-c 来完成 commit 操作,也可以按 C-c C-k 来取消 commit

设置文件默认的主模式
虽然我们可以通过 M-x 来设置文件的主模式,但这种方式只是在单独修改某个文件的主模式时好用,如果要把所有同类型的文件都改成其他模式,这种方式的效率就太低了。
在 Spacemacs 中,我们可以用 auto-mode-alist 来设置某一类文件默认的主模式。
我们只需要在 ~/.spacemacs 中的 user-config 中加入下面代码即可:
(add-to-list 'auto-mode-alist '("\.js\'" . react-mode))
上面代码会用 react-mode 打开所有 .js 文件。

设置主模式的 hook
主模式的 hook 是一个 elisp 函数,这个函数会在主模式加载时调用,常用于为特定的主模式自定义配置。
如我想在 js2-mode 中作出如下配置:

移除检查分号的提示 (否则当行末缺少了分号的时候,会给出烦人的提示)
支持 Node.js 内建函数 (否则当出现 require, module 之类的时候会提示未定义变量)
设置缩进为 2
这时候我可以通过如下方式来设置:

;; hooks
(defun my-js-mode-hook ()
(setq js2-basic-offset 2)
(setq js-indent-level 2)
(setq js2-include-node-externs t)
(setq js2-strict-missing-semi-warning nil))

(add-hook 'js2-mode-hook 'my-js-mode-hook)

Emacs 服务器
Spacemacs 会在启动时启动服务器,这个服务器会在 Spacemacs 关闭的时候被杀掉。

使用 Emacs 服务器
当 Emacs 服务器启动的时候,我们可以在命令行中使用 emacsclient 命令:

$ emacsclient -c 用 Emacs GUI 来打开文件
$ emacsclient -t 用命令行中 Emacs 来打开文件
杀掉 Emacs 服务器
除了关闭 Spacemacs 之外,我们还可以用下面的命令来杀掉 Emacs 服务器:

$ emacsclient -e '(kill-emacs)'
持久化 Emacs 服务器
我们可以持久化 Emacs 服务器,在 Emacs 关闭的时候,服务器不被杀掉。只要设置 ~/.spacemacs 中 dotspacemacs-persistent-server 为 t 即可。

但这种情况下,我们只可以通过以下方式来杀掉服务器了:

SPC q q 退出 Emacs 并杀掉服务器,会对已修改的 Buffer 给出保存的提示。
SPC q Q 同上,但会丢失所有未保存的修改。

Spacemacs配置

一. 安装 Spacemacs

git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
# 重启 emacs 自动安装,安装过程建议选择 vim 和 helm,spacemacs在安装过程中会在创建`~/.spacemacs`文件

二. 配置Spacemacs

Spacemacs的配置文件~/.spacemacs结构

(defun dotspacemacs/layers() ...)        ;; 对layer进行配置
(defun dotspacemacs/init() ...)         ;; 初始化变量
(defun dotspacemacs/user-env() ...)     ;; environment variables setup
(defun dotspaceamcs/user-init() ...)    ;; 自定义初始化,如加入镜像源
(defun dotspaceamcs/user-load() ...)    ;; library to load while dumping
(defun dotspacemacs/user-config() ...)  ;; 自定义配置
(defun dotspacemacs/emacs-custiom-settings() ...)  ;; Emacs custom settings

以上函数执行顺序:init -> user-init -> layers -> user-config

1. dotspacemacs/init函数

;; This function is called at the very beginning of Spacemacs startup, before layer configuration
dotspacemacs-themes '()  ;; 设置主题
dotspacemacs-default-font '()  ;; 配置字体
dotspacemacs-line-numbers '    ;; 设置行号显示风格

2. dotspacemacs/user-init函数

;; Initialization for user code.
;; 如果下载插件速度太慢可以考虑使用清华镜像源
(setq configuration-layer--elpa-archives
    '(("melpa-cn" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/melpa/")
      ("org-cn" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/org/")
      ("gnu-cn" . "http://mirrors.tuna.tsinghua.edu.cn/elpa/gnu/")))

3. dotspacemacs/layers函数

  • dotspacemacs-configuration-layers
    变量中添加需要配置的 layer,指定加载和配置 Spacemacs中 layer
  • dotspacemacs-additional-packages变量
    添加不包含在layer中的包,dotspacemacs-additional-packages变量中添加想要安装的包,下次启动 emacs 时就会自动安装了,如果需要对包进行更多的配置,那么可以创建自己的 layer,然后在自己创建的 layer 中引入
  • dotspacemacs-frozen-packages变量
  • dotspacemacs-excluded-packages变量
    删除想要安装的包

4. dotspacemacs/user-config函数

三. 自定义 layer

用命令 configuration-layer/create-layer创建layer
默认位置为~/.emacs.d/private/,可以通过修改 dotspacemacs-configuration-layer-path '("~/.spacemacs/layers")来改变 layer位置。
注:创建自定义 layer后要添加变量 dotspacemacs-configuration-layers中

dotspacemacs-configuration-layers
  '(
     ;; ----------------------------------------------------------------
     ;; Example of useful layers you may want to use right away.
     ;; Uncomment some layer names and press `SPC f e R' (Vim style) or
     ;; `M-m f e R' (Emacs style) to install them.
     ;; ----------------------------------------------------------------
     ;; auto-completion
     ;; better-defaults
     emacs-lisp

     (html :variables
           html-enable-lsp t
           css-enable-lsp t
           ;;html-enable-leex-support t
           web-fmt-tool 'web-beautify)
     (javascript :variables
                 javascript-backend 'lsp
                 javascript-lsp-hinter nil
                 javascript-fmt-tool 'web-beautify
                 javascript-import-tool 'import-js)

     (python :variables
             python-backend 'lsp
             python-lsp-server 'pyright
             python-formatter 'yapf)

     ;; git
     helm
     lsp
     markdown
     multiple-cursors
     ;; org
     (shell :variables
            shell-default-height 30
            shell-default-shell 'eshell
            shell-default-position 'bottom)
     spell-checking
     syntax-checking
     ;; version-control
     treemacs)
pip install rope
pip install jedi
## flake8 for code checks
pip install flake8
## importmagic for automatic imports
pip install importmagic
## and autopep8 for automatic PEP8 formatting
pip install autopep8
## and yapf for code formatting
pip install yapf
## install virtualenv for jedi
pip install virtualenv virtualenvwrapper

后端引擎

# Html layer
npm i -g vscode-css-languageserver-bin
npm i -g vscode-html-languageserver-bin

# Javascript
npm install -g jshint
npm install -g import-js
npm i -g typescript javascript-typescript-langserver

# python
npm install -g pyright

# web-beautify
npm install -g js-beautify

spacemacs-14-days

posted @ 2024-11-06 11:39  sgqmax  阅读(9)  评论(0编辑  收藏  举报