web-gelistirme-sc.com

Vi'deki alıntılar arasındaki metin nasıl değiştirilir?

Diyelim ki bu kod satırı var:

$query = "SELECT * FROM table";

Vi/vim'de tırnaklar arasındaki her şeyi anında silebilen ve imleci aralarında konumlandırarak yazmaya başlayabilmem için bir komut var mı?

91
Nikola

ci" öğesini kullanın, bunun anlamı: çift tırnak işaretinin içindeki değeri değiştirin. 

Diğer metin nesnelerini de benzer şekilde değiştirebilirsiniz;

  • ci' - tek tırnak işaretleri içinde değişiklik
  • ciw - bir Word içindeki değişiklik 
  • ci( - parantez içindeki değişikliği
  • dit - HTML etiketinin içindeki silme, vb.

Farklı vim metin nesneleri hakkında daha fazla bilgi here .

148
Eugene Yarmash

Tırnaklar arasında seçim yapabilir ve ardından sil (d), change (c) vb.

vi"

Benzer şekilde, parantezleri, parantezleri, XML öğelerini vb.

vi(
vi{
vit

veya basitçe değiştirmek/silmek için, karşılık gelen di", ci" vb. işlemleri yapın. a için i ifadesinin değiştirilmesi, çevreleyen unsurları kapsayacak (örneğin, ve içindekileri işaretleyin veya değiştirin)

21
Brian Agnew

Bir eklenti yaptım vim-textobj-quotes: https://github.com/beloglazov/vim-textobj-quotes

Herhangi bir türdeki en yakın tırnak çiftleri için metin nesneleri sağlar ve birden çok satıra yayılan tırnakları destekler. Yalnızca iq veya aq kullanarak, imleci çevreleyen tek ('), double (") veya geri (`) tırnakların içeriğini çalıştırmanızı sağlar, imlecin önünde veya arkasındadır (bu sırada) Başka bir deyişle, tırnaklara ulaşmak için gerektiğinde ileri veya geri atlar. 

Örneklere bakarak anlamak daha kolaydır (imleç | ile gösterilmiştir):

  1. Önce: foo '1, |2, 3' bar; diq tuşuna bastıktan sonra: foo '|' bar
  2. Önce: foo| '1, 2, 3' bar; diq tuşuna bastıktan sonra: foo '|' bar
  3. Önce: foo '1, 2, 3' |bar; diq tuşuna bastıktan sonra: foo '|' bar
  4. Önce: foo '1, |2, 3' bar; daq tuşuna bastıktan sonra: foo | bar
  5. Önce: foo| '1, 2, 3' bar; daq tuşuna bastıktan sonra: foo | bar
  6. Önce: foo '1, 2, 3' |bar; daq tuşuna bastıktan sonra: foo | bar

Yukarıdaki örnekler, tek tırnak işaretleri için verilmiştir, eklenti ise çift (") ve geri (`) tırnaklar için aynı şekilde çalışır. 

Başka operatörleri de kullanabilirsiniz: ciq, diq, yiq, viq, vb.

Lütfen daha fazla bilgi için yukarıda link verilen github sayfasına bakınız.

4
Anton Beloglazov

Zaten içinden tırnak yapabilirsiniz 

di"

İçinde silmek olarak okuyun "

3
Sam Peacey

Brian'ın cevabına ek olarak, ayrıca p (paste) ve y (yank) de yeni değeri kullanabilirsiniz, böylece tırnak içindeki değeri başka bir değerle değiştirmek isterseniz, kopyalamak istediğiniz seçimde yi", vi" değiştirmek istediğiniz alanı seçin ve ardından değeri uygun şekilde değiştirmek için sadece p.

0
Ulisses Caon