2013-02-20 124 views
6

Hiện có bố cục bàn phím Colemak đã sửa đổi được thiết kế đặc biệt cho lập trình không?Colemak đã sửa đổi cho lập trình

Tôi đã đi dã ngoại trên bàn phím Colemak cách đây vài ngày và tôi thực sự thích nó để gõ bình thường, nhưng tôi có một số vấn đề đối với các ký tự lập trình thường xuyên như ; (dấu chấm phẩy) chính. Bố cục sửa đổi có ánh xạ trực tiếp cho dấu ngoặc và dấu ngoặc đơn sẽ đẹp.

Rõ ràng tôi có thể remap các phím này bản thân mình thông qua thử nghiệm và lỗi, nhưng tôi hy vọng ai đó đã làm một số xét nghiệm để xác định bố trí tối ưu cho các ký tự ngôn ngữ chung.

+0

chờ đợi chỉ một vài ngày để thích nghi có lẽ là chưa đủ để có một cảm giác thực sự của việc ; (v.v.) đang làm việc cho bạn. Câu hỏi của bạn là khá cũ bây giờ mặc dù; bạn đã đi như thế nào Về chủ đề tăng cường Colemak, nếu bạn đang dùng máy Mac, hãy xem [Karabiner] (https://pqrs.org/osx/karabiner/), có thể được sử dụng để thiết lập khá nhiều thứ (chẳng hạn như các lớp, đảo ngược hàng số của bạn, v.v.) – wincent

+0

@wincent Tôi vẫn ở trên Colemak và sử dụng Karabiner, nhưng tôi không khuyên bạn nên chuyển từ QWERTY sang bất kỳ ai khác. Tôi là một masochist - đã quá muộn đối với tôi, mặc dù tôi khuyên bạn nên sử dụng bàn phím ergonomic như Kinesis. –

Trả lời

1

bạn đã xem xét các mods góc rộng dreymar trên colemak.com chưa?

bạn có thể dán; ở giữa bàn phím để dễ dàng truy cập với [và] ở trên và dưới nó có lẽ?

2

Tôi nhận ra câu hỏi này là đã một tuổi, nhưng ở đây là trả lời của tôi trong trường hợp nó giúp bất cứ ai khác.

Đây là vấn đề tôi đã xử lý thường xuyên hơn tôi quan tâm đến xây dựng.

Nó đủ để nói rằng không có, thậm chí sau nhiều tháng tìm kiếm, tôi vẫn chưa tìm thấy một phù hợp "Colemak cho chương trình". Nó có cùng sự phiền toái như QWERTY thông thường trong việc lạm dụng quyền màu hồng cho các ký hiệu đặc biệt và một bản remap sẽ là điều mong muốn, nhưng bây giờ mớ hỗn độn được thực hiện, sẽ không có bất kỳ giải pháp nào ngay lập tức.

Chỉ có hai việc bạn có thể làm:

1) Tạo bàn phím bố cục tùy chỉnh. Có nhiều công cụ khác nhau để thực hiện điều này trên Win/Lin/Mac. Điều này là gọn gàng như bạn chỉ có thể sắp xếp lại mọi thứ như bạn thấy phù hợp. Mặt khác, nhược điểm lớn là không ai khác sử dụng bố trí bàn phím của bạn, và nếu bạn được yêu cầu nhập một cái gì đó trên máy tính, bạn sẽ gặp rắc rối, vì bộ nhớ cơ của bạn hoàn toàn khác.

2) Có một bố trí bàn phím gọi Programmer Dvorak, nhằm giải quyết vấn đề của bạn. Ở đây, nhược điểm là lập trình viên Dvorak tương đối không rõ so với bàn phím Dvorak tiêu chuẩn, do đó cùng vấn đề như trên. Nó chỉ sắp xếp lại các ký hiệu đặc biệt, tuy nhiên, điều đó có nghĩa là bạn vẫn có thể sử dụng Dvorak tiêu chuẩn nếu cần thiết (và nó rộng hơn nhiều so với Colemak). Hãy chuẩn bị sẵn sàng để dành hàng tháng trong quá trình chuyển đổi.

Ngoài ra, bạn có thể thử và lựa chọn một lựa chọn thứ ba và cố gắng thuyết phục cộng đồng Colemak trong việc phát triển một phiên bản lập trình viên rất thân thiện với Colemak. Nhưng điều này sẽ mất thời gian và tôi cược bạn sẽ tìm thấy vài người ủng hộ.

2

nền

