Bagaimana menavigasi kode sumber dengan bagian-bagian di CamelCase (bukan seluruh kata)?

251

Saya ingat ketika saya menggunakan Eclipse bahwa ketika memegang CTRL dan menggunakan panah kiri atau kanan Eclipse akan menavigasi LongCamelCaseWrittenWorddalam beberapa langkah. Satu kata unta saat itu.

Jadi akan seperti berikut (pipa |mewakili posisi kursor aktual):

|LongCamelCaseWrittenWord -> CTRL+RIGHT_ARROW ->
Long|CamelCaseWrittenWord -> CTRL+RIGHT_ARROW ->
LongCamel|CaseWrittenWord -> CTRL+RIGHT_ARROW ->
LongCamelCase|WrittenWord -> CTRL+RIGHT_ARROW ->
LongCamelCaseWritten|Word -> CTRL+RIGHT_ARROW ->
LongCamelCaseWrittenWord|

Apakah ada cara bagaimana mencapai ini di IntelliJ? Saat ini IntelliJ melangkahi seluruh kata sekaligus.

Menggunakan IntelliJ 9.0

Jan Zyka
sumber

Jawaban:

389

Ya, aktifkan Gunakan kata "CamelHumps" di Settings | Editor | General | Smart Keys.

CrazyCoder
sumber
15
CamelHumps membuat Ctrl + Kanan, Ctrl + Kiri melompat oleh punuk unta. Bagaimana saya masih bisa memiliki kedua fungsi, yaitu melompat dengan kata-kata dan oleh CamelHumps dengan kunci yang berbeda?
mafonya
1
dalam Ide terbaru, alurnya adalahSettings | Editor | General | Smart Keys
Jiri Kremser
48
Seperti @mafonya menyebutkan jawaban yang berbeda, perilaku mengklik dua kali dapat dipulihkan dengan mencari dan menonaktifkan pengaturan yang disebut pengaturan kata "Honor" CamelHumps "saat memilih pada klik ganda".
Paul Lammertsma
9
Jika ada orang yang melewatkannya, pengaturan 'Kehormatan "CamelHumps" ...' ada diSettings | Editor | General
Carl G
Saya setuju bahwa ini harus menjadi perilaku default. Bagi siapa pun yang datang dari Eclipse, ini seperti tertanam dalam memori otot kita sejak hari pertama.
Pierre
45

Seperti menjawab di tempat lain, Anda dapat mengaktifkan Gunakan "CamelHumps" kata di Settings | Editor | General | Smart Keysuntuk beralih cara pintas untuk bekerja dengan CamelCase bukan seluruh-kata.

Anda juga dapat mengakses perilaku sebelumnya dengan menetapkan pintasan keyboard untuk tindakan yang sesuai di bawah Settings | Appearance & Behavior | Keymap | Editor Actions. Gambar ini menunjukkan contoh di mana saya mengakses perilaku sebelumnya dengan menambahkan ctrl:

tangkapan layar keymap

Carl G
sumber
4
Luar biasa! Ini harus menjadi perilaku default di intellij!
AndiDev
Terima kasih! Ini sempurna. Klik dua kali melakukan keseluruhan kata, tetapi ctrl + direction menggunakan case.
Brett
19

Anda dapat memiliki kedua fungsionalitas secara bersamaan:

  1. Dalam "Pengaturan-> Editor-> Umum-> Tombol Cerdas", nonaktifkan "Gunakan kata-kata CamelHumps".
  2. Di "keymap", buat pintasan untuk:
    • "Pindahkan tanda sisir ke kata berikutnya"
    • "Pindahkan tanda sisir ke kata berikutnya dalam mode camelhumps berbeda"

Perhatikan bahwa langkah-langkah ini sesuai dengan IntelliJ 14, sehingga mungkin sedikit berbeda di versi lain.

blue_note
sumber
Untuk rasa ingin tahu, apakah Anda memetakan keduanya? Jika ya, kombinasi mana yang Anda pilih?
pilih
Ya, saya memetakan keduanya, ini berguna ketika Anda memiliki nama kelas yang panjang. Secara umum, Anda tidak ingin memiliki pintasan yang berbeda untuk setiap program. Jadi, saya menggunakan ctrl+arrowseluruh kata (itu adalah jalan pintas yang digunakan di mana-mana ), dan alt+arrowuntuk kata camelhumps (itulah satu-satunya pengubah yang tersisa, karena shift digunakan untuk seleksi di setiap program)
blue_note
Saya memetakannya kembali ke ctrl+PgUp/PgDndan Ctrl+(shift)+Tab, karena digunakan di semua browser dan sebagian besar program, jadi sudah ada dalam memori otot saya.
blue_note
Saya ingin menggunakan alt+arrowuntuk bergerak dengan seluruh kata dan ctrl+arrowuntuk menavigasi dengan punuk unta. (Ini adalah perilaku default di Xcode, yang merupakan "memori otot" saya.) Saya mencoba melakukan ini dengan menggunakan IntelliJ's Preferences, tetapi saya tidak dapat mendaftar dengan mudah ctrl+{anything}. ctrl+alt+{something}tampaknya bekerja, seperti halnya alt+{something}, tetapi tidak ctrl+{something}. Saya menggunakan Mac. Keymap saya saat ini adalah Mac OS X 10.5+. Ada saran?
mbm29414
@ mbm29414: berfungsi dengan baik untuk saya di Macos. bahkan jika sudah ditugaskan untuk sesuatu yang lain. mungkin itu beberapa pengaturan eksternal ke intellij
blue_note