---
title: "SpaceVim lang#nim 模块"
description: "该模块为 SpaceVim 提供 nim 开发支持，包括语法高亮、代码补全、编译运行以及交互式编程等功能。"
lang: cn
---

# [可用模块](../../) >> lang#nim

<!-- vim-markdown-toc GFM -->

- [模块简介](#模块简介)
- [功能特性](#功能特性)
- [启用模块](#启用模块)
- [快捷键](#快捷键)
  - [交互式编程](#交互式编程)
- [示例项目](#示例项目)

<!-- vim-markdown-toc -->

## 模块简介

[Nim](https://github.com/nim-lang/Nim) 是一种编译型的系统语言，具有高效的垃圾回收机制，该模块为 SpaceVim 添加了 nim 语言开发支持。

## 功能特性

- 语法高亮
- 代码补全
- 一键编译运行

## 启用模块

可通过在配置文件内加入如下配置来启用该模块：

```toml
[[layers]]
  name = "lang#nim"
```

在使用该模块之前，首先需要确保本地 nim 环境安装完整，可通过包管理器安装 nim， 例如：

```sh
sudo pacman -S nim nimble
```

## 快捷键

| 按键      | 功能描述                             |
| --------- | ------------------------------------ |
| `SPC l r` | 编译，并运行当前文件                 |
| `SPC l e` | 在当前文件范围内，重命名光标下的符号 |
| `SPC l E` | 在整个项目范围内，重命名贯标下的符号 |

### 交互式编程

启动 `nim secret` 交互进程，快捷键为： `SPC l s i`。如果存在可执行命令 `ipython`，
则使用该命令为默认的交互式命令；否则则使用默认的 `python` 命令。可通过设置虚拟环境来修改可执行命令。

将代码传输给 REPL 进程执行：

| 快捷键      | 描述                    |
| ----------- | ----------------------- |
| `SPC l s b` | 发送整个文件内容至 REPL |
| `SPC l s l` | 发送当前行内容至 REPL   |
| `SPC l s s` | 发送已选中的内容至 REPL |

## 示例项目

该项目为使用 SpaceVim 开发 nim 的示例项目：

<https://github.com/wsdjeg/nim-example>
