awk - 如何用vim進行多行編輯,同時在同一縱向位置插入文字?
伊谢尔伦
伊谢尔伦 2017-05-16 16:33:48
0
7
954

已經有下面的文件

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

系統剪貼簿裡面有以下內容:

    home
    help
    variables
    
 

需要在每行的第15個位置插入,形成下面的格式

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

這個答覆不行,

先輸入

home
help
variables

接著使用s 指令
輸入:%s/^/<a id="" href="">/g 回車
再輸入:%s#$#</a>#g 回車

如果我進一步,需要從這個基礎上

  
    <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>  
    
    你如何快速搞定??
    
伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(7)
滿天的星座

遊標移到左上home前

<C-v>jj$x<ESC>

遊標移到第一個</a>之前

p
迷茫

先輸入

home
help
variables

然後使用 s 命令
输入 :%s/^/<a id="" href="">/g 回车
再输入 :%s#$#</a>#g 回車

小葫芦

看了一下你的需求, 覺得你可能需要的是 vim-snippets 插件

習慣沉默

遊標移到第一個</a>之前:<c-v>jjjp

洪涛

對於第一個需求,不需要替換,可以這樣實現:

圖片比較大,如果載入不出來,這裡是原地址

操作順序:

  1. 遊標移到第一行的 "" 的 "Ctrl+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="" 第二個引號以及後面內容就行了。第三個需求,暫時想不出更好的方法

洪涛

可以用 Bash+Sed可以處理,不過這樣處理就像是用程式語言處理一樣

#! /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

備註:test.txt是要處理的來源文件,sd.f是用程式產生的存放sed處理指令的文件。 sd.in是存放的變數值,即home,help…三個值

世界只因有你

雷雷

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板