自动转义vimscript中的特殊字符

时间:2014-08-28 12:01:17

标签: python vim

我试图用python:

将字符串放入未命名的寄存器中
python <<EOF
# -*- coding: utf-8 -*-

import vim

def passStrNc(myString):
    cmd = """let @" = "{0}" """.format(myString)
    vim.command(cmd)

EOF

通常它可以工作,但不能在字符串包含双引号时使用。有没有办法自动逃脱它? 我也担心字符串可能包含其他特殊字符,可能会搞砸了,有没有办法逃脱所有这些?

1 个答案:

答案 0 :(得分:1)

建议使用Vim的单引号,因为只有单引号本身需要加倍:

cmd = """let @" = '%s'""" % str(myString).replace("'", "''")