Menggunakan expand-region
Saya akan merekomendasikan menginstal expand-region
paket (tersedia di Melpa juga). Ini akan berguna untuk mengedit situasi yang disebutkan dalam contoh Anda dan banyak lagi.
expand-region
cerdas. Berdasarkan mode utama, ini akan mencoba mencari tahu apa yang Anda coba pilih. Saya tidak tahu dari bahasa mana Anda memiliki cuplikan contoh jadi saya akan menggunakan cuplikan kode contoh Anda dan sedikit memodifikasinya untuk Python (hapus;). Jadi penjelasan saya di bawah ini adalah dengan potongan kode di bawah ini dalam python-mode
buffer.
ref = open('specific-file-name')
Jika titik di sebelah satu kutipan
Kotak hitam vertikal di bawah ini menunjukkan bagaimana kursor akan terlihat.
# point on left of left quote, the cursor is hiding the quote under it
ref = open(▮specific-file-name')
# point on left of right parenthesis, the cursor is hiding the parenthesis under it
ref = open('specific-file-name'▮
Dalam kedua kasus, ketika Anda melakukannya M-x er/expand-region
, 'specific-file-name'
akan dipilih dan Anda kemudian dapat menekan DEL
(atau backspace) untuk menghapus pilihan.
Jika Anda telah delete-selection-mode
mengaktifkan (Saya ingin itu diaktifkan secara pribadi), Anda dapat mulai mengetik setelah melakukan seleksi dan itu akan menimpa seleksi.
Tentu saja, jika Anda menggunakan er/expand-region
banyak, Anda akan mengikatnya dengan kunci pendek yang mengikat. Saya suka mengikatnya C-\
. Jadi dengan poin di sebelah satu kutipan: C-\fname
akan memberi sayaref = open(fname);
Jika titik ada di suatu tempat di dalam tanda kutip
Menggunakan expand-region
, intinya tidak perlu dekat dengan tanda kutip. Tetapi dalam kasus ini, Anda hanya perlu beberapa stroke kunci (biasanya satu atau dua lagi).
Katakanlah posisi kursor seperti di bawah sekarang:
# cursor shown below is hiding the i character under it
ref = open('specif▮c-file-name')
Menggunakan ikatan yang sama seperti yang saya gunakan di atas:
- Pertama kali saya menekan
C-\
akan memilih specific
.
Sekarang saya hanya perlu menekan \
untuk memperluas pemilihan ( expand-region
fitur). Itu akan memilih specific-file-name
.
Jika Anda telah terikat er/expand-region
untuk C-=
, memukul =
lagi akan melakukan ekspansi tambahan. Baca dokumentasinya tentang cara mengikat kunci untuk penambahan / kontraksi seleksi secara bertahap.
- Memukul
\
sekali lagi akan memilih 'specific-file-name'
.
- Sekarang Anda melanjutkan dengan menekan
DEL
untuk menghapus pilihan dan kemudian ketik fname
. Jika delete-selection-mode
diaktifkan, Anda dapat melewati DEL
stroke.
Singkatnya, dengan delete-selection-mode
diaktifkan, stroke kunci seperti: C-\\\fname
.
Menggunakan change-inner
Saya juga menemukan change-inner
paket oleh expand-region
penulis utama (yang digunakan expand-region
sebagai back-end) untuk melakukan persis apa yang dilakukan Vim ci
(dan juga mengubah bagian luar ).
Dari paket README:
change-inner
memberi Anda ci
perintah vim , membangun expand-region
. Ini paling mudah dijelaskan dengan contoh:
function test() {
return "semantic kill";
}
Dengan titik setelah kata semantik
change-inner "
akan membunuh isi string
change-outer "
akan membunuh seluruh string
change-inner {
akan membunuh pernyataan-kembali
change-outer {
akan membunuh seluruh blok
ref = open(|'specific-file-name');
,,C-M-k
akan memberiref = open(|);
. Kutipan juga sexps seimbang .