저는 Textmate에서 MacVim으로 전환하려는 Ruby 프로그래밍이고, VIM에서 할 수있는 작업과 모든 키 누르기에서 할 수있는 방대한 목록을 살펴 보는 데 어려움을 겪고 있습니다. 나는 “텍스트를 삽입하려면 ‘I’를 사용하고 문자 뒤에 텍스트를 추가하려면 ‘a’를 사용하거나 줄 끝에 텍스트를 추가하려면 ‘A’를 사용하거나 …”라는 말을 듣는 데 지쳤습니다. 상상할 수 없습니다. 모든 사람은 텍스트를 탐색하기 위해 20 가지 키 누르기를 모두 사용하고 텍스트를 추가하기 위해 10 개 정도의 키를 사용하며 내부 블록을 시각적으로 선택하는 18 가지 방법을 사용합니다. 아니면 당신!?
내 이상적인 치트 시트는 루비리스트가 매일 사용하는 절대 필수 플러그인과 가장 많이 사용되는 10 개의 명령과 함께 매일 코드를 작성하는 데 사용하는 30-40 개의 가장 많이 사용되는 키 누르기 또는 명령입니다. 이론적으로, 나는이 한 번 내가 TextMate를에서 오전으로 VIM 실력으로되기 시작 후 나는 나를 만들 것입니다 다른 VIM 명령의 수천 학습을 시작할 수 있습니다 더 효율적입니다.
아니면 VIM을 완전히 잘못된 방식으로 배우고 있습니까?
답변
다음은 내가 실제로 정기적으로 사용하는 명령과 함께 한 번 작성한 팁 시트입니다.
참고 문헌
일반
- 거의 모든 명령 앞에 반복 횟수를 표시 할 수 있습니다. 예. 5dd 5 줄 삭제
<Esc>
모든 모드에서 벗어나 명령 모드로 돌아갑니다.- : 뒤에 오는 명령은 화면 하단의 명령 줄에서 실행됩니다.
- : 모든 명령에 대한 도움말
항해
- 커서 이동 : ← h ↓ j ↑ k l →
- 단어로 :
- w 다음 단어 (구두점으로); W 다음 단어 (공백으로)
- b 뒤로 단어 (구두점으로); B 백 워드 (공백)
- e 끝 단어 (구두점 사용) E 끝 단어 (공백으로)
- 라인 :
- 0 줄 시작; ^ 공백이 아닌 첫 번째
- $ 줄 끝
- 단락 별 :
- { 이전 빈 줄; } 다음 빈 줄
- 파일 별 :
- gg 파일 시작; G 파일 끝
- 123G 는 특정 라인 번호로 이동
- 마커 별 :
- mx 마크 x 설정 ; ‘X는 표시로 이동 X를
- ‘. 마지막 편집 위치로 이동
- ” 점프 전 마지막 지점으로 돌아 가기
- 스크롤 :
- ^ F 전체 화면 앞으로; ^ B 전체 화면 뒤로
- ^ D 화면 절반 아래; ^ U 절반 화면 위로
- ^ E 한 줄 위로 스크롤합니다. ^ Y 한 줄 아래로 스크롤
- zz 중심 커서 라인
편집
- u 실행 취소; ^ R 다시 실행
- . 마지막 편집 명령 반복
삽입
모든 삽입 명령은 <Esc>
명령 모드로 돌아 가기 위해 종료 됩니다.
- 내가 커서에서 텍스트를 삽입; 나는 라인의 시작 부분에 텍스트를 삽입
- 커서 후 텍스트 추가; 라인의 종료 후 텍스트 추가
- o 아래에 새 줄을 엽니 다. O 위에 새 줄 열기
바꾸다
- r 단일 문자를 대체합니다. R은 여러 문자를 대체합니다.
- s 단일 문자 변경
- cw 변경 단어; C 줄 끝으로 변경; cc 전체 라인 변경
- c
<motion>
는 모션 방향으로 텍스트를 변경합니다. - ci ( 괄호 안의 변경 ( 더 많은 예제는 텍스트 객체 선택 참조 )
삭제
- x 문자 삭제
- dw 삭제 단어; D 줄 끝까지 삭제합니다. dd 전체 줄 삭제
- d
<motion>
모션 방향으로 삭제
잘라내어 붙여 넣기
- yy 붙여 넣기 버퍼에 행 복사; dd 컷 라인을 붙여 넣기 버퍼로
- p 커서 줄 아래에 버퍼를 붙여 넣습니다. P 커서 줄 위에 버퍼 붙여 넣기
- xp 두 문자 교체 ( x 는 한 문자를 삭제 한 다음 p 는 커서 위치 뒤에 다시 넣습니다)
블록
- v 시각적 블록 스트림; V 시각적 블록 라인; ^ V 시각적 블록 열
- 대부분의 모션 명령은 블록을 새 커서 위치로 확장합니다.
- o 커서를 블록의 다른 끝으로 이동
- d 또는 x 블록을 붙여 넣기 버퍼로 잘라 내기
- y 블록을 붙여 넣기 버퍼에 복사
- > 들여 쓰기 블록; < 들여 쓰기 블록
- gv 마지막 시각적 블록 다시 선택
글로벌
- : % s / foo / bar / g “foo”의 모든 항목을 “bar”로
- %는 파일의 모든 행을 나타내는 범위 입니다.
- / g는 첫 번째 대신 한 줄의 모든 항목을 변경하는 플래그입니다.
수색
- / 앞으로 검색;? 뒤로 검색
- * 커서 아래의 단어를 앞으로 검색합니다.# 커서 아래에있는 단어를 뒤로 검색
- n 같은 방향으로 다음 경기;반대 방향으로 N 다음 경기
- fx 다음 문자 x 앞으로 ; 이전 문자로 뒤로 Fx x로
- ; 같은 방향으로 같은 캐릭터로 다시 이동합니다. , 반대 방향으로 다시 같은 캐릭터로 이동
파일
- : w 디스크에 파일 쓰기
- : w
name
과 같이 디스크에 파일 쓰기name
- ZZ 디스크에 파일 쓰기 및 종료
- : n 새 파일을 편집합니다. :엔!현재 변경 사항을 저장하지 않고 새 파일 편집
- : q 파일 편집을 종료합니다. :큐!변경 사항을 저장하지 않고 편집 종료
- :이자형 동일한 파일을 다시 편집합니다 (vim 외부에서 변경된 경우).
- : e.디렉토리 탐색기
윈도우
- ^ Wn 새 창
- ^ Wj 다음 창으로 이동; ^ 이전 창으로 이동
- ^ W_ 현재 창 최대화; ^ W = 모든 창을 같은 크기로 만들기
- ^ W + 창 크기를 늘립니다. ^ W- 창 크기 줄이기
소스 탐색
- 일치하는 괄호 / 대괄호 / 중괄호 또는 언어 모듈이로드 된 경우 언어 블록으로 % 이동
- gd 커서 아래의 지역 기호 정의로 이동합니다. ^ O 이전 위치로 돌아 가기
- ^] 전역 심볼 정의로 이동 (
tags
파일 필요 ); ^ T 이전 위치로 복귀 (임의의 위치 스택 유지) - ^ N (삽입 모드) 자동 단어 완성
로컬 변경 사항 표시
Vim에는 소스 제어에서 기본 버전에서 변경된 라인을 쉽게 강조 할 수있는 몇 가지 기능이 있습니다. 이것을 쉽게 만드는 작은 vim 스크립트를 만들었습니다 : http://github.com/ghewgill/vim-scmdiff
답변
http://www.viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html
이것은 VIM을 배우는 데있어 가장 위대한 것입니다.
답변
답변
Vim의 내장 튜토리얼을 살펴 보셨습니까? 그렇지 않은 경우 명령 줄로 이동하여vimtutor
. 초기 명령을 배우는 좋은 방법입니다.
Vim은 엄청난 유연성과 성능을 가지고 있으며, 대부분의 vim 사용자와 마찬가지로 새로운 명령을 많이 배우고 오래된 명령은 잊어 버린 다음 다시 배우게됩니다. 내장 된 도움말은 훌륭하고 새로운 것을 배우기 위해 주기적으로 탐색 할 가치가 있습니다.
인터넷에 vim에 대한 몇 가지 좋은 FAQ와 치트 시트가 있습니다. vim + faq
및을 (를) 검색하는 것이 좋습니다 vim + cheatsheet
. Cheat-Sheets.org # vim 은 Vim Tips 위키 와 마찬가지로 좋은 소스 입니다 .
답변
무엇 대부분의 사람들이하는 일은 어쩌면처럼 베어 기초로 시작입니다 i, yw, yy,와 p. 계속해서 화살표 키를 사용하여 이동하고, 마우스로 텍스트를 선택하고, 메뉴를 사용하는 등의 작업을 수행 할 수 있습니다. 그런 다음 속도가 느려지는 경우 더 빠른 방법을 찾아보고 점차적으로 더 많은 명령을 추가합니다. 잠시 동안 하루에 하나의 새 명령을 배운 다음 일주일에 하나씩 새어 나올 것입니다. 한 달 안에 상당히 생산적으로 느껴질 것입니다. 1 년 후에는 꽤 견고한 레퍼토리를 갖게되고 2-3 년 후에는 손가락이 입력하는 내용을 의식적으로 생각조차하지 못하며 누군가를 위해 철자를 써야한다면 이상하게 보일 것입니다. 1993 년에 vi를 배웠지 만 여전히 1 년에 2 ~ 3 개의 새로운 명령을 선택합니다.
답변
@Greg Hewgill의 치트 시트는 매우 좋습니다. 몇 달 전에 TextMate에서 전환을 시작했습니다. 이제 저는 TM을 사용했을 때와 마찬가지로 생산성이 뛰어나고 Vim의 힘에 끊임없이 놀랐습니다.
전환 방법 은 다음과 같습니다 . 아마도 당신에게 유용 할 수 있습니다.
Grosso modo, 근본적인 전환을하는 것은 좋은 생각이 아니라고 생각합니다. Vim은 매우 다르며 점진적으로 진행하는 것이 가장 좋습니다.
그리고 당신의 subquestion에 대답하기 위해, yes, 저는 iaIAoO
삽입 모드로 들어가기 위해 매일 사용 합니다. 처음에는 확실히 이상해 보이지만 잠시 후에는 생각하지 않습니다.
프로그래밍 관련 작업에 매우 유용한 일부 명령 :
r
및R
문자를 대체<C-a>
및<C-x>
증가와 숫자가 감소합니다cit
HTML 태그의 내용을 변경하는 그 변종 (cat
,dit
,dat
,ci(
, 등)<C-x><C-o>
,,
omnicompletion을 위해 (에 매핑 됨 )- 시각적 블록 선택
<C-v>
- 등등…
Vim 방식에 익숙해지면 다른 편집기 또는 텍스트 필드에서 텍스트를 편집 할 때 o
또는 x
항상 누르지 않는 것이 정말 어려워집니다 .
답변
모든 사람이 텍스트를 탐색하는 데 20 개의 다른 키 누르기, 텍스트 추가를 시작하는 데 10 개 정도의 키, 내부 블록을 시각적으로 선택하는 18 가지 방법을 모두 사용한다고 상상할 수 없습니다. 아니면 당신!?
나는한다.
이론적으로는 일단 내가 Textmate에서와 마찬가지로 VIM에 능숙 해지기 시작하면 더 효율적으로 만들 수있는 수천 개의 다른 VIM 명령을 배울 수 있습니다.
이것이 올바른 방법입니다. 기본 명령으로 시작한 다음 생산성을 향상시키는 명령을 선택하십시오. 나는 vim으로 생산성을 향상시키는 방법에 대한 팁을 위해이 블로그 를 팔로우하는 것을 좋아합니다.