Vim에서 더 잘되기 [닫기]


116

저는 Vim을 꽤 오랫동안 사용해 왔지만 대부분 삽입 모드를 사용하는 수준에 있으며 여전히 화살표 키를 사용하여 이동합니다 (!).

특히 내비게이션 (특히 코드), 복사 및 붙여 넣기, 기존 코드의 기타 조작과 관련하여 멋진 편집기를 최대한 활용하지 못하는 것 같습니다. (복잡한 검색 / 바꾸기 패턴에 꽤 익숙하지만).

  • 자세히 알아 보려면 어떻게해야합니까?
  • 사람들은 어떤 리소스를 추천할까요?

8
이동을 위해 화살표 키를 사용하는 것이 잘못된 이유는 무엇입니까? 그게 그들이하는 것 입니다 !
— Vilx-

39
@Vilx, 당신은 컴퓨터 액션 게임에서도 화살표 키로 움직이지 않습니다 ! 텍스트 편집기는 고사하고 ...
— P Shved

6
@Vilx : 키보드의 화살표 키는 모든 종류의 탐색에 매우 불편한 위치에 있습니다. 이것이 ViM의 캐논이 1 인칭 게임에서 WASD를 사용하는 것처럼 HJKL을 사용하는 이유입니다.
— Will Vousden

4
WASD는 오른쪽이 마우스를 제어하기 때문에 왼손으로 사용하기가 더 쉽기 때문에 존재합니다. 왼손잡이는 화살표를 사용합니다. 그리고 HJKL은 너무 직관적이지 않습니다. 어느 쪽이 어디로 이동합니까?
— Vilx-

8
"화살표 대 hjkl"이 "커서 이동 대 텍스트 개체"가 아니라고 생각합니다.
— Matteo Riva

답변:



66

다음 에 무엇을 배워야하는지에 대한 아이디어를 얻을 수있는 멋진 스크린 캐스트 가 있습니다. 중급 및 고급 주제에 대한 비디오도 있지만 실제로는 초보자가 가장 중요합니다.

또한 내가 정체되고 "Vim 방식"을 배우지 않는다고 느꼈을 때 일반 모드와 삽입 모드 모두에서 화살표 키를 비활성화하도록 선택했습니다. 이것은 ESC를 사용하여 어딘가로 가도록 강요하고 Vim과 더 비슷하게 생각하게 만듭니다. 결국 삽입 모드에서 화살표 키를 다시 활성화했지만 거의 사용하지 않았습니다. 대부분의 경우 더 나은 방법이 있습니다.

map <up> <nop>
map <down> <nop>
map <left> <nop>
map <right> <nop>

특히

imap <up> <nop>
imap <down> <nop>
imap <left> <nop>
imap <right> <nop>

5
나는 화살표 키를 비활성화하는 아이디어가 마음에 들어, 강제로 사용을 중지하는 좋은 방법입니다.
— Idan K

1
저에게는 아주 잘 작동했지만 처음 며칠 동안은 매우 실망 스러웠습니다. 일단 익숙해지고 삽입 모드에서 너무 많이 움직이는 습관을 버리면 imap을 다시 활성화하는 것이 좋습니다.
— Sarah

이 스크린 캐스트는 굉장했습니다. 지적 해 주셔서 감사합니다.
— Mert Nuhoglu

2
화살표 키를 비활성화하는 것은 굉장한 아이디어입니다. 지금하고 있습니다.
— gorsky

화살표 키를 비활성화하는 것은 화살표 키가 hjkl보다 더 멀리 떨어져 있다는 가정을 기반으로합니다. 더 나은 키보드를 얻는 것이 좋습니다. Kinesis Advantage를 사용합니다. 표준 키보드를 사용하더라도 dvorak을 사용하기 때문에 hjkl은 여전히 ​​의미가 없습니다. 제가 말하고자하는 것은 "화살표 키를 사용하지 마십시오"가 아니라 "가장 효율적인 수단을 사용하고 학습 곡선 때문에 효율성 향상을 피하지 마십시오"라는 것입니다.
— 제한된 속죄

