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.