vim:gq在包装tex时忽略了开引号

2024-06-17 12:50:47 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我在一个文件中有一个字符串列表(例如Python脚本),如下所示:

my_list_of_numbers = ["one two",
    "three four",
    "five six",
    "seven eight",
    "nine ten",
    "eleven twelve"]

如果我对此文本进行可视化选择,我可以使用gq将文本换行以获得:

^{pr2}$

但是,元素"nine ten"现在被分成两行。在

如何在避免在左引号中输入换行符的同时换行?我想要的结果如下:

my_list_of_numbers = ["one two", "three four", "five six", "seven eight",
    "nine ten", "eleven twelve"]

Tags: ofmyonelistthreefourfivetwo
2条回答

请将此脚本保存到一个文件中并加载到您的vim中。在

vnoremap a d:call Replace(@")<CR>


function! Replace(arg1, ...)
            let Var = Myfun(a:arg1)
                call append(line('.') - 1,   [Var])
                silent! %s/@@newline@@/ /g
                silent! %s/@!@/\r/g
endfunc                                                                    

function! Myfun(s)
            let Var = a:s
                let Var = substitute(Var, '\n', '@@newline@@', 'g')
                let Var = substitute(Var, '\s\s*', ' ', 'g')
                let Varlength = strlen(substitute(Var, '\(.\{-}\".\{-}\"\,.\{-}\".\{-}\"\,.\{-}\".\{-}\"\,\)', '\1', 'g'))
                if Varlength < 120
                let Var = substitute(Var, '\(.\{-}\".\{-}\"\,.\{-}\".\{-}\"\,.\{-}\".\{-}\"\,\)', '\1@!@', 'g')
                else
                let Var = substitute(Var, '\(.\{-}\".\{-}\"\,.\{-}\".\{-}\"\,\)', '\1@!@', 'g')
                endif 
            return Var
endfunc

阻止文本并按“a”键

我不认为有保留的命令来做这件事,但我们可以通过 把它变成一行,然后通过正则表达式,把它分解成你想要的。在

%s/\(.\{-}".\{-}".\{-}".\{-}".\{-}".\{-}".\{-}\)"/\1\r"/gec

把整个事情都映射成一个键。好让你轻松些。在

相关问题 更多 >