[英]function in vim to fix quotations
我正在尝试通过我的文档在 vim 中创建一个 function 以通过快捷方式和 go 激活,并使用类似 Python 的语法重新引用字符串。 那是:
"something"
-> 'something'
'''docstring'''
-> """docstring"""
"'"
-> "'"
(保持不变)'"'
-> '"'
(保持不变) 鉴于我对 python 函数的了解有限,我在.vimrc
中提出了这个:
function! Fixquotes()
:silent! %s/"\([^"]*\)"/'\1'/g
:silent! %s/'""/"""/
:silent! %s/""'/"""/
:silent! %s/'''/"""/g
endfunction
inoremap <C-f> <esc>mk:call Fixquotes()<CR>`kli
noremap <C-f> mk:call Fixquotes()<CR>`k
它有点工作,除了我有"'"
的情况,因为第一个替换会将它变成'''
而最后一个会将它变成"""
。
有人有什么建议吗?
试试这个:
function! Fixquotes()
:silent! %s/\v([^'"]|\_^)\zs"([^"']*)"\ze([^'"]|\_$)/'\2'/g
:silent! %s/'''/"""/g
endfunction
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.