Jawaban:
Gunakan ci"
, yang artinya: ubah apa yang ada di dalam tanda kutip ganda.
Anda juga dapat memanipulasi objek teks lain dengan cara yang serupa, misalnya:
ci'
- ubah di dalam tanda kutip tunggalciw
- ubah dalam satu kata ci(
- ganti di dalam tanda kurungdit
- hapus di dalam tag HTML, dll.Selengkapnya tentang objek teks vim yang berbeda di sini .
F"ci"
.
Anda dapat memilih di antara tanda kutip dan kemudian delete ( d
), change ( c
) dll. Menggunakan
vi"
Demikian pula, Anda dapat mengganti tanda kurung, tanda kurung, elemen XML, dll. Jadi:
vi(
vi{
vit
atau untuk sekadar mengubah / menghapus, lakukan sesuai di"
, ci"
dll Mengganti a
untuk i
kehendak meliputi elemen sekitarnya (sehingga Anda menandai atau mengubah kurung dan isi, misalnya)
Saya telah membuat plugin vim-textobj-quotes
: https://github.com/beloglazov/vim-textobj-quotes
Ini menyediakan objek teks untuk pasangan terdekat dari kutipan jenis apa pun dan mendukung kutipan yang mencakup beberapa baris. Hanya menggunakan iq
atau aq
memungkinkan Anda untuk mengoperasikan konten tanda kutip tunggal ('), ganda ("), atau belakang (`) yang saat ini mengelilingi kursor, berada di depan kursor, atau di belakang (dalam urutan preferensi itu) Dengan kata lain, itu melompat maju atau mundur saat dibutuhkan untuk mencapai kutipan.
Lebih mudah dipahami dengan melihat contoh (kursor ditunjukkan dengan |
):
foo '1, |2, 3' bar
:; setelah menekan diq
:foo '|' bar
foo| '1, 2, 3' bar
:; setelah menekan diq
:foo '|' bar
foo '1, 2, 3' |bar
:; setelah menekan diq
:foo '|' bar
foo '1, |2, 3' bar
:; setelah menekan daq
:foo | bar
foo| '1, 2, 3' bar
:; setelah menekan daq
:foo | bar
foo '1, 2, 3' |bar
:; setelah menekan daq
:foo | bar
Contoh di atas diberikan untuk tanda kutip tunggal, plugin bekerja dengan cara yang persis sama untuk tanda kutip ganda (") dan kembali (`).
Anda juga dapat menggunakan operator lain: ciq
, diq
, yiq
, viq
, dll
Silakan lihat halaman github yang ditautkan di atas untuk lebih jelasnya.
Dari sudah di dalam kutipan yang bisa Anda lakukan
di"
Bacalah sebagai hapus di dalam "
Selain jawaban Brian, Anda juga dapat p
(paste) dan y
(yank) nilai baru, jadi jika Anda ingin mengganti nilai di dalam tanda kutip dengan nilai lain, Anda dapat melakukan yi"
seleksi yang ingin Anda salin, vi"
untuk memilih area yang ingin Anda ganti dan kemudian hanya p
untuk mengganti nilainya dengan benar.
Jawaban yang dipilih HANYA cocok untuk ViM tetapi TIDAK untuk vi. Pertanyaannya juga tidak akurat karena penulis tidak menyebutkan posisi awal kursor. Jika kita berasumsi bahwa kursor berada di dalam tanda kutip ganda maka untuk vi jawabannya adalah:
T"ct"
Dimana:
T "- mundur tepat setelah karakter"
c - ubah perintah
t "- memberikan posisi akhir untuk perintah c, di mana ia harus berhenti menghapus karakter, dengan kata lain rentang untuk diubah
vim
, tapi TIDAKvi
. (Tidak yakin)