Câu hỏi Bố cục bàn phím lý tưởng cho lập trình [đã đóng]


Tôi thường nghe phàn nàn rằng các ngôn ngữ lập trình sử dụng nhiều ký hiệu ngắn gọn, đáng chú ý nhất là C và C ++ (tôi sẽ không chạm APL), rất khó gõ vì chúng yêu cầu sử dụng thường xuyên phím shift. Một hoặc hai năm trước, tôi đã mệt mỏi với bản thân mình, tải xuống của Microsoft Bố cục bàn phím người sáng tạo, đã thực hiện một vài thay đổi đối với bố cục của tôi và chưa từng nhìn lại. Sự khác biệt tốc độ là đáng kinh ngạc; với một vài thay đổi đơn giản này, tôi có thể gõ mã C ++ nhanh hơn khoảng 30%, tùy thuộc vào khóa học về lông; tốt nhất của tất cả, tốc độ gõ của tôi trong văn bản chạy bình thường không bị tổn hại.

Câu hỏi của tôi là: những bố cục bàn phím thay thế đã tồn tại để lập trình, điều này đã trở nên phổ biến, bất kỳ cách nào trong số chúng vẫn được sử dụng hiện đại, bạn có sử dụng bất kỳ bố cục thay thế nào không và cách bố cục của tôi có thể được tối ưu hóa hơn nữa như thế nào?

Tôi đã thực hiện các thay đổi sau đối với bố cục QWERTY chuẩn. (Tôi không sử dụng Dvorak, nhưng có một lập trình viên Dvorak bố cục đáng nhắc đến.)

  • Trao đổi số với các ký hiệu ở hàng trên cùng, bởi vì các số nguyên dài hoặc lặp lại thường được thay thế bằng các hằng số được đặt tên;
  • Trao đổi backquote với dấu ngã, bởi vì backquotes là hiếm trong nhiều ngôn ngữ nhưng destructors là phổ biến trong C + +;
  • Hoán đổi trừ với dấu gạch dưới, vì dấu gạch dưới là phổ biến trong số nhận dạng;
  • Hoán đổi các dấu ngoặc nhọn bằng dấu ngoặc vuông, bởi vì các khối phổ biến hơn các bảng con; và
  • Trao đổi trích dẫn kép với trích dẫn đơn, bởi vì các chuỗi phổ biến hơn các ký tự chữ.

Tôi nghi ngờ điều này cuối cùng có lẽ sẽ là tranh cãi nhất, vì nó can thiệp nhiều nhất với văn bản đang chạy bằng cách yêu cầu sử dụng dịch chuyển để loại các cơn co thắt thông thường. Bố cục này đã tăng đáng kể tốc độ gõ của tôi trong C ++, C, Java và Perl, và phần nào tăng nó trong LISP và Python.


76
2018-02-21 15:57


gốc


Có lẽ nó chỉ là tôi đang suy nghĩ quá chậm - nhưng tốc độ gõ thô thường không phải là yếu tố hạn chế của tôi khi phát triển phần mềm. Nếu có, tôi có thể nghĩ rằng tôi đang làm điều gì sai. - Lucero
@Lucero: Nhìn chung, không, nhưng khi tôi (cuối cùng!) đã tìm ra những gì tôi nên làm, tôi càng nhanh chóng và thoải mái hơn, thì càng tốt. Một khi bạn đã thực hiện tất cả các suy nghĩ khó khăn của bạn, đôi khi chỉ có rất nhiều mã mài để làm ... :-) - T.J. Crowder
@ Jon: Khuyến khích mạnh mẽ làm cho CW này trước khi nó bị đóng cửa là chủ quan (sau cùng, đó là). - T.J. Crowder
@ TJ .: thực hiện CW. Bố cục tốt không phải là vấn đề về hiệu suất thô quá nhiều vì nó là một trong những tiện nghi - nhưng sự thoải mái là rất quan trọng đối với hiệu suất. - Jon Purdy
Thật là buồn cười khi bạn bị một vài người làm vậy, tôi đề nghị bỏ qua chúng. Nó không chỉ tốc độ gõ (mà Là một yếu tố nếu bạn có thể gõ đủ để có thể "lập trình như bạn nghĩ"), ergonomy vượt trội hơn thế. Nhưng tốc độ và thái độ đi lại với nhau: những động thái làm cho bàn tay của bạn bị chậm đi, mệt mỏi dẫn đến lỗi và sửa chữa những loại thuế đó thậm chí nhiều hơn. Và về lâu dài, việc điều chỉnh bố cục bàn phím để phù hợp với nhu cầu của bạn có thể là sự khác biệt giữa RSI hoặc không có RSI. - just somebody


