使用正则表达式运行ruby脚本时,
function! SetUpPath(filepath)
setlocal path=
for l:tagfile in tagfiles()
let l:tagpath = fnamemodify(l:tagfile, ":h")
execute "setlocal path+=" . fnameescape(l:tagpath) . '/**'
endfor
setlocal path-=.
setlocal path-=
setlocal path-=
endfunction
autocmd BufEnter * call SetUpPath(fnamemodify(expand("<afile>"), ":p"))
收到错误
s = object.value.gsub(/(\A[\s\xA0]*|[\s\xA0]*\Z)/n, '')
知道为什么吗? Ruby版本invalid multibyte escape: /(\A[\s\xA0]*|[\s\xA0]*\Z)/ (SyntaxError)
答案 0 :(得分:3)
\xHH
语法仅对UTF-8字符\x00
到\x7F
有效。 \x80
到\xFF
在US-ASCII编码中有效,但不在UTF-8
;要在UTF-8中使用更高的字符,请使用\uHHHH
。因此,这些都有效:
/\u00A0/
/#{"\\xA0".encode('US-ASCII')}/
Regexp.new("\\xA0".encode('US-ASCII'))
# encoding: US-ASCII
/\xA0/
虽然他们做了不同的事情,取决于你匹配的编码。例如:
# encoding: UTF-8
Regexp.new("\\xA0".encode('US-ASCII')) =~ "\u00A0"
# => Encoding::CompatibilityError: incompatible encoding regexp match (ASCII-8BIT regexp with UTF-8 string)