답변:
현재 파일 이름이 "%
레지스터에 있으므로;를 사용 하여 파일 을 삽입 할 수 있습니다 (삽입 모드에서) <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>
다시 실행 명령으로 매핑 되지 않았 습니까?