23
  1. 입력 vimtutor명령 행에
  2. vim에 들어가서 : help 또는 <F1>
  3. 메일 링리스트에 가입
  4. 공식 vim 문서

1
내가 고려하지 않은 한 가지는 메일 링리스트에 가입하는 것이 었습니다 : 지금 완료되었습니다 :)
— James

1
다른 사람의 문제를 해결하여 도움을 받고 vim 기술을 연습하기에 좋은 곳입니다.
— ghostdog74

1
+1 for vimtutor-근육 기억에 vim 방식을 적용하는 훌륭한 방법입니다.
— Hamish Downer

16

두 가지 추가 팁 :

  • Vim을 사용하여 모든 것을 편집하십시오 (이메일, 웹 양식, 코드 등). 느리게 느껴질 때 더 빠른 방법이있을 것입니다. :helpgrep당신의 친구입니다.

  • 로 향할 http://vimgolf.com/ 와 경쟁. 그런 식으로 많은 팁과 요령을 배웠습니다. [ 면책 조항 : VimGolf 에서 경쟁하는 동안 "실종"되는 오랜 시간 동안 책임지지 않습니다 .].


2
깔끔하다, 나는 vimgolf에 대해 몰랐다!
— James

1
@Autopulated : 면책 조항이 추가되었습니다.
— Johnsyweb

2
@Johnsyweb : 저는 모든 것에 vim을 사용할 수 있기를 원합니다.하지만 어떻게? 모든 웹 양식 내에서 적절한 vim 복제본을 가져 오는 것이 이상적 일 것입니다. 내가 찾은 모든 브라우저 애드온은 일반적으로 브라우저에 여전히 필요한 사실을 수용하기 위해 작은 임의의 vim 기능 하위 집합 만 구현하고 키 바인딩을 다시 매핑하기 때문입니다. 특정 키 매핑에 대한 액세스.
— Conrad.Dean 2011


10

이것이 제가 Vim을 배운 방법입니다 (그리고 다른 많은 것들). 꽤 쉽습니다.

도움말 문서를 찾아보고 항상 수행하는 작업에 대한 명령을 찾으십시오. 예를 들어 전체 단어를 삭제하십시오. 이것을 기억하는 것이 중요합니다.

이제 다음에 단어를 삭제하기 위해 'xxxxx'를 치면 중지하고 다시 입력하고 새 명령을 사용하십시오. 필요한 경우 찾아보십시오. 따라서 'xxxxxx'를 누르는 대신 돌아가서 'dw'를 누르십시오.

이 작업을 계속 반복하면 처음에는 느리지 만 결국에는 달라집니다.

명령을 내리면 맨 위에서 시작하십시오. 항상 수행하는 작업에 대한 다른 명령을 찾습니다 ...

이런 식으로 새로운 명령과 기술을 얼마나 빨리 선택할 수 있는지 놀라실 것입니다.


7

제안 된대로 화살표 키를 다시 매핑 / 비활성화하는 것은 사용하지 않도록하는 좋은 방법입니다.

고려해야 할 또 다른 사항 : 키보드에서 Esc 키를 누르는 것이 불편하다면 OS에서 Caps Lock을 Esc에 다시 매핑 할 수 있습니다. Esc는 내 KB에 대한 어색한 도달 거리이고 삽입 모드에있게하는 또 다른 장애물이기 때문에 이것은 매우 도움이되는 단계였습니다. Caps Lock에 Esc 기능을 사용하면 작은 범위에 도달 할 수 있으며 삽입 모드에 들어갔다 나오는 것이 매우 빠릅니다.

