awk - Bagaimana untuk melakukan pengeditan berbilang baris dengan vim sambil memasukkan teks pada kedudukan menegak yang sama?
伊谢尔伦
伊谢尔伦 2017-05-16 16:33:48
0
7
914

Sudah ada dokumen berikut

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

Papan keratan sistem mengandungi kandungan berikut:

    home
    help
    variables
    
 

Perlu disisipkan pada kedudukan ke-15 setiap baris untuk membentuk format berikut

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

Jawapan ini tidak bagus,

Masuk dulu

home
help
variables

Kemudian gunakan s 命令
输入 :%s/^/<a id="" href="">/g 回车
再输入 :%s#$#</a>#g Masukkan

Jika saya pergi lebih jauh, saya perlu bermula dari asas ini

  
    <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伐。

membalas semua(7)
滿天的星座

Alihkan kursor ke kiri atas di hadapan rumah

<C-v>jj$x<ESC>

Alihkan kursor ke sebelum yang pertama </a>

p
迷茫

Masuk dulu

home
help
variables

Kemudian gunakan s 命令
输入 :%s/^/<a id="" href="">/g 回车
再输入 :%s#$#</a>#g Masukkan

小葫芦

Setelah melihat keperluan anda, saya rasa anda mungkin memerlukan pemalam coretan vim

習慣沉默

Alihkan kursor ke yang pertama</a>之前:<c-v>jjjp

洪涛

Untuk keperluan pertama, tidak perlu menggantikannya, ia boleh dicapai seperti ini:

Gambar agak besar Jika tidak boleh dimuatkan, ini alamat asalnya

Jujukan operasi:

  1. Alihkan kursor ke kedudukan "<" "" dalam baris pertama, Ctrl+v memasuki mod pemilihan lajur, jj$ memilih semua &lt ; /a>, kemudian 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=""

🎜Alihkan kursor ke baris "home", Shift + v untuk memasuki mod pemilihan baris, jj untuk memilih tiga baris, dan kemudian :right untuk memulangkan Kereta🎜 🎜🎜$ Gerakkan kursor ke hujung "home" dan tekan p untuk menampal🎜 🎜🎜gv Pilih semua, kemudian :left dan tekan Enter🎜 🎜🎜Kursor berada pada "h" "home" dalam baris pertama, Ctrl + v memasuki mod pemilihan lajur, jj$y menyalin tiga baris🎜 li> 🎜🎜gg$ Gerakkan kursor ke penghujung baris pertama, kemudian p🎜 🎜Keperluan kedua adalah sama, cuma potong tanda petikan kedua id="" dan kandungan berikut. Keperluan ketiga, saya tidak dapat memikirkan cara yang lebih baik pada masa ini🎜
洪涛

Anda boleh menggunakan Bash+Sed untuk memprosesnya, tetapi ia seperti memprosesnya dalam bahasa pengaturcaraan

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

Catatan: test.txt ialah fail sumber yang akan diproses dan sd.f ialah fail yang dijana oleh program untuk menyimpan arahan pemprosesan sed. sd.in ialah nilai pembolehubah yang disimpan, iaitu rumah, bantuan... tiga nilai

世界只因有你
# 光标定位到第一行 a 标签
qa # 开始录制宏
<n>jyw # 复制要插入的文本
<n>kf>p # 回到对应到 a 标签,找到对应到位置,粘贴
j0 # 光标下移一行
q # 结束录制
2@a # 重播宏

# 上面的 <n> 是个数字,取决于你第一行 a 标签与第一行待插入文本之间的行数
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!