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
。
通过设置 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
。