Javascript 在Vim模式下使用Codemirror

Javascript 在Vim模式下使用Codemirror,javascript,plugins,codemirror,Javascript,Plugins,Codemirror,我编造这件事有点困难。我只想在Vim模式下使用Codemirror编辑功能,不需要任何语法突出显示。也就是说,如果我在文本区域中单击,它将在类似的文本编辑器中转换,如演示页面所示。谢谢 编辑: 如果不是Codemirror,请告诉我如何将用户单击的文本区域转换为VIM类型的编辑区域。我想把它做成一个插件,这样每当我点击某个页面上的文本区域时,它就会给我一个类似VIM(不完全是VIM)的环境来编辑。我该怎么做钥匙扣的事?请帮忙 CodeMirror负责所有键绑定(以及vim模式的键映射),因此您所

我编造这件事有点困难。我只想在Vim模式下使用Codemirror编辑功能,不需要任何语法突出显示。也就是说,如果我在文本区域中单击,它将在类似的文本编辑器中转换,如演示页面所示。谢谢

编辑
如果不是Codemirror,请告诉我如何将用户单击的文本区域转换为VIM类型的编辑区域。我想把它做成一个插件,这样每当我点击某个页面上的文本区域时,它就会给我一个类似VIM(不完全是VIM)的环境来编辑。我该怎么做钥匙扣的事?请帮忙

CodeMirror负责所有键绑定(以及vim模式的键映射),因此您所要做的就是为手头的
textarea
创建一个编辑器实例

查看文档中的
CodeMirror.fromTextArea()
,查看它是如何完成的

您还可以参考,只需查看源代码。这是CodeMirror实例在那里初始化的方式:

1 | codemirr.commands.save=函数(){
2 |警报(“保存”);
3  | };
4  |
5 | var editor=CodeMirror.fromTextArea(document.getElementById(“代码”){
6 |行号:正确,
7 |模式:“文本/x-csrc”,
8 |键图:“vim”,
9 |选择时显示光标:true
10 | });
让我们把它拆开,按照“否”行:

  • 1-3:为save命令分配一个处理程序,该处理程序映射到vim键绑定上的
    :w
    。从文档中的密钥绑定部分:

    键映射中属性的值可以是 单参数(CodeMirror实例)、字符串或false。这样的 字符串引用
    codemirr.commands
    对象的属性,该对象 定义默认情况下使用的许多常用命令 键绑定,并将它们映射到函数

  • 4:寂静之声

  • 5:从DOM获取
    textarea
    元素(以
    code
    作为其ID表示),并将其传递给静态方法,该方法将基于该元素创建CodeMirror实例

  • 6-9:设置各种选项:

    • 6:显示排水沟中的行号

    • 7:将编辑器模式设置为C-like以突出显示C代码

    • 8:分配vim密钥绑定

    • 9:好,选择时显示光标

  • 10:把它包起来

为了使编辑器模式和键绑定正常工作,需要加载所需的脚本,因此我们还希望包括这些脚本:



我在你的问题中没有看到问号。我在评论中添加了问号。对不起。编辑主要问题。好的,到目前为止你尝试了什么?你看过文档了吗?我在页面上动态点击的文本区域无法使用Codemirror。我编写了自定义naive代码,该脚本将onkeypress事件引入每个文本区域属性,并在每个按键上调用函数。因此,我过滤键并执行相应的操作。我实现了基本的插入模式、导航和替换。然而,为了使其功能全面,我希望使用Codemirror实现这一点。。对此我一无所知
我阅读了API文档,但找不到实现它的方法。对不起,如果我错过了愚蠢的部分,我会很傻。是的!很好,我试过上面的方法。我想知道如何在我浏览的所有页面或网站上动态实现它?也就是说,通过一个用户脚本或插件的形式,这样无论我在浏览什么页面,如果我在任何文本区域激活Vim模式,它都会转换为类似Vim的文本编辑器界面。我尝试将document.getActiveElement.id替换为代码中的document.getActiveElement.id,但它不起作用(在静态页面中)。