Vim에서 고급 기능을 배우는 데 가장 좋은 리소스는 : help이지만 기본 사항을 익히려면이 작업을 수행하면됩니다. 무엇보다 근육 기억입니다. 당신은 검색을 안다고 말합니다. 탐색 도구로 의식적으로 사용하십시오. 검색 [/,?] 및 인라인 문자 기반 검색 [f, F, t, T]은 Vim의 주요 탐색 도구 중 일부입니다. 그냥 사용하십시오. 비활성화 된 커서 키와 함께 사용하면 근육 메모리만으로 순식간에 탐색 할 수 있습니다.

텍스트 개체. 편집기의 가장 좋은 기능 중 하나입니다. 이것은 즉시 의식적으로 수행하는 또 다른 일입니다. 'yiw', 'dit'등과 같은 것들은 매우 강력하고 빠릅니다. 그것들을 배우고 사용하는 것만으로도 Vim 사용자처럼 느껴질 것입니다.

텍스트 개체와 기본 탐색 기능이 있으면 : help에서 정기적으로 읽고 배우고 멋진 플러그인을 위해 웹을 수색 할 차례입니다. 진지하게, Vim을 몇 년 동안 사용해도 "ah ha!" 순간적으로 당신이 알지 못했던 : help의 모호한 정보에 실수로 걸려 넘어졌습니다.


Caps Lock으로 다시 매핑하는 대신 Ctrl-C를 제안합니다. 이것은 입력하기 쉽고 리눅스 사용자들에게 매우 친숙합니다.
— BandGap

6

이 스레드보기 : Vim에서 가장 생산적인 지름길은 무엇입니까?

특히 첫 번째 대답.


3
"첫 번째"답변의 저자로서 저는 공정하게 말해야합니다. 일반적으로 편집자의 숙련도를 향상시키기위한 최고의 가이드는 아닙니다. 텍스트, 화면 / 터미널 및 편집기 자체의 환경을 조작하려는 방식을 표현하기위한 언어로 생각할 때 vi로 수행 할 수있는 작업에 대한 많은 근거를 다룹니다. 그러나 거기에있는 많은 것들은 꽤 진보 된 것입니다.
— Jim Dennis

1
나는 그 대답을 읽음으로써 많은 것을 배웠으므로 문서를 읽지 않았을 것이라고 생각하지 않습니다!
— James


3

자세히 알아 보려면 어떻게해야합니까?

vim 매뉴얼을 완전히 읽으십시오 (입력하십시오 :h. 거기에서 찾아 볼 수 있습니다). 이것이 모든 동작과 명령을 아는 방법입니다. 이미 기본 사항을 알고 있고 개선하려는 경우 가장 유용합니다.

사람들은 어떤 리소스를 추천할까요?

vim.org, 가장 인기있는 vim 스크립트 살펴보기 . 관심있는 것을 찾으면 출처를 확인하십시오. 또는 그냥 설치하고 즐기십시오. 이 사이트는 여러 언어로 된 소스 코드를 검색하는 데 도움이되는 스크립트에 대한 많은 링크로 구성되어 있습니다. 비교적 쉽게 찾을 수 있습니다.

StackOverflow.com도 도움이 될 수 있습니다 .


3

조카의 학습을 돕기 위해이 게임을 만들었는데 Firefox와 Chrome에서만 작동합니다>. < http://kikuchiyo.org

지금은 이동과 삽입 모드로 들어가는 것만 처리합니다. 베타 버전에서는 라이트 세이버, 왼쪽 'i', 오른쪽 'a'로 적을 공격 할 수 있습니다. : P

Vim을 계속 배우십시오. 노력할만한 가치가 있습니다!

:)


이제 그것은 정말 좋습니다!
— James

업데이트 : 사이트는 현재 kikuchiyos-vim-game.herokuapp.com에 있습니다.
— kikuchiyo


2

나는 여전히 화살표 키를 사용하여 이동합니다 (!).

나는 이것에 문제가 없다고 본다.

솔직히, vim과 화살표 키가없는 키보드를 사용해야 할 확률은 얼마입니까?

