일반 모드에서 화살표 키를 사용하는 것이 나쁜 습관으로 간주되는 이유는 무엇입니까?


43

나는 많은 기사 ( :)에서 정상 모드에서 화살표 키를 사용하는 것이 좋지 않다는 것을 읽었습니다 . 누군가 왜 그것이 잘못된 습관으로 간주되는지 설명 할 수 있습니까?


5
hjkl을 사용하지 않는 한 가지 좋은 이유는 다른 키보드 레이아웃을 사용하는 것입니다. 예를 들어, hjkl은 드보락에서 공간적으로 상관되지 않으므로 사용하기가 어렵습니다.
Kylos

1
@Kylos hjklDvorak에서 사용 합니다. 그것은 쿼티보다 확실히 덜 합리적이지만, "사용하기 어렵다"는 것을 알지 못합니다. 그것들은 단지 열쇠 일 뿐이며, 일단 익숙해지면 그들에게 다가 가기가 어렵지 않습니다.
Dougal

2
hjkl문서를 이동하는 데 가장 적합한 옵션이되어야 하는 많은 오해 가 있습니다. hjklvi가 생성 될 때 일부 키보드는 화살표 키를 사용 했으므로 vi는 키보드 레이아웃과 일치시키기 위해 일반 모드에서 동일한 키를 사용했습니다. 다음은 키보드 사진이있는 기사입니다. catonmat.net/blog/why-vim-uses-hjkl-as-arrow-keys
allo

8
난이도로 명성이 높은 것은 어떤 종류의 사람을 끌어들입니다. Crossfit, Vim, 함수형 프로그래밍, 완전 채식주의 등. 이제 그러한 활동 중 하나를 취하는 모든 사람들이 그런 종류는 아니지만, 종종 불균형하게 나타납니다. 그리고 그 사람에 대한 매력의 일부 는 활동 자체어려움입니다 . 진입 막대를 낮추는 것은 그들에게 혐오입니다. 덜 특별합니다. 선호하는 이유가 있습니다 hjkl. 좋은 것. 그러나 사람들은 적어도 부분적으로 교리 상태로 부풀어 오릅니다. 사람들은 다른 사람들보다 낫다고 느끼기 때문입니다.
Jared Smith

@Kylos 나는 드보락에서 최고가 아니라는 데 동의합니다 hjkl. 그러나 드보락 사용자로서 나는 그들이 짝을 이루기 때문에 조금 편리하다는 것을 알 수 있습니다 : jk보드의 한쪽면에서와 같이; 그리고 hl 다른쪽에.
nilon

답변:


66

실제로 이것은 나쁜 습관이 아닙니다.

많은 사람들 ( @B Layer의 답변이 보여주는 Vim의 문서 포함 ) 화살표 키를 사용하면 손이 홈 행 (키보드의 두 번째 줄)에서 움직이고 hjkl덜 효율적 이기 때문에 화살표 키를 사용하지 않아야한다고 주장합니다. .

이것은 (IMO) vim "purists"circle jerk의 나쁜 결과입니다. 새로운 사용자는 이것을 맹목적으로 따르고 일부는 심지어 화살표 키를 비활성화 한 다음 이전보다 효율적이지 않다고 불평합니다.

당신이 사용하는 더 편안하게 느끼는 경우 : 사용 정력에 유일한 규칙은 효율적으로 사용하는 것입니다 LeftRight이상 hl 그것을 할, 화살표 키를 사용합니다. set mouse=a마우스를 사용하려면 Vim에 옵션이 있습니다!

당신은 정력과 더 나은 다른 가능한 움직임으로 얻을 익숙해지면 ( f, t, ,, ;, w, b, e, ge, 그리고 기본적으로 모든 :h quickref) 당신은 당신이 사용 화살표 키를하지 많은 것을 할 것을 깨닫게 수 있습니다. 그리고 여전히 그것들을 사용한다면 문제가되지 않습니다. 가장 효율적인 것을 사용하십시오.

참고 더 효율적인 효율성을 위해 홈 행을 떠나지 않는다는 주장은 내 의견으로는 그다지 좋지 않습니다. vim이 hjkl사용하는 이유를 살펴보면 화살표가 없기 때문에이 키가 선택 되었음을 알 수 있습니다 Vi가 쓰여졌을 때 키. 아마도 현재 키보드가 다르면 화살표 키를 사용하지 않는 것이 좋습니다.


13
나는 종종 익숙해 져서 화살표 키에 닿기 위해 손목을 매우 심하게 구부 렸습니다. 나는 hjkl손목에서 약간의 고통을 덜어주는 데 익숙해지기 위해 화살표 키를 비활성화했습니다 .
Shahbaz

9
QWERTY 키보드에서만 작동한다는 점을 지적하고 싶습니다. 일부 레이아웃의 경우 hjkl이 큰 고통이 될 수 있습니다.
coteyr