này tôi làm một giờ và một bài thuyết trình về lịch sử nửa bố trí bàn phím và lý thuyết: https://www.youtube.com/watch?v=i1hK1qrdYtU

tôi thực hiện việc này rất nghiêm túc, và đang liên tục thử nghiệm. Tôi bị ám ảnh bởi việc làm việc hiệu quả, và tôi đã thể hiện những kết quả rất hấp dẫn, chẳng hạn như nói rằng, Tôi đảm bảo rằng nó rất đáng để nỗ lực.

Trong câu trả lời của tôi, tôi sẽ đi nhiều hơn lý thuyết như bố trí của tôi chủ yếu được thiết kế theo hướng lập trình cụ thể tôi cần, và sẽ là không thích hợp để nói, một nhà phát triển Python trừ khi anh ta điều chỉnh bigrams và Level 1 ký tự.

Sử dụng lý thuyết và tinh chỉnh theo nhu cầu của bạn.

ngữ:

  • AltGr: Thường kích hoạt phím alt phù hợp với bạn để viết chữ nước ngoài hoặc dấu.
  • Cấp 1: Bố cục không có phím bổ trợ (Shift, Altgr).
  • Level 2: Giao diện với Shift
  • Level 3: Giao diện với Altgr
  • Level 4: Giao diện với Shift + Altgr

Beta Bàn phím-Vim Programmer của Colemak v3

Đây là một bố cục đúng hướng mà tôi WS sử dụng cho năm qua: enter image description here

Hãy ghi nhớ, bố cục này đã được tối ưu hóa cho:

  • vi (Chú ý cách các phím định hướng là trên tay phải, giống như vi)
  • C Ngôn ngữ
  • APL (Vâng, APL)
  • XML (xem xét phụ)
  • Bash (set -o vi)

Nó bao trùm ba lý thuyết cực đoan chính về trình bày bàn phím:

  1. Directional Phím Up Down Left Right Home End PgUp PgDn nên được giao cho Level 3 tất cả trong tầm tay với vị trí ngón tay tự nhiên của bạn.
  2. Cả hai phím Alt phải được chuyển thành Altgr, vì vậy bạn có thể truy cập Cấp 3 bằng một trong hai tay.
  3. Số cần được đưa ra khỏi hàng trên cùng và được sắp xếp thành bàn phím. Biểu tượng máy tính phổ biến nên bao quanh nó.

Dưới đây là cách thức lý thuyết diễn ra hơn một năm sử dụng:

Lý thuyết 1 - Directional Phím

CẢI THIỆN NỔ cho công việc TOÀN BỘ, đặc biệt là tài liệu chỉnh sửa (trái ngược với Lập trình nơi vi đã cung cấp chức năng đó)

  • HomeEnd phím cực kỳ hữu ích khi được đưa vào phạm vi tiếp cận phù hợp.
  • Các phím định hướng là không thể thiếu.
  • PgUpPgDn không được sử dụng, tuy nhiên điều này có thể là do các bàn phím nghiêng so le, khiến bạn phải căng ra cho Prior. Hiện đang thử nghiệm này đảo ngược trên tay trái

Lý thuyết 2 (Hình ở dưới của câu trả lời này.) - AltGr

Đây là một yêu cầu cần thiết, trong cùng một cách vô ích mà chúng ta có hai phím shift, hai phím AltGr được đặt ở bên phải và bên phải ngay lập tức của phím cách. Làm việc với chỉ một người sẽ làm cho việc gõ một quá trình đau đớn.

Trong khi cần thiết, điều quan trọng là phải đề cập đến một số cơn đau rất nhỏ có thể phát triển với ngón tay cái ấn xuống chúng thường xuyên như vậy. Một mức giá nhỏ để trả. Nếu bạn có thể có bố cục phím cách bị thu hẹp, chẳng hạn như: enter image description here

Điều này có thể giải quyết được vấn đề.

Vấn đề khác, vấn đề này sẽ rất lớn đối với hầu hết người dùng, thiếu khóa alt. Tuy nhiên trên Ubuntu, bạn có thể truy cập hầu hết các lệnh menu bằng cách sử dụng HUD giúp loại bỏ sự cần thiết cho 90% các phím tắt có thể sử dụng Alt. Vấn đề duy nhất tôi thỉnh thoảng gặp phải là không có quyền truy cập vào các thiết bị đầu cuối TTY. (Alt + Ctrl + F1) Tôi không bao giờ bận tâm khi nhắc lại, mặc dù tôi nên làm vậy.

Theory 3 - Số Pad

enter image description here

