2008-09-10 4 views
5

vim으로 더 많은 것을 개발하면서 Eclipse의 "템플릿"과 비슷한 유용한 코드 블록으로 복사하려고합니다.vim에서 코드 청크 및 매크로에 가장 적합한 전략은 무엇입니까?

나는 각 코드 청크에 대해 별도의 파일을 생각 그냥

:r code-fornext 

그들을에서 읽기하지만 그건 그냥 가지 원시적 인 것 같다되었다. 주변에서 인터넷 검색을하면 vim 매크로가 언급되고 "지도"에 대해서는 뭔가 있지만 직설적 인 것은 없다는 것을 알게됩니다.

내가 찾고있는 것은 예 : 이클립스의 "Templates"와 같은 것이므로 커서가있는 코드 덩어리가 그 중간에 위치한다. 또는 JEdit의 "매크로"를 사용하면 한 줄에 복잡한 삭제 및 이름 바꾸기를 기록한 다음 10 개의 다른 줄에서 다시 재생할 수 있으므로 동일한 효과를 나타냅니다.

vim에는 이러한 두 가지 기능이 있습니까?

답변

8

Vim에 매크로를 기록하려면 명령 모드에서 q 키와 매크로를 할당 할 다른 키를 누릅니다. 빠른 던져 멀리 매크로 난 보통 qq 타격을 q 키에 매크로를 할당합니다. 녹화 모드에 들어가면 키 스트로크를 실행하십시오. 완료되면 명령 모드로 돌아 왔는지 다시 확인하고 q을 다시 눌러 녹음을 중지하십시오. 그런 다음 수동으로 매크로를 재생하려면 @q을 입력하면됩니다. 당신이 @@를 입력 할 수 있습니다 또는 당신이 [email protected] 또는 [email protected] 등을 입력 할 수 있습니다 10 번 실행 이전에 실행 된 매크로 .. 요약

재생하려면 코드 덩어리에 관해서

+----------------------------------+-------------------------------------+ 
| start recording a macro   | qX (X = key to assign macro to)  | 
+----------------------------------+-------------------------------------+ 
| stop recording a macro   | q         | 
+----------------------------------+-------------------------------------+ 
| playback macro     | @X (X = key macro was assigned to) | 
+----------------------------------+-------------------------------------+ 
| replay previously played macro | @@         | 
+----------------------------------+-------------------------------------+ 

를, 내가 찾은 및 snipMate라는 Vim 플러그인을 사용하여 TextMate의 스 니펫 기능을 모방합니다. 여기에 플러그 - 더를 얻을 수 있습니다 :

http://www.vim.org/scripts/script.php?script_id=2540

그리고 (사용을 보여주는 짧은 스크린 캐스트와 함께) snipMate 사용에 대한 짧은 기사 :

http://www.catonmat.net/blog/vim-plugins-snipmate-vim/

당신이 찾아내는 희망을 도움이!

+0

은 @@ 버전 만 7 작동하는 것 같다,하지만 난 버전 6에서 @q로 호출 할 수 있습니다, 매우 유용합니다, 감사합니다! –

0

vim.wikia에서 스 니펫 및 약어 확장 전용 인 category of tips을 찾을 수 있습니다. 또한 복잡한 스 니펫/템플릿 파일의 정의를 쉽게 해주는 플러그인 목록을 볼 수 있습니다.

HTH,

관련 문제