알다시피, 대부분의 사람들은 vim이 일을 수행하기 때문에 사용합니다 (아주 잘 됐습니다. 그들이 일을 할 때 수준까지 마스터했기 때문입니다). 엘리트 주의자가 아니기 때문입니다 (화살표 키를 사용하지 않는 것과 같은).

vim 지식 향상을위한 몇 가지 조언 :

  • 주기적으로 임의의 장소에서 vim 도움말을 열고 임의의 고유 한 기능에 대해 읽으십시오. 몇 분 정도 걸립니다. 향후 X 년 동안이 기능을 사용하지 않을 수도 있습니다. 그러나 운이 좋으면 해당 기능에 대한 지식을 적용하여 특정 작업을 수행 할 수있는 상황에 처하게 될 것입니다. 기억을 되살리기 위해 도움말을 다시 열 것입니다. 실제로 기능을 몇 번 사용하면 그대로 유지됩니다. 이 시점에서 vim 지식이 향상됩니다.
  • : helpgrep을 사용하여 문서의 임의의 위치를 ​​파헤칩니다. 무언가를해야하고 문서에서 설명하는 곳을 찾았다면 거기서 멈추지 마십시오. 문서 스 니펫을 한 번 더 읽으십시오. 키워드를 찾으십시오. 각 키워드에 대해 : helpgrep 키워드를 사용하여 vim 문서의 다른 부분과의 논리적 링크를 찾습니다.

문서를 읽는 것의 문제는 실제로 실제로 수행 하지 않고는 매우 효과적으로 학습 할 수 없다는 것입니다.
— James

1
커서 키를 사용하여 짧은 거리에서 커서를 이동하는 것은 [h], [j], [k], [l] 키를 사용하는 것만 큼 효율적일 수 있습니다. 다른 이유로 손가락이 가까이에있는 경우. 선형 커서 이동을 사용하는 것은 몇 개의 열 또는 이동 라인 이상에 대해 끔찍합니다. 일반적으로 찾고있는 것을 생각하고 / 또는?를 사용하여 vi에서 직접 표현하는 것이 가장 좋습니다. 명령 및 정규식. foo 근처의 마지막 텍스트? G? foo [Enter] (6 번의 키 입력). 첫 줄에 "바 ... 뭔가 .. 쾅? 1G / bar. * bang [Enter] (약 12 번의 키 입력) ... 등등.
— Jim Dennis

화살표 키가 마우스에 닿는 것보다 더 효율적일 수 있지만 일련의 문자를 입력 한 후 홈 행 키를 사용하여 손을 다시 그룹화하여 입력하는 경우 기본 이동 키 중 하나를 입력하는 데 필요한 동작이 없습니다. 'j', 'k', 'l', 그리고 'h'키를 얻기 위해 약간 왼쪽 'twitch'를 사용합니다. Vim 방식으로 일을한다면 손은 항상 화살표 키보다 홈 행 키에 더 가까이 있어야합니다. 계속 연습하면 얻을 수 있습니다. :)
— kikuchiyo


2

내가 화살표 키를 비활성화되지 않은 사용을 중단하는 방식 (난 아직도 삽입 모드에서 사용)하지만 당신은 그것에 대해 생각한다면 당신은 바로 인 당신의 새끼 손가락을 사용 가고 싶어하면 l키, 왼쪽 검지 손가락을 이동 중에도 h키를, 약지 위로 ( "울림") k키 & "내리기"j 키를 누릅니다.

따라서 손에있는 네 자리 중 첫 번째 (엄지 손가락은 잊어 버려) 인덱스 1이 가장 왼쪽이고 핑키가 가장 오른쪽입니다. 약지로 전화를 걸 때와 같이 "ring up"이라는 표현을 사용합니다. 가운데 손가락은 갈 곳이 없지만 아래로 갈 곳이 없습니다.

또한 키 이름 (h, j, k, l)을 잊어 버리는 데 많은 도움이됩니다. 내가 찾은 방식으로 기억하는 데 좋은 니모닉이 없으며 해당 키를 사용하는 매핑도 너무 많지 않습니다.





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