Đây là một trong những khó khăn, cụ thể là do định hướng trái của nó. Trên các phiên bản trước, tôi đã thử nghiệm với việc di chuyển bàn phím lên một cấp sao cho 0 và 1 sẽ ở trên hàng chủ, và với tiến trình số đảo ngược (Chú ý cách nó tiến hành 3210 thay vì 0123).

Cuối cùng tôi đã đến để thích nó, nhưng việc điều chỉnh là khá khó khăn vì:

  • bộ nhớ cơ bắp cho bàn phím là thường xuyên nhất với bàn tay phải.
  • Bàn xoay bàn phím theo chiều ngang (Thật tuyệt vời. Xem video youtube của tôi), tạo ra một số Pad đầy thử thách, mặc dù tôi đã tìm ra sự thỏa hiệp tốt nhất.
  • Thứ tự ngược lại của các số, cần thiết vì bạn muốn 0 và 1 (Phổ biến nhất) có thể truy cập bằng ngón tay trỏ của bạn.

Vào cuối ngày (và nhiều tháng điều chỉnh), tôi thích mặc dù tôi cảm thấy nó chỉ tốt hơn 40%. Quan trọng hơn là, tôi đã phát hiện ra một vài điều:

    + thực sự dễ dàng hơn khi nhập ở Cấp 3 sau đó đặt ở cấp 1 ở góc trên hoặc ngay trên hàng trên cùng.
  • Các . là vô cùng hữu ích về b

Với tất cả những gì trong tâm trí, tôi đã quyết định thử nghiệm bằng cách chuyển các phím số bên phải, và các phím định hướng sang bên trái. Trong định hướng này, tôi sẽ đi qua nhiều cải tiến nhỏ không được đề cập, và trên lý thuyết mới lớn của tôi.

Beta wads-Bàn phím lập trình viên Colemak v1

enter image description here

Tối ưu hóa cho:

  • C Ngôn ngữ ();//<< ""\n\tm_
  • Bash /""<*&&||\\(\)^C
  • Document Editing ?!Shift_RControl_R