Các câu trả lời:


Tôi vẫn giữ tốc độ gõ đó không phải là yếu tố chính trong thời gian cần thiết cho một dự án được hoàn thành. Nếu có, có một vấn đề lớn (Tuần mã hóa tiết kiệm cho chúng tôi số giờ lập kế hoạch).

Về câu hỏi của bạn, tôi thích sử dụng bố trí tiêu chuẩn vì nó có nghĩa là tôi không phải dành 10 phút đầu tiên trông ngu ngốc khi được trình bày với bố cục bàn phím chuẩn.

Một số thay thế bạn đã đề xuất, ví dụ: hàng đầu với các ký tự đặc biệt không tạo ra một chút khác biệt khi ngón tay bên ngoài, mặt khác nên chuyển động cùng lúc.

IMHO Một điều giúp các bố trí chuỗi trên chỉ sử dụng phím tắt. Vim và Emacs được khuyên dùng. Nó làm cho văn bản di chuyển nhanh hơn rất nhiều.


33



Ồ, không, tốc độ gõ không phải là một nút cổ chai bằng bất kỳ phương tiện nào, nhưng đồng thời, tại sao để một cái gì đó ngớ ngẩn như một bàn phím có được theo cách của bạn? Tôi đã không gặp khó khăn khi chuyển đổi qua lại giữa bố cục của tôi và những người khác, bởi vì tôi sử dụng thường xuyên; Tôi chỉ đơn giản là thích tôi. Và tôi phải thừa nhận, emacs làm cho lập trình nhanh như có thể - khi tôi không phải tìm kiếm một chuỗi khóa. - Jon Purdy
Oh, và sự đồng thời của các cử động tay trái và tay phải cũng không tạo ra sự khác biệt: bộ chỉnh sửa vẫn phải bị giảm trước chìa khóa bị tấn công. Một sự khác biệt của mili giây, chắc chắn, nhưng một lần nữa, tại sao cản trở chính mình? Lập trình với bố cục không hoạt động cho bạn giống như lập trình trên bàn phím dính. - Jon Purdy
Tôi duy trì điều đó bằng cách giữ một số bố trí bàn phím trong bộ nhớ bạn đang phá hoại bộ nhớ cơ của bạn và do đó làm cho việc gõ của bạn chậm hơn. - JesperE
Vấn đề khác với phím shift là các chuỗi mà bạn đang xen kẽ, vì vậy cả hai tay đều nhảy từ hàng trên cùng sang phím shift và ngược lại. Tôi không nói nó đủ phổ biến để lo lắng, tuy nhiên, nhưng những thứ như "(! * X)" có thể đủ điều kiện như là khó chịu. - Steve314
-1: Không đóng góp gì cho cuộc thảo luận (đối số "tìm kiếm ngu ngốc" không được sao lưu bởi thậm chí một dữ liệu từ kinh nghiệm, đó là một lo lắng về phía trước) và không thể sửa được. - Evgeni Sergeev


Tôi sẽ tiếp cận câu hỏi của bạn theo cách sau. Nhiệm vụ là tổ chức một bàn phím theo cách như vậy để giảm thiểu các nét chính và chuyển động tay cho văn bản đã cho.

Các bước hướng tới một giải pháp có thể. Tạo một chương trình:

  1. Lấy một tập tin văn bản với mã nguồn. (Các nguồn càng tốt và từ nhiều nguồn khác nhau!)
  2. Đếm tần suất sử dụng của mỗi biểu tượng (sự hiện diện của nó trong văn bản).
  3. (tùy chọn) Dựa trên bước 2: Chương trình tạo ra số đếm đột quỵ cho từng ký hiệu cộng với khoảng cách mà bàn tay phải đi từ vị trí trung tâm. Kết quả là bạn sẽ có một thước đo cách bố trí bàn phím của bạn hiệu quả như thế nào.

