首页 > 解决方案 > vim 中的函数来修复引号

问题描述

我正在尝试在 vim 中创建一个函数以通过快捷方式激活并浏览我的文档并使用类似 Python 的语法重新引用字符串。那是:

鉴于我对 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

它有点工作,除了我"'"自从第一次替换将它变成'''并且最后一次将它变成""".

有人有什么建议吗?

标签: functionvimquotes

解决方案


试试这个:

function! Fixquotes()
   :silent! %s/\v([^'"]|\_^)\zs"([^"']*)"\ze([^'"]|\_$)/'\2'/g
   :silent! %s/'''/"""/g
endfunction

推荐阅读