Często słyszę narzekania, że języki programowania, które intensywnie używają symboli dla zwięzłości, w szczególności C i C ++ (nie będę dotykać APL), są trudne do wpisania, ponieważ wymagają częstego używania klawisza Shift. Rok lub dwa temu sam się tym zmęczyłem, pobrałem program Microsoft Keyboard Layout Creator , wprowadziłem kilka zmian w moim układzie i ani razu nie obejrzałem się za siebie. Różnica prędkości jest zdumiewająca; dzięki tym kilku prostym zmianom jestem w stanie pisać kod w C ++ około 30% szybciej, w zależności oczywiście od tego, jak bardzo jest włochaty; a co najważniejsze, moja prędkość pisania zwykłym tekstem nie jest ograniczona.
Moje pytania są następujące: jakie alternatywne układy klawiatury istnieją w programowaniu, które zyskały popularność, czy któryś z nich jest nadal w użyciu, czy osobiście używasz jakiegoś zmienionego układu i jak można dalej zoptymalizować mój układ?
Dokonałem następujących zmian w standardowym układzie QWERTY. (Nie używam Dvoraka , ale warto wspomnieć o układzie programisty Dvoraka ).
- Zamień liczby na symbole w górnym wierszu, ponieważ długie lub powtarzające się liczby literałów są zwykle zastępowane nazwanymi stałymi;
- Zamień cudzysłowy na tyldę, ponieważ w wielu językach są rzadkie, ale destruktory są powszechne w C ++;
- Zamień minus z podkreśleniem, ponieważ podkreślenia są powszechne w identyfikatorach;
- Zamień nawiasy klamrowe na nawiasy kwadratowe, ponieważ bloki są częstsze niż indeksy dolne; i
- Zamień podwójny cudzysłów na pojedynczy cudzysłów, ponieważ ciągi znaków są bardziej powszechne niż literały znakowe.
Podejrzewam, że ta ostatnia będzie prawdopodobnie najbardziej kontrowersyjna, ponieważ najbardziej przeszkadza w wyświetlaniu tekstu, wymagając użycia shift do wpisywania typowych skurczów. Ten układ znacznie zwiększył moją szybkość pisania w C ++, C, Javie i Perlu oraz nieco zwiększył ją w LISP i Pythonie.
źródło
Odpowiedzi:
Nadal uważam, że szybkość pisania nie jest głównym czynnikiem wpływającym na czas ukończenia projektu. Jeśli tak, jest duży problem (tygodnie kodowania oszczędzają nam wiele godzin planowania).
Jeśli chodzi o twoje pytanie, wolę używać standardowego układu, ponieważ oznacza to, że nie muszę spędzać pierwszych 10 minut wyglądając głupio, gdy przedstawiam standardowy układ klawiatury.
Niektóre z zaproponowanych przez Ciebie zamian, np. Górny wiersz ze znakami specjalnymi, nie robi żadnej różnicy, ponieważ zewnętrzny palec drugiej ręki powinien przesuwać się w tym samym czasie.
IMHO Jedną rzeczą, która pomaga powyżej łączenia układów w łańcuchy, jest używanie tylko skrótów klawiaturowych. Zalecane są Vim i Emacs. Znacznie przyspiesza przenoszenie tekstu.
źródło
Podszedłbym do twojego pytania w następujący sposób. Zadaniem jest takie zorganizowanie klawiatury, aby dla danego tekstu zminimalizować naciskanie klawiszy i ruch dłoni.
Kroki w kierunku możliwego rozwiązania. Stwórz program, który:
Teraz ręcznie lub pisząc program Przedefiniuj swój układ w następujący sposób. Umieść najczęściej używany symbol w centralnej pozycji, bliżej swojej silnej ręki. Drugi symbol trafia do twojej słabej ręki na środkowej pozycji. Trzeci symbol wraca do twojej silnej ręki ... i tak dalej. Następnie stopniowo przechodzisz od centralnej pozycji dłoni do bardziej „odległych” obszarów klawiatury. Gdy cała klawiatura jest pełna, kontynuujesz proces przypisywania klawiszy, ale tym razem z wciśniętym klawiszem Shift. Inną różnicą byłoby to, że nie obracasz silnej i słabej ręki dla każdego symbolu, gdy Shift jest w dół. Z wciśniętym klawiszem Shift najpierw wypełniasz środkowe pozycje na klawiaturze, a następnie przechodzisz do bardziej odległych pozycji.
Po wykonaniu wszystkich czynności wykonaj ponownie krok 3 dla nowego układu, aby zobaczyć, jak układ został ulepszony.
Być może będziesz musiał nosić klawiaturę przez cały czas. Z drugiej strony nikt nie dotknie twojego komputera. Sprawi, że będziesz wyglądać jak profesjonalista.
Na koniec nie zapomnij podzielić się swoimi spostrzeżeniami.
źródło
Gram w tej chwili wariantem układu Colemak z dużymi zmianami symboli:
bez SHIFT:
`- {} []; <> () _ =
qwfpgjluy * / # \
arstdhneio '
zxcvbkm,. !
z SHIFT:
~ 1 2 3 4 5 6 7 8 9 0 & +
QWFPGJLUY @ ^ $ |
ARSTDHNEIO "
ZXCVBKM%:?
Może przywrócę / klucz ...
Ale to nie jest oparte na żadnych rzetelnych badaniach i chciałbym również zobaczyć zoptymalizowany układ (Optymalizacja, w tym takie rzeczy, jak zmiana ręki itp., Także zachowanie ZXCV, ...) z korpusem opartym na kodzie źródłowym, ponieważ wszystkie te układy wydają się być zoptymalizowane tylko pod kątem prozy. Na przykład „f” jest bardzo popularną literą w języku C (jeśli, dla).
Aktualizacja: obecnie używam
`- {} [] @ <> () _ =
qwkrgyulp *; #
asftdhneio '\
\ zxcvbjm,. /
z SHIFT:
~ 1 2 3 4 5 6 7 8 9 0 ^ +
QWKRGYULP &! $
ASFTDHNEIO "|
| ZXCVBJM%:?
Jest to oparte na częściowej optymalizacji 6-klawiszowej zamiany klawiszy, zaczerpniętej z Carpalx z zachowaniem zwykłych skrótów Wytnij / Kopiuj / Wklej / Cofnij i zmodyfikowanej, aby zapewnić lepszy dostęp do zwykłych znaków programowania.
źródło
Utwórz prosty rejestrator klawiszy, a następnie policz, ile razy naciśnięto każdy klawisz. Uruchom go na dzień lub dwa, a następnie zapisz wynik w pliku tekstowym. Rób to od czasu do czasu. Nie ma znaczenia, jakiego układu używasz, ponieważ po prostu widzisz, które klawisze są używane najczęściej.
Jeśli chcesz zrobić dobry układ, nie możesz bać się odejścia od normy. Sugerowałbym umieszczenie pierwszych 11 klawiszy w głównym rzędzie, następnie 11 górnych klawiszy w górnym rzędzie (pozostaw 2 klawisze nad klawiszem powrotu jako najmniej używane), a następnie 3 górne 11 klawiszy jako dolny rząd . Teraz powinny zostać 4 klucze. Weź je i umieść w szczelinach - = i] \. Gratulacje! Stworzyłeś teraz świetny układ klawiatury do swoich celów! = D
źródło
Ogólnie uważam, że posiadanie dobrego edytora tekstu i wiedza, jak go używać, jest lepsze niż próba poprawienia szybkości pisania. Możliwość nagrywania i odtwarzania makr czasami ratuje życie, a wybór fragmentów kodu przypisanych skrótom może być przydatny, ponieważ zwykle istnieją ograniczenia językowe dotyczące tego, co można przekształcić w bibliotekę.
Mówiąc bardziej ogólnie, myślę, że rzeczywisty wzrost wydajności polega na wiedzy ...
FWIW, nie twierdzę, że jestem silny w tym wszystkim. Zawsze byłem zbyt nastawiony na samodzielne rozwiązywanie problemów i ze zbyt silną tendencją do odkrywania na nowo koła i wielkich schematów architektonicznych.
W każdym razie mam takie podejrzenie, że czas spędzony na zmianie i nauce układów klawiatury byłby odwróceniem uwagi od ważniejszych kwestii.
źródło
Zmiana układu klawiatury jest złym pomysłem, ponieważ (być może) zwiększyłaby szybkość pisania na jednej klawiaturze, ale poważnie zaszkodziłaby szybkości pisania na innych klawiaturach lub na komputerach, na których nie masz specjalnego układu klawiatury. Odkryłem, że często lepiej jest dostosować się do ustawień domyślnych, że trzeba je zmieniać wszędzie. (Osobiście moje palce są mocno ukierunkowane na Emacsa, co powoduje wiele tarcia podczas pisania wszędzie indziej.)
źródło