Pertanyaan Layout Keyboard Ideal untuk Pemrograman [tertutup]


Saya sering mendengar keluhan bahwa bahasa pemrograman yang menggunakan banyak simbol untuk keringkasan, terutama C dan C ++ (saya tidak akan menyentuh APL), sulit diketik karena mereka sering menggunakan tombol shift. Satu atau dua tahun yang lalu, saya bosan sendiri, mengunduh Microsoft Pembuat Layout Keyboard, membuat beberapa perubahan pada tata letak saya, dan belum pernah melihat ke belakang. Perbedaan kecepatan sangat mengherankan; dengan beberapa perubahan sederhana ini saya dapat mengetik kode C ++ sekitar 30% lebih cepat, tergantung tentu saja pada seberapa berbulu itu; terbaik dari semua, kecepatan mengetik saya dalam menjalankan teks biasa tidak terganggu.

Pertanyaan saya adalah ini: tata letak keyboard alternatif apa yang telah ada untuk pemrograman, yang telah mendapatkan popularitas, apakah salah satu dari mereka masih dalam penggunaan modern, apakah Anda secara pribadi menggunakan tata letak yang diubah, dan bagaimana tata letak saya dapat lebih dioptimalkan?

Saya membuat perubahan berikut ke tata letak QWERTY standar. (Saya tidak menggunakan Dvorak, tetapi ada a programmer Dvorak tata letak layak disebut.)

  • Tukar angka dengan simbol di baris atas, karena angka literal panjang atau berulang biasanya diganti dengan konstanta bernama;
  • Tukar backquote dengan tilde, karena backquote jarang dalam banyak bahasa tetapi destructors adalah umum di C ++;
  • Tukar minus dengan garis bawah, karena garis bawah umum dalam pengidentifikasi;
  • Tukar kurung kurawal dengan tanda kurung siku, karena blok lebih umum daripada subskrip; dan
  • Tukar tanda kutip ganda dengan satu kutipan, karena string lebih umum daripada literal karakter.

Saya menduga yang terakhir ini mungkin akan menjadi yang paling kontroversial, karena ini paling mengganggu dengan menjalankan teks dengan mengharuskan penggunaan pergeseran untuk mengetik kontraksi umum. Tata letak ini secara signifikan telah meningkatkan kecepatan mengetik saya di C ++, C, Java, dan Perl, dan agak meningkatkannya di LISP dan Python.


76
2018-02-21 15:57


asal


Jawaban:


Saya masih menganggap bahwa kecepatan mengetik bukanlah faktor utama dalam waktu yang dibutuhkan untuk menyelesaikan suatu proyek. Jika ya, ada masalah besar (Weeks of coding menghemat waktu perencanaan).

Mengenai pertanyaan Anda, saya lebih suka menggunakan tata letak standar karena itu berarti saya tidak perlu menghabiskan 10 menit pertama terlihat bodoh ketika disajikan dengan tata letak keyboard standar.

Beberapa penggantian yang Anda sarankan, mis. baris atas dengan karakter khusus tidak membuat perbedaan satu ons karena jari luar di sisi lain harus bergerak bergeser pada saat yang bersamaan.

IMHO Satu hal yang membantu layout chaining di atas hanya menggunakan pintasan keyboard. Vim dan Emacs direkomendasikan. Itu membuat teks bergerak di sekitar jauh lebih cepat.


33



Saya akan mendekati pertanyaan Anda dengan cara berikut. Tugasnya adalah mengatur keyboard sedemikian rupa untuk meminimalkan pukulan kunci dan gerakan tangan untuk teks yang diberikan.

Langkah-langkah menuju solusi yang mungkin. Buat program yang:

  1. Mengambil file teks dengan kode sumber. (Semakin besar semakin baik dan dari berbagai sumber!)
  2. Menghitung frekuensi penggunaan setiap simbol (kehadirannya dalam teks).
  3. (opsional) Berdasarkan langkah 2: Program ini menghasilkan jumlah langkah kunci untuk setiap simbol ditambah seberapa jauh tangan harus bergerak dari posisi tengah. Sebagai hasilnya, Anda akan memiliki ukuran seberapa efektif tata letak keyboard Anda.

Sekarang secara manual atau dengan menulis program Redefine tata letak Anda dengan cara berikut. Letakkan simbol yang paling sering digunakan dalam posisi sentral lebih dekat dengan tangan Anda yang kuat. Simbol kedua mengarah ke tangan lemah Anda di posisi tengah. Simbol ketiga kembali ke tangan kuat Anda ... dan seterusnya. Kemudian Anda secara bertahap pindah dari posisi tengah tangan ke area keyboard yang lebih "jauh". Ketika semua keyboard penuh maka Anda melanjutkan proses menugaskan kunci tetapi kali ini dengan tombol Shift ditekan. Perbedaan lainnya adalah Anda tidak memutar tangan yang kuat dan lemah untuk setiap simbol ketika Shift turun. Dengan tombol shift ke bawah terlebih dahulu Anda akan mengisi posisi sentral pada keyboard dan kemudian pindah ke posisi yang lebih jauh.

Saat Anda melakukan semua itu, lakukan lagi langkah 3 untuk tata letak baru untuk melihat bagaimana tata letak ditingkatkan.

