vim 편집기에서 명령을 추가하는 방법은 무엇입니까?


86

소스 코드 파일 이름이 "foo.c"라고 가정합니다. 편집하고 디버깅하는 동안 항상이 명령을 실행합니다 :-

:! gcc -g foo.c -o foo; gdb foo

": debug"를 입력하면 위 명령이 실행되도록 Vim에 사용자 지정 명령을 추가 할 수 있습니까? 어떻게하면 되나요?

답변:


102

예. Vim 문서, 섹션 40.2, 명령 줄 매핑 :

Vim 편집기를 사용하면 고유 한 명령을 정의 할 수 있습니다. 다른 명령 줄 모드 명령과 마찬가지로 이러한 명령을 실행합니다. 명령을 정의하려면 다음과 같이 ": command"명령을 사용하십시오.

: 명령 DeleteFirst 1 삭제

이제 ": DeleteFirst"명령을 실행하면 Vim은 ": 1delete"를 실행하여 첫 번째 줄을 삭제합니다.

참고 : 사용자 정의 명령은 대문자로 시작해야합니다. ": X", ": Next"및 ": Print"는 사용할 수 없습니다. 밑줄은 사용할 수 없습니다! 숫자를 사용할 수 있지만 권장하지 않습니다.

그 줄을 당신의 ~/.vimrc(이니셜 :에서 마이너스로) 넣으면 vim을 시작할 때마다 정의됩니다. 또한 %:t편집중인 파일을 참조하는 데 사용하십시오 (쓰기 ! gcc %:t는로 대체 됨 ! gcc foo.c).

한 파일 또는 특정 파일에 대해서만 정의하려는 경우 자동 명령 을 원합니다 .


4
기존 명령을 바꾸려면을 사용해야 command!합니다.
phyatt

14

Vim은 이미 Makefile (: make)을 지원합니다 . 소스를 위해 소스를 생성하면 원하는 것을 지정할 수 있습니다. 또한 ctags를 통해 Vim은 컴파일 중에 발견 된 오류를 반복 할 수 있습니다.


5

사용자 정의 vi 편집기 명령을 추가하십시오.

이렇게하면 사용자 :Legend가 일반 모드에서 입력 할 때 텍스트 블록이 커서 아래에 추가됩니다.

1 단계 :이 행을 ~ / legend_header.txt라는 파일에 넣습니다.

this text will be added

2 단계 :이 명령을 ~ / .vimrc 파일에 넣습니다 (파일이 없으면 작성).

"The following command puts the contents of ~/legend_header.txt 
"under the cursor when the user types ":Legend" in normal mode.
command Legend :r ~/legend_header.txt

3 단계 : vi를 다시 시작하여 변경 사항을 적용합니다. 끝났습니다.

그것을 테스트

1 단계 : vi에서 새 파일을 엽니 다. vi에서 기본 "정상 모드"에 있어야합니다. 유형:Legend

2 단계 : 내용이 ~/legend_header.txt커서가있는 곳에 추가되어야합니다.


0

.vimrc에서이 명령을 사용하여 C 코드를 컴파일하고 실행합니다.

:command Gcc !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; chmod o+x $1; $1

그러나 귀하의 요구에 따라 다음을 넣을 수 있습니다.

:command Gdb !set $1 `echo "%" | sed 's/\.c//g'` ;gcc -o $1 "%" ; gdb $1

exec 파일의 이름이 확장자가 .c 인 소스 이름인지 확인할 수 있습니다.

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