Skip to content

Latest commit

 

History

History
133 lines (102 loc) · 3.87 KB

README_CN.md

File metadata and controls

133 lines (102 loc) · 3.87 KB

brainfuck-vim

English

Brainfuck 语言的 vim 插件。

关于 brainfuck 的介绍,可参照 https://www.muppetlabs.com/~breadbox/bf

功能

语法高亮

包括基本命令 (><+-.,[])、注释和两个额外的调试器专用命令 (!|)。

解释器

执行:BFRun以当前文件作为输入运行解释器。

解释器识别并解释基本命令 (><+-.,[]),其他字符会被忽略。

行注释以非命令字符开始 (空格除外),注释中的有效命令也会被忽略。

输入和输出的区域在底部。

  +---------------------+
  |Brainfuck source code|
  |                     |
  |                     |
  |                     |
  |                     |
  +---------------------+
  |      IO field       |
  +---------------------+

更多功能和配置,可参照通用配置

调试器

执行:BFDebug以当前文件作为输入运行调试器。

调试器具有解释器的全部功能。

它支持两个额外的命令 (这两个命令会被解释器忽略):

  • !: 暂停程序执行。按任意键继续。
  • |: 两个 | 之间的命令将被逐一执行。

它将打开一个调试缓存区用于显示数组的状态。

  +---------------------+------------+
  |Brainfuck source code|Debug buffer|
  |                     |            |
  |                     |            |
  |                     |            |
  |                     |            |
  +---------------------+------------+
  |             IO field             |
  +---------------------+------------+

更多功能和配置,可参照通用配置调试器配置

安装

Plug 'fruit-in/brainfuck-vim'
:PlugInstall
Plugin 'fruit-in/brainfuck-vim'
:PluginInstall

配置

你可以通过在 vimrc 中设置一些变量来自定义解释器和调试器的行为。例如:

let g:bf_array_size = 3000
let g:bf_array_mode = 2
let g:bf_value_mode = 2

通用配置

数组大小

通过设置 g:bf_array_size 可以设置数组的大小。

有效的值为 > 0。默认值为 30,000

数组模式

通过设置 g:bf_array_mode 可以定义指针超出数组边界时的行为。

有效的值为 {0, 1, 2}。默认值为 0

  • 0: 严格模式。当指针超出数组边界时抛出一个错误。
  • 1: 普通模式。当指针超出数组边界时停留在边界。
  • 2: 循环模式。当指针超出数组边界时到达另一个边界。

数值类型

通过设置 g:bf_value_type 可以设置数值的类型。

有效的值为 {0, 1, 2, 3, 4, 5, 6}。默认值为 0

  • 0: u8。
  • 1: i8。
  • 2: u16。
  • 3: i16。
  • 4: u32。
  • 5: i32。
  • 6: 自定义。详情可参照最大值最小值

数值模式

通过设置 g:bf_value_mode 可以定义数值超出数值边界时的行为。

有效的值为 {0, 1, 2}。默认值为 0

  • 0: 严格模式。当数值超出数值边界时抛出一个错误。
  • 1: 普通模式。当数值超出数值边界时停留在边界。
  • 2: 循环模式。当数值超出数值边界时到达另一个边界。

最大值

通过设置 g:bf_value_max 可以设置数值的上限。仅当 g:bf_value_type == 6 时有效。

有效的值为 >= 0。默认值为 255

最小值

通过设置 g:bf_value_min 可以设置数值的下限。仅当 g:bf_value_type == 6 时有效。

有效的值为 <= 0。默认值为 0

调试器配置

调试延时

通过设置 g:bf_debug_delay 可以设置执行命令之间的时间间隔,以毫秒为单位。仅在调试器和两个 | 之间的命令有效。

有效的值为 > 0。默认值为 200