2016-03-22 13 views
0

Vim içinde basit bir istek olabilir: bir liste (geçerli arabellek) almak ve her satırı bir virgülle ayrılmış ve daha sonra parantezle çevrilmiş tek tırnak içine sarma belki de önde/sondaki boşluğu veya varsa boş satırları kaldırarak).Vim: sql "IN" cümlesi nasıl oluşturulur

Başlangıç ​​ile:

999886 
999887 
999888 
999893 
999894 
999895 
999896 
999897 

Sonuç:

bunu başarmak için yapabileceğiniz birçok yolu vardır
('999886', 
'999887', 
'999888', 
'999893', 
'999894', 
'999895', 
'999896', 
'999897') 

cevap

2

. imleci hattı 1, col1 olduğunu, yapabileceğiniz varsayın:

<c-v>GI'<Esc>gvA',<esc>i(<esc>}r) 

Sadece bu tuş vuruşlarını basın teker teker, metin değiştirildi göreceğiz.

ya komutuyla

: daha sonra

:%s/.*/'&',<CR> 

: hatları farklı bir uzunluğa sahip olduğunda

}r){i(<esc> 

2. yaklaşım yararlıdır.

Bunu yapmak için makro da kaydedebilirsiniz.