vimrc는 줄 번호를 매핑합니다.

vimrc는 줄 번호를 매핑합니다.

내 .vimrc 파일에 다음 줄이 있습니다.

:map <F9> :exe ':!gdbset bp "%:'.line(".").'"'<CR><CR>
:map <F8> :exe ':!gdbset clear bp "%:'.line(".").'"'<CR><CR>

gdb에서 중단점을 추가하고 제거하는 데 유용합니다! (내가 아는 한) 문제가 하나 있습니다... 어떤 이유로 80년대 라인 번호가 작동하지 않습니다. 85번 라인에 커서를 놓고 F9를 누르면 85번 라인에 중단점이 배치됩니다. 75번 라인에 커서를 놓고 F9를 누르면 75번 라인에 중단점이 배치됩니다.

생성된 중단점은 다음과 같습니다.

b myfile.cc:5
b myfile.cc:75

85번 국도는 열려 있지 않습니다. 80년대 제품을 테스트해봤습니다. 그들 중 누구도 작동하지 않습니다. 다른 모든 라인은 작동하는 것 같습니다. 왜? VIM 전문가 중 한 분이 이에 대해 설명해 주실 수 있을 거라 확신합니다. ":8"이 다른 명령이나 다른 것으로 해석되는 것과 거의 같습니다.

답변1

%:8유효한파일 이름 수정자이므로 Vim에서는 명령의 일부로 해석합니다 :!.

당신은 그것을 사용할 수 있습니다expand('%')수동으로 확장한 %다음 올바르게 인용하세요.shellescape(…,1):

:map <F9> :exe '!gdbset bp'       shellescape(expand('%').':'.line('.'),1)<CR><CR>
:map <F8> :exe '!gdbset clear bp' shellescape(expand('%').':'.line('.'),1)<CR><CR>

관련 정보