Bây giờ bằng tay hoặc bằng cách viết chương trình Định nghĩa lại bố cục của bạn theo cách sau. Đặt biểu tượng được sử dụng thường xuyên nhất ở vị trí trung tâm gần hơn với bàn tay mạnh mẽ của bạn. Biểu tượng thứ hai đi tới bàn tay yếu ớt của bạn ở vị trí trung tâm. Biểu tượng thứ ba quay trở lại bàn tay mạnh mẽ của bạn ... và cứ thế. Sau đó, bạn dần dần di chuyển từ vị trí trung tâm của bàn tay vào các khu vực "xa xôi" của bàn phím. Khi tất cả bàn phím đầy, bạn tiếp tục quá trình gán phím nhưng lần này với phím Shift được nhấn. Sự khác biệt khác là bạn không xoay tay mạnh và yếu cho mỗi biểu tượng khi phím Shift bị tắt. Với phím shift xuống đầu tiên, bạn sẽ điền vào các vị trí trung tâm trên bàn phím và sau đó di chuyển đến các vị trí xa hơn.

Khi bạn làm tất cả những gì thực hiện lại bước 3 cho bố cục mới để xem cách bố cục được cải thiện như thế nào.

Bạn có thể phải mang theo bàn phím của bạn với bạn mọi lúc. Về mặt tươi sáng, không ai sẽ chạm vào máy tính của bạn. Nó sẽ làm cho bạn trông giống như một Pro.

Cuối cùng, đừng quên chia sẻ những phát hiện của bạn.


13





Tạo một bộ ghi log đơn giản, sau đó đếm số lần mỗi phím được nhấn. Chạy nó trong một hoặc hai ngày, sau đó lưu đầu ra vào một tệp văn bản. Làm điều này một lần và một thời gian. Nó không quan trọng bố trí bạn đang sử dụng, vì bạn chỉ nhìn thấy những phím nào đang được sử dụng nhiều nhất.

Nếu bạn muốn tạo ra một bố cục tốt, bạn không thể sợ đi khỏi tiêu chuẩn. Tôi khuyên bạn nên đặt 11 phím hàng đầu dọc theo hàng chủ, sau đó là 11 phím trên cùng là hàng trên cùng (để lại 2 phím phía trên phím trả về là các phím ít được sử dụng nhất), sau đó là 11 phím trên cùng ở hàng dưới cùng . Phải còn 4 phím nữa. Lấy chúng và đặt chúng trong - = và] \ slots. Chúc mừng! Bây giờ bạn đã tạo bố cục bàn phím tuyệt vời cho các mục đích của mình! = D


10



Câu trả lời rất hay: bàn phím phải được chuyển thành chủ sở hữu - Julien__
Đối với thống kê sử dụng bàn phím, đã có những chương trình tốt có thể hiển thị bản đồ nhiệt, như thế này: WhatPulse - Mihai MATEI
[Thăm ý kiến ​​bài đăng cũ] Đó thực sự là một ý tưởng thực sự thú vị (hoặc được làm nóng;]). Tôi sẽ phải tự kiểm tra bản thân! - Tgwizman


Nói chung, tôi nghĩ rằng có một trình soạn thảo văn bản tốt và biết cách sử dụng nó là tốt hơn so với cố gắng để cải thiện tốc độ gõ của bạn. Việc có thể ghi lại và phát lại các macro đôi khi là một phao cứu sinh, và việc lựa chọn các đoạn mã được chỉ định bằng phím tắt có thể tiện dụng vì thường có các giới hạn áp dụng ngôn ngữ trên những gì có thể biến thành thư viện.

Nói chung, tôi nghĩ rằng các chất tăng cường năng suất thực sự là tất cả về kiến ​​thức ...

  • Biết các công cụ và thư viện nào có sẵn và cách sử dụng chúng.
  • Biết cấu trúc tổng thể của mã bạn đang làm việc, không chỉ chút ít của bạn.
  • Biết các thuật toán quan trọng, các mẫu thiết kế và thành ngữ, do đó bạn không cần phải tái tạo lại chúng.
  • Biết các quy tắc đủ tốt để bạn có thể linh hoạt - bạn biết khi nào nên phá vỡ chúng.
  • Biết được đồng nghiệp của bạn và điểm mạnh, điểm yếu của họ, v.v. - tức là biết khi nào phải tìm ra một thứ gì đó cho bản thân bạn, mà còn khi nào và ai hỏi.

FWIW, tôi không tuyên bố là mạnh mẽ trên tất cả những người đó. Tôi đã luôn luôn quá biassed đối với việc giải quyết vấn đề bản thân mình, và với quá mạnh một xu hướng tái phát minh bánh xe và các đề án kiến ​​trúc lớn.

Dù sao, tôi chỉ có nghi ngờ rằng thời gian thay đổi và học tập bố trí bàn phím sẽ là một phân tâm từ các vấn đề quan trọng hơn.


9



