답변:
현재 파일 이름이 "%레지스터에 있으므로;를 사용 하여 파일 을 삽입 할 수 있습니다 (삽입 모드에서) <c-r>%. 전체 경로는로 삽입 할 수 있습니다 <c-r>=expand("%:p"). 자주 사용하면 매크로를 만들 수 있습니다. 더 비슷한 트릭을 참조 :h expand하고 :h "=.
<c-r>에서 다음 문자가 레지스터임을 지정합니다.
"%p일반 또는 시각적 모드 에서도 수행 할 수 있습니다 .
에서 볼 수 있듯이 :h registers의 "%레지스터는 현재 파일 이름을 포함합니다. 이 :pu[t]명령은 레지스터의 내용을 텍스트에 삽입합니다.
따라서 실제 파일 이름을 삽입하려면 명령 모드에서 다음 중 하나를 입력하십시오.
:put %
또는
"%p
전체 경로와 함께 파일 이름을 삽입하려면 다음을 입력하십시오.
:put=expand('%:p')
명령 모드에서.
더 많은 정보:
:h pu[t]
입력 "rp하면 register의 내용을 붙여 넣을 수 있습니다 "r.
:put "%:p"나를 위해 작동하지 않습니다. :와 같이 expand () 만 작동하는 것 같습니다 . 불행히도 :put =expand('%:p')덜 번거롭지 않습니다 <c-r>=expand('%:p').
이 작업을 자주 수행해야하는 경우 http://vim.wikia.com/wiki/Insert_current_filename에 따라 키 시퀀스를 원하는 것에 바인딩하는 것이 유용 할 수 있습니다.
삽입 모드에있을 때 커서 위치에 확장자없이 현재 파일 이름을 삽입합니다.
:inoremap \fn <C-R>=expand("%:t:r")<CR>확장 사용을 유지하려면
:inoremap \fn <C-R>=expand("%:t")<CR>파일이 사용중인 디렉토리의 절대 경로를 삽입하려면 다음을 수행하십시오.
:inoremap \fn <C-R>=expand("%:p:h")<CR>파일이 사용중인 디렉토리의 상대 경로를 삽입하려면 다음을 수행하십시오.
:inoremap \fn <C-R>=expand("%:h")<CR>
위의 모든 vim것은 세션에 직접 적용 되거나 .vimrc(행의 선행 콜론이 선택 사항 인)에 넣을 수 있습니다 .
<c-r>다시 실행 명령으로 매핑 되지 않았 습니까?