vim pemadanan berbilang baris padam ke permulaan baris
ringa_lee
ringa_lee 2017-05-16 16:34:34
0
3
583

Penerangan masalah
Fail yang lebih besar perlu diproses dan kandungan sebelum rentetan yang sepadan dalam setiap baris dipadamkan. Format kandungan fail adalah seperti berikut:


aaa dd kk segmentfault=1098-0987-3jlc ok=okj hello=0cvqa
12jk od=kk segmentfault=1jj8-lk87-oplc suiji=che shachu=keng
pppp=dd bbo;=9as segmentfault=0876-oj87-3pac zifu=ka neirong=xia

Dijangkakan kandungan sebelum segmentfault muncul buat kali pertama dalam setiap baris boleh dipadamkan ke permulaan baris Hasil pemprosesan yang dijangkakan adalah seperti berikut


segmentfault=1098-0987-3jlc ok=okj hello=0cvqa
segmentfault=1jj8-lk87-oplc suiji=che shachu=keng
segmentfault=0876-oj87-3pac zifu=ka neirong=xia

Penyelesaian semasa
menggunakan makro untuk melaksanakan

qa    ---开启宏录制
/resourceId ---随意操作
d0               ---随意操作,删除至行首
j                  ---随意操作,跳转到下一行
q     ---退出宏
1000000@a ---执行1000000次

Kelemahan: kecekapan rendah, sangat memakan masa

Penyelesaian yang dijangkakan
Nantikan penyuntingan lajur langsung (ctrl + v) untuk memadamkan kedudukan padanan setiap baris dengan permulaan baris.
Bagaimana untuk mencapainya?

ringa_lee
ringa_lee

ringa_lee

membalas semua(3)
曾经蜡笔没有小新

Cuba penggantian biasa dan pengeditan lajur kata kunci anda berada dalam kedudukan yang berbeza dan tidak boleh diedit secara langsung

:%s/^.*segmentfault/segmentfault/g
仅有的幸福

@ixx Ideanya betul, ungkapan biasa
tetapi ada penyelesaian yang lebih mudah

:%s/^.*\zesegmentfault//g

ze Tandai mod padanan tamat

淡淡烟草味

Saya rasa pengarang soalan ingin menggunakan mod lajur vim (Ctrl-v) dan kemudian pilih berbilang baris untuk memadankan bahagian sebelum segmen perkataan.
Tetapi ia tidak berfungsi, kerana ia tidak boleh dilakukan
1) Dalam mod lajur, pemadanan lebih baik dilakukan pada permulaan atau penghujung baris, membentuk blok padanan tidak teratur;
2) S dari awal baris ke segmen dalam baris pertama ialah 3 W, manakala s dari baris ke-2 dan ke-3 ke segmen ialah 2 W. Ini bukan mudah untuk dilakukan sekaligus. (Atas sebab yang sama, menggantikan W dengan w juga tidak akan berfungsi)

Mod lajur lebih sesuai untuk diproses jika teks disusun dengan kemas atau boleh dengan mudah diletakkan .

==========
Jawapan lain mengatakan bahawa menggunakan ungkapan biasa untuk memadankan dan menggantikan adalah sangat berguna.

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!