Tôi đồng ý với tất cả các bạn! Sử dụng tốt các công cụ và thành ngữ chỉ là lập trình tốt. Nhưng đây là một câu hỏi về một điều rất cụ thể, và hey, mười lăm phút hai năm trước đã giúp tôi tiết kiệm được một lượng thất vọng hợp lý kể từ đó. - Jon Purdy
@ Jon - Tôi nhận được điểm, nhưng tôi nghĩ rằng thói quen gõ của tôi là khá mạnh mẽ lập trình bởi bây giờ - thay đổi sẽ là công việc khó khăn. - Steve314
-1: Không có vẻ như nó dựa trên trải nghiệm với bố cục bàn phím thay thế; đi ngược lại kinh nghiệm của tôi với họ. Digresses cách vượt ra ngoài chủ đề. Không cung cấp các mục hành động cụ thể. Không thể sửa được. - Evgeni Sergeev


Tôi đang chơi với một biến thể của bố cục Colemak tại thời điểm này với những thay đổi lớn của các biểu tượng:

không có SHIFT:

`- {} []; <> () _ =
 q f f j j / / /
r s s h h
z x c v b k m,. !

với SHIFT:

~ 1 2 3 4 5 6 7 8 9 0 & +
H L J J J J J J @ @
Đ À T H H H ê T H ê i C
Z X C V B K M%:?

Có lẽ tôi sẽ khôi phục / khóa ...

Nhưng điều này không dựa trên bất kỳ nghiên cứu âm thanh nào, và tôi cũng thích xem bố cục được tối ưu hóa (Tối ưu hóa bao gồm các công cụ như thay đổi tay vv, bảo quản ZXCV, ...) với một kho dữ liệu dựa trên sourcecode, vì tất cả các bố cục này dường như được tối ưu hóa chỉ dành cho văn xuôi. Ví dụ, 'f' là một chữ cái rất phổ biến trong C (nếu, cho).

Cập nhật: Tôi hiện đang sử dụng

`- {} [] @ <> () _ =
q k g y p p * * p *; #
a s h t h h ơ i
\ z x c v b j m,. /

với SHIFT:

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

Điều này được dựa trên tối ưu hóa một phần 6-key-swap lấy từ Carpalx với việc bảo tồn các phím tắt Cắt / Sao chép / Dán / Hoàn tác thông thường và được sửa đổi để cho phép truy cập tốt hơn vào các ký tự lập trình thông thường.


9



Tôi thích ý tưởng làm cho các ký tự mặc định trên các con số. tức là: shift + 1 để có được một, và nhấn 1 cung cấp cho bạn! - Ray


Thay đổi bố cục bàn phím là một ý tưởng tồi vì nó (có thể) tăng tốc độ gõ trên một bàn phím, nhưng làm hỏng tốc độ gõ của bạn trên các bàn phím khác hoặc trên các máy tính mà bạn không có bố cục bàn phím đặc biệt. Tôi đã tìm thấy rằng nó thường là tốt hơn để điều chỉnh chính mình để mặc định, mà phải thay đổi chúng ở khắp mọi nơi. (Cá nhân, các ngón tay của tôi bị thiên vị nặng nề, gây ra rất nhiều tiếng gõ ở mọi nơi khác.)


-4



Tôi vui vẻ chuyển đổi giữa hai bố cục. Jon báo cáo rằng đó là "một hoặc hai năm" và anh ta không gặp khó khăn khi đi qua lại. YMMV, về cơ bản. - T.J. Crowder
Tôi thấy sự thay đổi giữa bàn phím và bố cục bàn phím dễ dàng / khó khăn như thay đổi giữa việc nói bằng các ngôn ngữ khác nhau - nếu bạn biết rõ chúng, sau vài phút, bạn lấy lại tốc độ suy nghĩ đầy đủ. - liori
@ liori: cũng nói, mặc dù cho dù đó là theo thứ tự của phút hoặc giây là hoàn toàn phụ thuộc vào cách mệt mỏi tôi. : P - Jon Purdy
@liori "sau một vài phút..." Dường như các công ty đa quốc gia và các quốc gia tiêu chuẩn hóa ngôn ngữ cho một vài mục đích. 1) Tốc độ truyền thông. 2) độ chính xác của giao tiếp. Tôi nghi ngờ bố trí bàn phím chuẩn hóa sẽ thấy những lợi ích tương tự. - Jason D
@ Jason D: Điểm hợp lệ, nhưng tôi vui vì chúng không áp dụng cho tôi ... Tôi hiếm khi sử dụng máy tính của người khác. - liori