Maison  >  Questions et réponses  >  le corps du texte

awk - Comment effectuer une édition multiligne avec vim tout en insérant du texte à la même position verticale?

Vous disposez déjà du document suivant

    
    <a id="" href=""></a>
    <a id="" href=""></a>
    <a id="" href=""></a>

Le presse-papiers du système contient le contenu suivant :

    home
    help
    variables
    
 

Doit être inséré à la 15ème position de chaque ligne pour former le format suivant

    <a id="" href="">home</a>
    <a id="" href="">help</a>
    <a id="" href="">variables</a>  
    
    如果vim不行,用awk可以吗?     

Cette réponse n'est pas bonne,

Entrez en premier

home
help
variables

Ensuite, utilisez s 命令
输入 :%s/^/<a id="" href="">/g 回车
再输入 :%s#$#</a>#gEntrée

Si je vais plus loin, je dois partir de cette base

  
    <a id="" href="">home</a>
    <a id="" href="">help</a>
    <a id="" href="">variables</a>  
    
    形成下面的
    
    <a id="home" href="">home</a>
    <a id="help" href="">help</a>
    <a id="variables" href="">variables</a>  
    
    你又如何办?
    
    再走远一点
    <a id="home" href="home.html">home</a>
    <a id="help" href="help.html">help</a>
    <a id="variables" href="variables.html">variables</a>  
    
    你如何快速搞定??
    
伊谢尔伦伊谢尔伦2737 Il y a quelques jours916

répondre à tous(7)je répondrai

  • 滿天的星座

    滿天的星座2017-05-16 16:35:48

    Déplacez le curseur en haut à gauche devant la maison

    <C-v>jj$x<ESC>
    

    Déplacez le curseur avant le premier </a>

    p
    

    répondre
    0
  • 迷茫

    迷茫2017-05-16 16:35:48

    Entrez en premier

    home
    help
    variables
    

    Ensuite, utilisez s 命令
    输入 :%s/^/<a id="" href="">/g 回车
    再输入 :%s#$#</a>#gEntrée

    répondre
    0
  • 高洛峰

    高洛峰2017-05-16 16:35:48

    Après avoir examiné vos besoins, je pense que vous aurez peut-être besoin du plug-in vim-snippets

    répondre
    0
  • 習慣沉默

    習慣沉默2017-05-16 16:35:48

    Déplacez le curseur sur le premier</a>之前:<c-v>jjjp

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-16 16:35:48

    Pour la première exigence, il n'est pas nécessaire de le remplacer, cela peut être réalisé ainsi :

    L'image est relativement grande Si elle ne peut pas être chargée, voici l'adresse originale

    Séquence des opérations :

    1. Déplacez le curseur sur la position "<" de "" dans la première ligne, Ctrl+v entre en mode de sélection de colonne, jj$ sélectionne tous les < ; /a>, puis dCtrl+v 进入列选择模式,jj$ 选中所有的 </a>,然后 d

    2. 光标移至 "home" 那一行,Shift + v 进入行选择模式,jj 选中三行,然后 :right,回车

    3. $ 把光标移至 "home" 结尾,按 p 粘贴

    4. gv 选中所有,然后 :left,回车

    5. 光标在第一行 "home" 的 "h" 上,Ctrl + v 进入列选择模式,jj$y 复制三行

    6. gg$ 光标移至第一行末尾,然后 p

    第二个需求同理,剪切一下 id=""

  • 🎜Déplacez le curseur sur la ligne "home", Shift + v pour entrer dans le mode de sélection de ligne, jj pour sélectionner trois lignes, puis :right< /code> pour rendre la voiture🎜 🎜🎜$ Déplacez le curseur à la fin de "home" et appuyez sur p pour coller🎜 🎜🎜gv Sélectionnez tout, puis :gauche et appuyez sur Entrée🎜 🎜🎜Le curseur est sur le "h" de "home" dans la première ligne, Ctrl + v entre en mode sélection de colonne, jj$y copie trois lignes🎜 🎜🎜gg$ Déplacez le curseur à la fin de la première ligne, puis p🎜 🎜La deuxième exigence est la même, il suffit de couper le deuxième guillemet de id="" et le contenu suivant. La troisième exigence, je ne peux pas penser à une meilleure façon pour le moment🎜

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-16 16:35:48

    Vous pouvez utiliser Bash+Sed pour le traiter, mais c'est comme le traiter dans un langage de programmation

    #! /bin/bash
    i=1
    rm sd.f
    cat sd.in | while read LINE
    do
       echo "${i}s/>/>${LINE}/" >>sd.f
       #echo "${i}s/id=\"/id=\"${LINE}/" >>sd.f     #第二次处理
       #echo "${i}s/ref=\"/ref=\"${LINE}.html/" >>sd.f     #第三次处理
       ((i++))
    done
    #cat sd.f
    sed -f sd.f test.txt

    Remarques : test.txt est le fichier source à traiter et sd.f est un fichier généré par le programme pour stocker les commandes de traitement sed. sd.in est la valeur de la variable stockée, à savoir home, help... trois valeurs

    répondre
    0
  • 世界只因有你

    世界只因有你2017-05-16 16:35:48

    # 光标定位到第一行 a 标签
    qa # 开始录制宏
    <n>jyw # 复制要插入的文本
    <n>kf>p # 回到对应到 a 标签,找到对应到位置,粘贴
    j0 # 光标下移一行
    q # 结束录制
    2@a # 重播宏
    
    # 上面的 <n> 是个数字,取决于你第一行 a 标签与第一行待插入文本之间的行数

    répondre
    0
  • Annulerrépondre