Vim将内容行转换为JavaScript字符串文字
Vim convert lines of content to javascript string literal
我在vim脚本中寻找一些方法
json.dumps(join(getlines(1,'$'),''n'))
就像Python的JSON模块一样
例如,在 Vim 中打开一个文本文件:
1. var a=1,
2. b=2,
3. c="";
调用函数应输出以下内容
"var a=1,'nb=2,'nc='"'""
它是一个有效的JavaScript字符串文字
无论如何,我找到了一种方法来实现这一点,以下是我的代码
let b:content = join(getline(1,'$'),"''n'''n") . "'''n"
let b:content = printf("'"%s'"", escape(b:content,"'""))
上面的代码运行后,你会得到
"var a=1, 'n'
b=2,'n'
c='"'";'
"
这是一个有效的多行 javascript 字符串文字,但缺点是此功能将根据这篇文章在 ECMA-262 第 3 版中删除
阅读RFC后,我编写了这个函数,也许有帮助
" utility encode to json string
if !exists("*b:json_encode_basestring")
function b:json_encode_basestring(str)
let l:ret = a:str
let l:ret = substitute(l:ret,''%x5C','''''','g')
let l:ret = substitute(l:ret,''%x22','''"','g')
let l:ret = substitute(l:ret,''%x2F','/','g')
let l:ret = substitute(l:ret,''%x08','''b','g')
let l:ret = substitute(l:ret,''%x0C','''f','g')
let l:ret = substitute(l:ret,''%x0A','''n','g')
let l:ret = substitute(l:ret,''%x0D','''r','g')
let l:ret = substitute(l:ret,''%x09','''t','g')
" TODO unicode escape
" http://www.ietf.org/rfc/rfc4627
return l:ret
endfunction
endif
if !exists("*b:json_encode")
function b:json_encode(lines)
let l:json = []
let l:lines = a:lines
for line in l:lines
call add(l:json, b:json_encode_basestring(line))
endfor
let l:str = join(l:json,''n').''n'
let l:str = printf('"%s"',l:str)
return l:str
endfunction
endif
用法:
:echo b:json_encode(getline(1,'$'))
相关文章:
- 可变大小的JavaScript字符串如何成为基元类型
- 如何将angularjs中的javascript字符串输出为循环数组
- 如何使用gump任务将html转换为javascript字符串
- 替换变量时,JavaScript字符串replace()不起作用
- 如何替换JavaScript字符串中除字母和数字之外的所有内容(空格/符号)
- 如何从django中的url解析javascript字符串
- 拆分javascript字符串以获得所需的值
- 使用Bootstrap'在Javascript字符串中的popover插件
- 如何替换javascript字符串中的前三个连字符
- 将JavaScript字符串转换为整数
- jquery/javascript字符串中的撇号
- 正在对java中的javascript字符串进行转义
- 如何在Javascript字符串中添加vaule
- Javascript:字符串中有效的基于数组的替换
- 具有负值的Javascript字符串.slice()
- javascript字符串替换$1(如果它是某个值)
- 将子函数的JavaScript字符串转换为实际函数
- JavaScript字符串中的换行符也保存为.txt
- 将Javascript字符串var传递给HTML href标记
- JavaScript 字符串字母和数字检查