1
두 가지 옵션을 모두 사용할 수 있습니다. hjkl 또는 화살표를 선택하든 다른 위 / 아래 키 세트를 바인딩하여 파일 행이 아닌 화면 행별로 이동할 수 있습니다. 긴 줄이있는 파일을 편집 할 때 도움이됩니다.
user31389

1
나는 당신이 언급 한 고급 모션 명령에 익숙했기 때문에 나는 hjkl과 화살표 키를 거의 사용하지 않는다는 대답을 읽기 전에 깨닫지 못했습니다. 좋은 지적!
Spiros

4
그러나 나는 당신의 내 눈에 맞는 정답을 고맙게 생각합니다. 나는 당신을 동료 중재자 로 삼고 vi vificionado 가 생생하게 방해되는 이미지를 불러 일으키지 않는 서클 얼간이에 대한 덜“시끄러운”대안 문구를 찾기 위해 최선을 다할 수 있습니까? 남자 나 남자의 바지가없는 고리로 서로의 회사에서 함께 자위 를한다. :)
tchrist

40

이것이 더 이상 관련이 있는지 모르겠지만, 나는 오래된 타이머이므로 약간의 역사가 있습니다.

예전에는 VT100 터미널에 화살표 키가 있었지만 하나를 누르면 <ESC>[A위, <ESC>[B아래 등 의 이스케이프 시퀀스를 전송했습니다 .
또한 9600 보드에서 통신하는 직렬 터미널이기 때문에 사용자가 키를 너무 빨리 누를 수있었습니다 한 번의 키 누름으로 이전의 키 누름 순서를 중단시키고 혼동되는 전체 순서를 전송 vi.

이로 인해 vi가 삽입 모드로 들어 가지 않고 아래쪽 화살표를 누른 상태에서 파일에 [B [B [B [B [B [B]를 삽입하십시오.) 삽입 모드로 들어가야하는이 시퀀스에 대해 아무것도없고 ESC 문자로 시작하는 각 시퀀스가 ​​삽입 모드를 종료해야한다는 사실 때문에 설명 할 수 없습니다. 그러나 여전히 쓰레기를 넣을 것입니다. 항상 그런 것은 아닙니다. 급한 때에 말입니다.

한 사람은 이것에 빨리 질려서 hjkl열쇠를 고집하기로 결정했습니다 .


8
어떤 이유로 든 TCP 터미널 프로그램은 여전히 이스케이프 기반 화살표 키를 사용하며, 이스케이프 키를 누르는 것과 화살표 키 이스케이프 시퀀스의 첫 번째 바이트를 보내는 것을 구분하는 100 % 신뢰할 수있는 방법은 없습니다.
supercat

1
@supercat 그들은 그것들 을 구별 수있는 확실한 방법을 가지고 있습니다. SC81T 사용하여 호출됩니다 . 문제는 많은 프로그램이 협상하지 않고 일부 터미널이이를 지원하지 않을 가능성이 높다는 것입니다.
jamessan

1
@ jamessan : 내가 그 권리를 읽으면 화살표 키와의 이스케이프를 구별하는 신뢰할 수있는 방법은 이스케이프 기반 화살표 키를 사용하지 않는 것입니다. 기반 화살표 키.
supercat

흠, 내가 VT100을 에뮬레이트 할 수 있습니다 오래된 IBM 단자가,이 시도해야 할 수도 있습니다
집게 벌레

3
난 분명이이 사실을 확인 할 수 있습니다 적어도 방법 - 백 때 80 년대 우리가 화살표 키를 사용하지 않도록 학부 터미널 방에 표지판을 넣어했다대로, VI 바로이 이유. tty 드라이버가 인터럽트를 제거했을 때 파일을 계속 엉망으로 만들었습니다.
tchrist

28

@statox에 동의하지만 화살표 키를 사용하기로 선택한 경우 아무도 징계, 기피, 파문 또는 타락 및 깃털을 깎아서는 안된다는 것에 동의합니다 ... 열린 마음을 가진 새로운 사용자에게 지침을 제공하는 경우 많은 laissez-faire 태도. 모범 사례를 따르는 것으로 시작하는 것이 좋습니다. 그것들은 이유를위한 "모범 사례"입니다. 그들은 당신과 저보다 먼저 온 많은 사람들에게 좋은 효과를주기 위해 고용되었습니다.

심지어 Vim의 도움 조차도 과장되어 있지는 않지만 ( " 매우 느리게") 그 방향으로 너를 조금씩 움직입니다 .

화살표 키를 사용하여 커서를 이동할 수도 있습니다. 그러나 화살표 키를 누르기 때문에 편집 속도가 크게 느려지면 텍스트 키에서 화살표 키로 손을 움직여야합니다. 한 시간에 수백 번 수행하는 것을 고려하면 상당한 시간이 걸릴 수 있습니다.

또한 처음에 선택하는 것이 무엇이든 미래에 변화를 원한다면 깨지기 어려운 습관이 될 수 있다는 사실도 있습니다. 그렇다면 화살표 키를 사용하는 것이 비효율적이거나 손목 살상을 당할 가능성보다 지금 권장되는 습관을 취하지 않는 이유 무엇입니까?

대체로, 화살표 키없이 일을하기 위해 정직한 노력을 고려하십시오. 적당한 시간이 지나면 위 / 아래 / 왼쪽 / 오른쪽없이 살 수 없다면 ...하지 마십시오.

... 내 의견에 관심이있는 새로운 사용자에게 할 말입니다. 당신이 동의하지 않는다면 개인적으로 받아들이지 마십시오 (나는 당신과 대화하고 있습니다.


9
화살표 키보다 실제로 더 낫다는 것을 인정하더라도 (나는 그것을 확신하지 못합니다) 어딘가에 가능한 모든 "모범 사례"목록의 맨 아래에 있습니다. 나는 많은이 있다는 것을 주장 할 것이다 많은 hjkl를 사용하는 것보다 더 중요한 일이.
Martin Tournoij

5
@Carpetsmoker 모범 사례를 평가할 필요는 없다고 생각합니다. 화살표 키를 사용하려는 강한 바람이 없다면 Vim이 권장하는 것처럼하지 않는 이유는 무엇입니까? 특히 Vim을 처음 사용하는 경우 ... 우리는 일단 우리가 무언가를 뿌리면 무언가를하는 방식을 바꾸는 것이 얼마나 어려운지 잘 알고 있습니다.
B 레이어

1
"너는 편집 속도를 크게 늦춘다"-그것은 나에게 과장된 것처럼 보인다. 그럼에도 불구하고 나는 그것을 시도해 볼 가치가 있다는 것에 동의한다. 솔직히 전쟁을하기에 충분히 중요하지 않습니다.
Shadow

2
@ BLayer는 여기에 없습니다-이것은 내가 본 것 같은 주제에 대한 가장 시민 토론입니다. 그러나 전쟁은 확실히 싸웠습니다.
Shadow

1
don't think it's necessary to rank best practices글쎄, 우리는 자원이 유한하고 삶이 짧다는 것을 감안할 때 우리에게 인생에서 최고의 가치를 제공하는 것에 초점을 맞춰야 할 것 같습니다. 나는 hjkl 키가 숫자 패드가없는 랩톱에서 불량, larn, angband 등을 연주하는 어린 시절로 인해 마음이 아는 것을 알고 있지만, 일부 사람들은 어린 시절을 더 잘 보냈으므로 화살표 키를 "배워야"합니다. 운동, 범위 등을 배우는 것이 시간을 보내는 데 훨씬 유용한 방법이라고 생각합니다.
Martin Tournoij

16

다른 답변에 따르면, 홈 행에서 손을 움직일 때의 효율성 손실은 그다지 중요하지 않으며 대부분 동의합니다. 그러나 무엇 이며 큰 문제는, 정력 학습 항상 정상 모드로 전환 등을 방지하기 위해 화살표 키를 사용하면된다.

하나의 사용 즉, 단일 사용했을 h생산성에 큰 손실되지 않습니다,하지만 사용하여 당신이 사용했을 수있는 곳 EscI 입니다 엄청난 손실.

그래서 사람들이 vim을 배울 때 화살표 키를 피하라고 지시하는 이유는 삽입 모드를 떠나지 않고 일반 모드를 배우도록 강요하기 때문입니다. 일반 모드는 모든 효율성 향상이있는 곳입니다.


1
+1. 즉, "화살표 키를 사용하지 말고을 사용하지 마십시오 hjkl." (의도적 인 쌍곡선을
유지함

3
실제로, 10 배 대신에, 또는 훨씬 더 간단하게 사용할 수 있습니다 . 후자는 Windows 메모장에서도 작동합니다. 1 0 Home
Ruslan

7

사람들이 화살표 키를 사용하지 말아야하는 이유는 두 가지입니다. 어떤 사람들은 hjkl이 홈 행에 손을 유지하기 때문에 선호한다고 주장 하지만 이는 거짓 이 아니라 중요하지 않습니다. 나 자신을 포함한 다른 사람들은 문자를 몇 개 이상 움직이면 화살표 키를 사용하지 말고 hjkl도 사용해서는 안된다고 말합니다.

중요한 것은 사용 하는 키가 아니라 몇 개의 키인지 입니다. 당신이 단어의 시작으로 이동하려면, 당신은 명중하지 않습니다 hhh; 당신은 때렸다 b. 단어의 끝은 e아닙니다 llll. 줄의 시작 : 0, 줄의 끝 : $. 그리고 /search당신이 가고 싶은 곳에 존재하는 텍스트에 대해 더 나아가십시오. (또는 원하는 고급 이동 명령 중 하나).

그러나 같은 키를 두 번 이상 연속해서 입력하면 더 좋은 방법이 있습니다.


7

보다 정확한 설명은 "화살표 키를 사용하는 것이 좋지 않은데 vim을 더 잘 배우려고 노력하는 것은 나쁜 습관 " 입니다. vim을 처음 사용하는 사람들은 화살표 키를 사용하여 hjkl익숙해 지므로 배우지 않으므로 이것이 바람직한 지 알 수 없습니다.

개인적으로 vim에 대한 일반적인 지식을 얻은 후에 는 화살표 키 를 잠시 비활성화하여 잠시 중단 hjkl하고 나중에 다시 활성화했습니다 .vimrc. 제 경우에는 기존의 지혜가 있습니다. 일단 hjkl화살표 키와 화살표 키를 모두 사용하는 방법을 알고 나면 거의 전적으로 전자 를 사용한다는 것을 알았습니다 .


6
동의하지 않습니다. 마찬가지로 이 블로그는 말한다, 초보자를위한 그 "모 아니면도"접근 방식은 정력의 "사용자 비우호적"평판 원인 데 도움이됩니다. 새로운 사용자는 시작, 혼란에 빠지고 압도 당하고 vim이 거칠지 않다는 결론을 내렸다. -수영을 배우고 있다면 보트에서 자신을 바다로 던지지 마십시오. 물이 편해 질 때까지 키즈 풀 주변에서 개를 젓는 것이 완벽하게 허용됩니다.
RM

2
... 화살표 키를 비활성화하면 사람들에게는 효과가 없다고 말할 수 없습니다. 그러나 "vim을 처음 사용하고 더 잘 사용하는 방법을 배우고 싶습니다"단계가 아니라 "vim을 처음 사용하고 사용법을 배우고 싶습니다"단계가 아닙니다.
RM

5

일반적인 대답은 효율성과 관련이 있습니다. 수년 동안 asdf와 jkl;을 계속 사용하는 터치 타이핑을 사용하도록 훈련을 받았을 것입니다. Vi의 주요 바인딩 대부분은 hjkl 이동 명령을 포함하여이 사실을 중심으로 설계되었습니다.

개인적으로 나는 실제로 둘 다 사용합니다. 큰 텍스트 섹션을 적극적으로 편집 할 때는 hjkl을 사용하고 로그 파일을 스크롤 할 때는 화살표 키를 사용합니다 (파일 전체에서 스팟 편집을 수행 할 때는 |, g 및 /). 이것은 단지 나에게 잘 맞는 일이며, 이런 경우 정말 중요합니다.


2

오래 전에 많은 터미널에 화살표 키가 없거나 네 개가 모두 없었습니다. 탐색이 필요한 소프트웨어 시스템은 일반적으로 화살표 키에 의존하지 않고 일종의 탐색 방식을 제공했으며 vi의 hjkl은 일반적인 예입니다. (또 다른 고전적인 예는 WordStar의 ^ E- ^ S- ^ X- ^ D입니다.) 키보드 탐색 유틸리티가 점점 더 명확 해짐에 따라 점점 더 많은 새로운 터미널에 화살표 키가 제공되기 시작했으며 소프트웨어 시스템은 종종 이러한 방식을 이전 방식으로 매핑했습니다. 항해. 그러나 이것은 일종의 이식성 문제를 제공했다. 만약 학교에서 훈련받은 아이들이 화살표 키와 같은 새로운 기능을 사용하게된다면 생각은 한 번만해도 생산적이지 못할 수도있다. 화살표 키가없는 키보드

따라서 기본 컴퓨팅에 대한 과정 교사는 학생들에게 최대한의 공통 분모를 사용하는 방법을 배우도록 경고하면서 학생들의 사용 가능성을 극대화하기 시작했습니다. 그리고이 관행은 한때 있었던 어떤 이유보다 오래 지속되었습니다.

vi의 현대적인 구현에서 hjkl을 선호하는 주된 이유는 화살표 키가있는 곳으로 손을 옮기는 것보다 이미 손 아래에있는 키를 사용하는 것이 약간 빠르기 때문입니다. 물론 손의 컨텍스트 전환을 피하는 단점은 vi의 컨텍스트 전환을 수행해야 할 수도 있다는 것입니다. 요즘, 사람이 속도를 입력하여 매우 소중하게 생각하는 경우, 어느 쪽을 수행하든간에 개인 취향의 문제는 거의 없으며, 화살표 키를 사용하는 것이 더 이상 본질적으로 나쁘지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.