声明:
占位符:假设为{1},{2},{3}这种格式,当然也可以为{a},{b},{c},{d};
CodeMirror:网页富文本编辑器,http://codemirror.org;
CM:CodeMirror的缩写;
要求:
1、多个代码文本中共用一些全局变量名,在某个全局变量名的名字改变后,其它代码文本在CM中打开后优雅地更新为新的全局变量名;
2、全局变量名要高亮;
附加要求:
1、在CM中,可以按一次退格键或del键删除整个全局变量名;
2、在CM中,不能更改全局变量名,即在CM中全局变量名不接受焦点;
附加要求结合起来通俗的去理解呢,就是把全局变量名理解为编辑器中的一幅图片对象,无法在编辑器中修改,按一次退格键或del键就把一幅图片删除了。
所以我想到了本文题目中的方法,就是用占位符代替全局变量名存放在文件中。
也就是说全局变量名在真实的文件数据中就是占位符,当用CodeMirror编辑器打开这个文本时,最终在CodeMirror中看到的是占位符变为一个个全局变量名。
如果没有答案的话,只能使用双替换大法了:读取文本后把占位符替换为对应的全局变量名再显示在CM中,保存前把全局变量名替换为占位符再保存。
但替换大法会有误伤,例如再PHP中,单引号'$a'和双引号"$a"中的$a就有不同的意义,这个误伤也不太容易解决。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.