Anda mungkin harus membawa keyboard Anda setiap saat. Di sisi terang tidak ada yang akan menyentuh komputer Anda. Ini akan membuat Anda terlihat seperti Pro.

Akhirnya, jangan lupa bagikan temuan Anda.


13



Buat logger kunci sederhana, lalu hitung berapa kali setiap tombol ditekan. Jalankan selama satu atau dua hari, lalu simpan hasilnya ke file teks. Lakukan ini setiap sekali dan beberapa saat. Tidak masalah tata letak apa yang Anda gunakan, karena Anda hanya melihat kunci mana yang paling sering digunakan.

Jika Anda ingin membuat tata letak yang baik, Anda tidak boleh takut untuk menjauh dari norma. Saya sarankan menempatkan 11 kunci teratas di sepanjang baris beranda, kemudian tombol 11 teratas berikutnya sebagai baris atas (biarkan 2 tombol di atas tombol kembali sebagai kunci yang paling sering digunakan), kemudian tombol 11 teratas sebagai baris bawah . Harus ada 4 kunci yang tersisa sekarang. Ambil dan taruh di dalam - = dan] slot. Selamat! Anda sekarang telah membuat layout keyboard yang bagus untuk tujuan Anda! = D


10



Secara keseluruhan, saya pikir memiliki editor teks yang bagus dan mengetahui cara menggunakannya lebih baik daripada mencoba meningkatkan kecepatan mengetik Anda. Mampu merekam dan memutar ulang makro terkadang menjadi penyelamat, dan pilihan potongan kode yang diberikan pintas dapat berguna karena biasanya ada batasan yang dikenakan bahasa pada apa yang dapat diubah menjadi pustaka.

Secara umum, saya pikir peningkat produktivitas nyata adalah semua tentang pengetahuan ...

  • Mengetahui alat dan pustaka apa yang tersedia dan cara menggunakannya.
  • Mengetahui struktur keseluruhan kode yang sedang Anda kerjakan, bukan hanya sedikit Anda.
  • Mengetahui algoritme utama, pola desain, dan idiom sehingga Anda tidak perlu menciptakannya kembali.
  • Mengetahui aturan dengan cukup baik sehingga Anda bisa fleksibel - Anda tahu kapan harus mematahkannya.
  • Mengetahui rekan kerja dan kekuatan mereka, kelemahan dll - yaitu mengetahui kapan harus mencari tahu sendiri, tetapi juga kapan dan siapa yang harus ditanyakan.

FWIW, saya tidak mengklaim menjadi kuat pada semua itu. Saya selalu terlalu terbujuk untuk memecahkan masalah sendiri, dan dengan kecenderungan yang terlalu kuat untuk menemukan kembali roda dan skema arsitektur besar.

Bagaimanapun, saya hanya memiliki kecurigaan bahwa waktu yang dihabiskan untuk mengubah dan mempelajari layout keyboard akan menjadi pengalih perhatian dari masalah yang lebih penting.


9



Saya bermain dengan varian tata letak Colemak saat ini dengan perubahan simbol yang berat:

tanpa SHIFT:

`- {} []; <> () _ =
 qw fp g j l u y * / # \
a r s t d h n e i o '
z xc v b k m,. !

dengan SHIFT:

~ 1 2 3 4 5 6 7 8 9 0 & +
Q W F P G J L U Y @ ^ $ |
A R S T D H N E I O "
Z X C V B K M%:?

Mungkin saya akan mengembalikan / kunci ...

Tapi ini tidak didasarkan pada penelitian suara, dan saya juga ingin melihat tata letak dioptimalkan (Optimasi termasuk hal-hal seperti perubahan tangan dll, juga pelestarian ZXCV, ...) dengan korpus berbasis source, karena semua tata letak ini tampaknya dioptimalkan hanya untuk prosa. Misalnya, 'f' adalah huruf yang sangat umum di C (jika, untuk).

Pembaruan: Saat ini saya menggunakan

`- {} [] @ <> () _ =
q w k r g y u l p *; #
a s f t d h n e i o '\
\ z xc v b j m,. /

dengan SHIFT:

~ 1 2 3 4 5 6 7 8 9 0 ^ +
Q W K R G Y U L P &! $
A F T D H A E I O "|
| Z X C V B J M%:?

Ini didasarkan pada pengoptimalan parsial 6-key-swap yang diambil dari Carpalx dengan preservasi pintas Cut / Copy / Paste / Undo yang biasa dan dimodifikasi untuk memberikan akses yang lebih baik ke karakter pemrograman biasa.


9



Mengubah tata letak keyboard adalah ide yang buruk karena akan (mungkin) meningkatkan kecepatan mengetik Anda pada satu keyboard, tetapi sangat merusak kecepatan mengetik Anda pada keyboard lain atau pada komputer di mana Anda tidak memiliki layout keyboard khusus Anda. Saya telah menemukan bahwa seringkali lebih baik untuk menyesuaikan diri dengan default, yang harus mengubahnya di mana-mana. (Secara pribadi, jari saya sangat bias Emacs, yang menyebabkan banyak gesekan mengetik di tempat lain.)


-4