美文网首页
Vim 上标替换(Subscript and superscri

Vim 上标替换(Subscript and superscri

作者: 千羽之城88 | 来源:发表于2019-12-02 15:48 被阅读0次

一个文本:

adfafafafafaf[1]adsfasfasfasfa

asdfadfadfafdafda[2]adfadfasfafasdfasdf[3]adfafafa


[1]aaaaaaaa

[2]bbbbbbbb

[3]ccccccc

想得到如下的内容:

adfafafafafaf\footnote{(1)aaaaaaaa}adsfasfasfasfa

asdfadfadfafdafda\footnote{(2)bbbbbbbb}adfadfasfafasdfasdf\footnote{(3)ccccccc}adfafafa

先将文本调整一下:

adfafafafafaf[1]adsfasfasfasfa

asdfadfadfafdafda[2]adfadfasfafasdfasdf[3]adfafafa


(1)aaaaaaaa

(2)bbbbbbbb

(3)ccccccc

为了防止编号在同一行导致后面的替换不成功,这一步是必须的。接着执行如下命令:

let i=1 | while(i<4) | let text='\footnote{'.getline(search('('.i.')')).'}' | let pat=['\['.i.']' ,text] | d | 0go |  call line(search('\['.i.'\]')) | s/\[[0-9]*\]/\=reverse(pat)[0]/ | let i+=1 | endwhile

思路

  1. 搜索包含(i)的行,放到一个变量text中,同时删除该行;
  2. 搜索包含[i]的行,执行替换;
  3. 直到循环结束
命令 解释
getline(search('('.i.')')) 得到 (i) 行的内容
let pat=[ '['.i.']' , text] 设置一个临时列表
d 清空(i)行内容
0go 回到第一行
call line(search('['.i.']')) 搜索[i]行
s/../../ 替换[i]的内容
reverse(pat)[0] 反转列表
" 函数
" 保存到的 _vimrc 中
function! SupSub(offset)
    g/^\[[0-9]*\]/s/\[/(/|s/\]/)/
    let i = 1
    while( i < a:offset )
        let text = '\footnote{'.getline(search('\['.i.'\]', 'b')).'}'
        let pat = ['\['.i.']',text]
        echo line('.')
        d
        0go
        call line(search('\['.i.'\]'))
        s/\[[0-9]*\]/\=reverse(pat)[0]/
        let i += 1
        let text=''
    endwhile
    let i=0
endfunction
替换动画

相关文章

  • Vim 上标替换(Subscript and superscri

    一个文本: 想得到如下的内容: 先将文本调整一下: 为了防止编号在同一行导致后面的替换不成功,这一步是必须的。接着...

  • 我的藏文學習(4)

    除了字母表裡30個基礎字母以外,藏文中還通過字母的疊加(surmount, subscript+superscri...

  • html&css设计与构建网站笔记(一)

    文本标签(不熟悉的) superscript 上标subscript 下标horizontal rules ...

  • Linux脚本总结

    1、总结vim命令行模式常见快捷方式,以及vim查找,替换的方法 vim查找 vim替换 2、总结脚本中运算符、逻...

  • FFmpeg开发--Vim详解

    Vim编辑器Vim处理模式: Vim常用命令: Vim查找与替换:

  • Vim 常用命令

    VIM 命令 文件命令 VIM的模式 VIM导航命令 VIM插入命令 VIM查找命令 VIM替换命令 VIM使用技...

  • vim 替换

    查找与替换:s(substitute)命令用来查找和替换字符串。语法如下: 例如:%s/foo/bar/g会在全局...

  • VIM 替换

    在VIM中进行文本替换:

  • vim替换

    vim 中可以使用 :s 命令来替换字符串。 利用 :s 命令可以实现字符串的替换。具体的用法包括: :s/str...

  • vi / vim 替换字符详解

    vi / vim 替换字符详解

网友评论

      本文标题:Vim 上标替换(Subscript and superscri

      本文链接:https://www.haomeiwen.com/subject/tyijwctx.html