Apa mode pilih dan kapan itu relevan untuk menggunakannya?

37

Saya tidak sengaja menekan ghdalam mode normal dan memulai seleksi, jadi saya mencari dokter dan menemukan :h Select-mode.

Dari apa yang saya mengerti mode pilih dekat dengan mode visual kecuali bahwa:

  • Mengetik karakter yang dapat dicetak, <CR>atau <BS>akan menghapus pilihan, mulai memasukkan mode dan ganti pilihan dengan input.
  • hjkl dan gerakan mode normal atau visual lainnya tidak akan memperpanjang pemilihan kecuali jika diawali dengan <Shift>
  • <CTRL-O>dan <CTRL-G>akan beralih ke mode visual.
  • Doc juga mengatakan yang berikut, yang jika saya mengerti dengan benar berarti bahwa adalah mungkin untuk melakukan seleksi yang kemudian diperlakukan secara karakter:

    Saat menggunakan operator dalam mode Pilih, dan pilihannya adalah sama, garis yang dipilih dioperasikan, tetapi seperti dalam pemilihan karakter. Misalnya, ketika seluruh baris dihapus, nanti bisa ditempelkan setengah garis.

Saya sedikit bingung karena saya tidak mengerti mengapa mode ini dibuat: yang bisa saya lihat adalah bahwa itu kurang nyaman daripada mode visual dan tidak menyediakan lebih banyak fitur.

Juga, pencarian yang saya buat semuanya memberikan hasil tentang melakukan seleksi dalam mode visual tetapi tidak memperlakukan mode pilih.

Jadi pertanyaan saya adalah:

  • Mengapa mode pilih dibuat?
  • Apa kelebihannya dibandingkan dengan mode visual?
  • Apa itu use case di mana lebih menarik untuk menggunakan mode pilih?

MetaNote Saya tidak tahu tag mana yang relevan dengan pertanyaan ini, silakan retag jika perlu.

statox
sumber
Bagi saya, ini terdengar seperti apa yang Anda harapkan dari sebagian besar editor GUI. (Memilih garis tidak berarti bahwa itu akan menuju ke baris baru ketika menempel, menggeser + panah memperpanjangnya, mengetik menggantikan pilihan, semua yang saya harapkan dari, katakanlah, notepad).
muru
@uru: Saya setuju bahwa ini mengingatkan pada jenis editor ini tetapi apakah ini berarti bahwa mode ini akan diterapkan hanya untuk menyenangkan beberapa pengguna yang ingin menggunakan Vim sebagai editor teks yang buruk? Tampaknya itu agak aneh bagiku.
statox
sebenarnya, properti tempel berguna dalam beberapa kasus. Saya yakin seseorang telah memposting pertanyaan tentang menempel seperti itu di sini. Dan untuk menimpa, itu menghemat penekanan tombol (Anda tidak perlu menekan c), jadi tergantung pada apa yang ingin Anda lakukan, mode pilih bisa berguna. Kasihan aku terus lupa tentang itu.
muru
Saya akan mencoba mencari pertanyaan ini. Untuk penulisan ulang, saya tidak merasa bahwa cini adalah keystroke yang disimpan karena pilihannya tidak senyaman dalam mode visual (karena Anda tidak dapat menggunakan eatau iwlangsung).
statox
1
Anda benar: ketika 'selectmode'berisi mousedan 'mouse'berisi bendera untuk mode saat ini, memilih dengan mouse akan memulai mode-pilih (sesuai dengan dokumen).
statox

Jawaban:

23

Inti dari mode pilih adalah untuk menyediakan perilaku seleksi yang mirip dengan yang digunakan dalam editor konvensional.

Pada catatan yang sama, ada mswin.vim yang mengubah banyak opsi dan pemetaan untuk membuat Vim merasa seperti editor konvensional.

Saya hanya bisa berasumsi mereka ditambahkan untuk menyenangkan sebagian pengguna Vim, mungkin pada saat Vim porting ke Windows (saya bisa merasakan penghinaan untuk Windows dalam dokumen).

Bagaimanapun, mode pilih sangat penting untuk memotong plugin ekspansi dan dapat disalahgunakan untuk kesenangan dan keuntungan:

nnoremap § *``gn<C-g>
inoremap § <C-o>gn<C-g>
snoremap <expr> . @.
romainl
sumber
2
Saya pikir itu cukup mengejutkan untuk port Vim di Windows dan untuk membuat mode semacam ini untuk menyenangkan para pengguna: Jika mereka menginginkan editor "klasik" mengapa mereka menggunakan Vim? Tapi sepertinya itu satu-satunya penjelasan jadi ... Juga saya tidak begitu mengerti keuntungan dari pemetaan Anda: sejauh yang saya mengerti mereka memilih kata di bawah kursor dalam mode pilih, setelah Anda selesai melakukannya mengapa berguna?
statox
1
Setelah kata dipilih, ketik sesuatu lalu tekan §untuk memilih kejadian berikutnya, ketik sesuatu yang lain lalu tekan §lagi untuk memilih kejadian berikutnya, dan seterusnya. Anda dapat menekan .untuk mengulangi penyisipan terakhir. Ini adalah varian dari "rumus titik".
romainl
Saya masih belum mengerti. Dalam hal apa perilaku seleksi lebih seperti editor konvensional?
still_dreaming_1
7
@ still_dreaming_1, di editor konvensional, ketikkan foodan pilih. Anda tidak perlu menekan tombol apa pun untuk mengganti apa yang dipilih, bukan? Itulah yang dipilih mode pilih.
romainl
1
@romainl apa karakter "double S" yang Anda ketikkan? Bagaimana Anda mengetik karakter itu?
Michael