Kursor jahat diubah oleh negara

10

Sampai hari ini, ketika saya berada dalam keadaan normal evil, kursor adalah blok, dan itu akan beralih ke I-beam ketika dalam keadaan insert. Namun, ada sesuatu yang berubah, dan kursor sekarang selalu merupakan I-beam. Bagaimana saya bisa mendapatkan kembali perilaku lama?

Secara umum, bagaimana cara mengubah tampilan kursor sesuai dengan evilstatus yang berbeda?

Ryan
sumber
3
Selain: Cara yang baik untuk menemukan variabel yang direferensikan Dan dalam jawabannya adalah dengan menggunakan apropos. Anda dapat menekan C-h a( apropos), ketik pencarian ( "jahat kursor"), dan tekan RETuntuk menemukan dokumentasi dari setiap pencocokan fungsi, variabel, perintah, dll Helm memiliki built-in sumber untuk ini juga: helm-apropos.
pengasuh
1
@nanny +1 untuk disebutkan apropos. Catatan, bagaimanapun, itu C-h aterikat apropos-commandsecara default, yang hanya akan mencantumkan perintah yang cocok . Jika Anda ingin apropos-commandmempertimbangkan fungsi non-interaktif , Anda harus melakukannya C-u C-h a. The aproposperintah (yang akan menampilkan kedua perintah dan variabel) tidak terikat pada kunci secara default.
itsjeyd
@itsjeyd: ups, itu buruk saya di keybinding. Saya mengedit komentar @ pengasuh dari apropos-commandke apropos- ternyata saya telah kembali C-h ake aproposwaktu yang lama, lupa, dan menganggap itu adalah default.
Dan
@Dan Oh, perangkap memiliki hak istimewa moderator ...;)
itsjeyd

Jawaban:

12

Variabel cursor-typemengontrol bagaimana penampilan kursor, default ke t, yang menggunakan kursor yang ditentukan untuk frame (lihat docstring untuk opsi). Jika Anda ingin kursor default ke blok, Anda bisa (setq cursor-type 'box).

Namun, evilmenyediakan sejumlah kursor berbeda untuk status berbeda, yang dapat Anda sesuaikan untuk memberi Anda pengingat visual tentang keadaan Anda saat mengetik:

  • evil-normal-state-cursor
  • evil-insert-state-cursor
  • evil-visual-state-cursor
  • evil-motion-state-cursor
  • evil-replace-state-cursor
  • evil-operator-state-cursor

Docstring menyatakan bahwa masing-masing:

Mungkin tipe kursor sesuai cursor-type, string warna seperti diteruskan ke set-cursor-color, fungsi argumen-nol untuk mengubah kursor, atau daftar di atas.

Jadi, misalnya, jika Anda menginginkan bilah kuning selebar 5 piksel dalam kondisi penyisipan dan kotak berwarna ungu dalam kondisi normal, Anda dapat melakukan hal berikut:

(setq evil-insert-state-cursor '((bar . 5) "yellow")
      evil-normal-state-cursor '(box "purple"))

Lihat docstring untuk cursor-typeopsi Anda dalam menyesuaikan kursor.

Dan
sumber
Apakah Anda tahu, bagaimana cara mengkonfigurasi kursor untuk minibuffer? Sepertinya itu selalu tetap seperti yang dikonfigurasi untuk mode normal.
Yuki
@Yuki: jika maksudmu penampilan, aku tidak tahu dari atas kepalaku. Jika Anda ingin binding jahat di minibuffer, ikuti tautan dalam diskusi di posting ini dan / atau lihat intisari github ini .
Dan