hoan lại lý thuyết:

  • Xếp Chân đế: Hướng của () được đổi thành )( được ưu tiên. Đây là một phần của lý thuyết Colemak cơ bản, cho biết việc cuộn ngón tay của bạn từ ngón tay cái đến ngón tay cái dễ dàng hơn. (Colemak là một cách bố trí nhấn mạnh ngón tay lăn trên sự thay đổi tay, mà Dvorak ưu tiên). Đặc biệt hữu ích cho hình tam giác C++ cực kỳ phổ biến này (); Thật dễ dàng để làm quen với nó, mặc dù nó có vẻ ngược lại.
  • Cấp 2 hầu như không bị ảnh hưởng: Đây chỉ là điều chỉnh thực tế. Nó không phải là một lớp cực kỳ quan trọng, vì vậy nó được duy trì cho bộ nhớ cơ bắp.
  • Điều khiển giữa ca và z: Mod tốt nhất. Sao chép, dán, Chọn tất cả, và Hoàn tác không còn đau đớn và vụng về nữa, và bây giờ là một cuộn ngón tay đơn giản.
  • Trả về cấp 3 ngay màu hồng: Trong vim, o tạo một dòng mới. Nó thực hiện ý nghĩa thực tế để đặt một Return trên phím này để chỉnh sửa văn bản. Hóa ra nó rất tiện lợi và nhanh chóng trở thành bộ nhớ cơ bắp.
  • Dấu hai chấm giữa ngón tay: Tên tội phạm của nó để có dấu ngoặc kép ở cấp 2. Tôi thấy hài lòng khi có nó lên trên dễ nhất để đạt được khóa hàng trên cùng, 4.
  • ? trên cấp 1: Người đàn ông tôi yêu thích điều này. Không cần phải hoàn thành với tổ hợp phím chuyển tay là thiên đường để viết tài liệu.

Lý thuyết mới

  • Các hồng hào không bao giờ nên chạm vào hàng spacebar, hoặc thậm chí các phím shift: Những lợi ích của việc di chuyển mà phím điều khiển lên một mức độ thuyết phục tôi hoàn toàn về điều này. (Lưu ý, tôi có một bố cục kiểu Pháp để biến sự dịch chuyển sang trái thành hai nút.) Sau cùng, đây là những gì mà các emacs đáng sợ được phát triển bởi. Như vậy, một phím shift đã được đặt trên hàng chủ. Trong khi tôi bị cám dỗ cũng bật Capslock thành một phím shift, và di chuyển backspace đến Alt+D, tôi sẽ chỉ dính vào phím shift bên phải của o. Trong kinh nghiệm ngắn của tôi, tôi đã yêu nó ở đó, và không bỏ lỡ bất cứ điều gì tôi đã có trước đó.
  • Bạn không bao giờ nên kết thúc tuyên bố, đoạn văn hoặc câu trên cấp 2: Do thành công lớn của tôi với ? trên cấp 1, tôi đã quyết định đặt ! ở đó, mặc dù ở góc xa. Tôi di chuyển nó đến góc xa bởi vì nó không phải là phổ biến, và ¬~ là cả hai đại diện của báo cáo sai/không. !=~Deconstructors(P & ¬Q). Chính lực đẩy mặc dù là bạn sẽ có thể hoàn thành một tuyên bố, đoạn văn, câu, vv mà không cần phải làm một tổ hợp phím, vì điều này làm gián đoạn dòng chảy.
  • Sử dụng bộ nhớ cơ WADS: Khi bạn đang thực hiện chỉ dẫn trên tay phải bàn tay trái. Sẽ được remapping Vim tuy nhiên để làm theo phù hợp với điều này, mà sẽ mất một số điều chỉnh.
  • Bàn phím chỉ nên ở bên phải: Như đã nói ở trên, điều này có ý nghĩa hơn, giữ 0 và 1 trên ngón trỏ và tận dụng bộ nhớ cơ được phát triển từ bàn phím.
  • Thoát trên cấp 3 a: Chúng tôi sẽ xem cách điều này phát triển. Tôi đã thử nó trên dấu ngã, nhưng thường quên nó ở đó. Là một người sử dụng vim, tôi cần Escape khá một chút, nhưng thường tôi giảm nhẹ nhu cầu đó bằng cách ánh xạ inoremap để các phím định hướng mức 3 sẽ thoát (và di chuyển con trỏ) khi được nhấn.
  • Level 3 CV nên được làm đầy với một Bigram phi tự chữ và số rất phổ biến: Tại thời điểm này, tôi có nó với */ như thế này là rất quan trọng cho ý kiến, nhưng nó có thể được lấp đầy với nhiều điều khác nhau.
  • & trên cấp 1 ở vị trí dịch chuyển: Nhân vật khó chịu nhất từng thử và nhấn khi đang dịch chuyển. Cũng vậy với ^ mà tôi sẽ sử dụng một chút công bằng trong các biểu thức chính quy. Nếu bạn dựa vào những điều này ở tất cả, bạn cần phải tìm một nơi tốt hơn cho họ.
  • Sẽ thử Chèn và Xóa trên Cấp 3 ZX.

Mọi thứ khác về cơ bản chỉ là trang trí. Một lần nữa, bạn di chuyển chúng tùy thuộc vào usecase của bạn. Một nhà phát triển trăn có thể muốn đặt : trên mức một, và đặt nó vào combo với Return.

Lý thuyết Không

  • Shift + Backspace nên thực hiện một Delete: Way quá khó hiểu và không bao giờ hữu ích.

  • 78/* Bigram: Cái này là không thực sự là xấu, nhưng nó không phải là khủng khiếp hữu ích cho các Bigram đi cả hai hướng. Nó cũng đòi hỏi một khoảng đáng kể. Tôi nghĩ sẽ tốt hơn nếu có các nhân vật trên mỗi bàn tay để dễ dàng kết hợp cả hai cách.

  • Tilde Escape: Chỉ cần sử dụng. Nếu bạn đang đi để kéo dài mà xa, cũng có thể nhấn phím thoát, mà tôi thường xuyên làm.

  • {} trên Level 1 tay ngay bên cạnh nhập, không đảo ngược: Đây là một Bigram khủng và thẳng thắn đau đớn, rất khó khăn khi phải thực hiện trong trường hợp bạn cần một người {}. nơi tốt đẹp hơn cho nhân vật không liên quan duy nhất (tức là, hai nhân vật bạn sẽ không đẩy liên tiếp)


Xây dựng riêng của bạn Tuỳ chỉnh Layout

https://docs.google.com/spreadsheets/d/1LkvWvwjahVaJyaN9hmDdulrAN08x7gQEM6DT4NFkok4/edit#gid=507511935

Tôi đã tạo ra bảng tính này mà sẽ tạo ra mã xkb thích hợp để chèn vào bố cục. Chỉ cần:

  1. Thay đổi các ký tự trên Layout Definition Page
  2. này sẽ chuyển đổi các ký tự để unicode mà được nối vào mã xkb.
  3. Chuyển đến trang XKB và chọn các hàng và chèn chúng vào bố cục của bạn.
  4. Tìm hiểu đúng cách thêm bố cục mới.

Bây giờ, việc tạo bố cục thích hợp thực sự khá khó khăn, vì vậy tôi chỉ thay thế những gì đã có trong định nghĩa colemak (BACKUP FIRST, nếu bạn nhầm lẫn, bạn sẽ không thể gõ gì cả và có thể thậm chí không cần một khởi động trực tiếp để sửa chữa vấn đề này)

và nó trông như thế này:.

sudo vim /usr/share/X11/xkb/symbols/us 

// Colemak symbols for xkb on X.Org Server 7.x 
// 2006-01-01 Shai Coleman, http://colemak.com/ 
// Akiva Abraham WADS-Keypad Programmer's Colemak 

partial alphanumeric_keys 
xkb_symbols "colemak" { 

include "us" 
name[Group1]= "English (Colemak)"; 

key <CAPS> { [ BackSpace, BackSpace,  BackSpace,  BackSpace ] }; 
key <LSGT> { [Control_R, Control_R, Control_R, Control_R] }; 
key <SPCE> { [  space,  space,   space,  nobreakspace ] }; 

key <TLDE> { [U0021, U007E, U00AC, U00A4] }; 
key <AE01> { [U005B, U0021, U005B, U20AC] }; 
key <AE02> { [U005D, U0040, U005D, U00A2] }; 
key <AE03> { [U002F, U0023, U002F, U00A3] }; 
key <AE04> { [U0022, U0024, U0022, U00A5] }; 
key <AE05> { [U003C, U0025, U003C, U003C] }; 
key <AE06> { [U003E, U005E, U003E, U003E] }; 
key <AE07> { [U0026, U0026, U0026, U2030] }; 
key <AE08> { [U002A, U002A, U002A, U00BC] }; 
key <AE09> { [U0029, U007D, U0029, U00BD] }; 
key <AE10> { [U0028, U007B, U0028, U00BE] }; 
key <AE11> { [U005F, U005F, U002D, U2308] }; 
key <AE12> { [U003D, U002B, U003D, U230A] }; 

key <AD01> { [U0071, U0051, minus, U00A9] }; 
key <AD02> { [U0077, U0057, Home, U00AE] }; 
key <AD03> { [U0066, U0046, Up, U2191] }; 
key <AD04> { [U0070, U0050, End, U00B6] }; 
key <AD05> { [U0067, U0047, Prior, U2371] }; 
key <AD06> { [U006A, U004A, U0023, U2372] }; 
key <AD07> { [U006C, U004C, U0037, U00B0] }; 
key <AD08> { [U0075, U0055, U0038, U22A4] }; 
key <AD09> { [U0079, U0059, U0039, U00A7] }; 
key <AD10> { [U003B, U003A, U2234, U2234] }; 
key <AD11> { [U005C, U005C, minus, U0025] }; 
key <AD12> { [U007C, U00A6, U007C, U2262] }; 
key <BKSL> { [U0027, U0060, U0060, U2260] }; 

key <AC01> { [U0061, U0041, Escape, U2122] }; 
key <AC02> { [U0072, U0052, Left, U2190] }; 
key <AC03> { [U0073, U0053, Down, U2193] }; 
key <AC04> { [U0074, U0054, Right, U2192] }; 
key <AC05> { [U0064, U0044, Next, U2228] }; 
key <AC06> { [U0068, U0048, U0024, U2227] }; 
key <AC07> { [U006E, U004E, U0034, U22A3] }; 
key <AC08> { [U0065, U0045, U0035, U22A5] }; 
key <AC09> { [U0069, U0049, U0036, U22A2] }; 
key <AC10> { [U006F, U004F, Return, U2235] }; 
key <AC11> { [Shift_R, Shift_R, Shift_R, Shift_R] }; 

key <AB01> { [U007A, U005A, Insert, U2229] }; 
key <AB02> { [U0078, U0058, KP_Delete, U222A] }; 
key <AB03> { [U0063, U0043, U002A, U2282] }; 
key <AB04> { [U0076, U0056, U002F, U2283] }; 
key <AB05> { [U0062, U0042, U002E, U2022] }; 
key <AB06> { [U006B, U004B, U0030, U00BA] }; 
key <AB07> { [U006D, U004D, U0031, U00B9] }; 
key <AB08> { [U002C, U003C, U0032, U00B2] }; 
key <AB09> { [U002E, U003E, U0033, U00B3] }; 
key <AB10> { [U003F, U003F, U002F, U2020] }; 

include "level3(ralt_switch)" 
include "level3(lalt_switch)" 
};