:echo @%
몇 번 검색한 후에 vim 화면의 맨 아래 줄에 현재 파일 이름이 표시된다는 것을 알게 되었습니다 .
.vim
이를 수행할 수 있는 방법이 있습니까?
답변1
현재 파일 이름은 "%
레지스터에 있으므로 ; (삽입 모드에서)을 사용하여 삽입할 수 있습니다 <c-r>%
. 전체 경로 삽입을 사용할 수 있습니다 <c-r>=expand("%:p")
. 자주 사용하시면 매크로를 만들어서 사용하시면 됩니다. 이와 같은 추가 팁을 보려면 :h expand
및 을 참조하세요 :h "=
.
답변2
이 작업을 수행하는 다른 방법이 있을 것이라고 확신합니다... 하지만 원하는 주요 명령은 :r[ead]
명령의 출력을 버퍼에 삽입하는 것입니다.
따라서 파일 이름을 삽입하면 됩니다.
:r! echo %
그리고 전체 경로를 포함하려면 다음을 수행하세요.
:r! echo %:p
자세한 내용은:
:help read
:help filename-modifiers
답변3
그림에서 볼 수 있듯이 :h registers
레지스터 "%
에는 현재 파일 이름이 포함되어 있습니다. 이 :pu[t]
명령은 레지스터의 내용을 텍스트에 삽입합니다.
따라서 실제 파일 이름을 삽입하려면 명령 모드에서 다음 명령 중 하나를 입력하면 됩니다.
:put %
또는
"%p
전체 경로와 함께 파일 이름을 삽입하려면 다음을 입력하십시오.
:put=expand('%:p')
명령 모드에서.
추가 정보:
:h pu[t]
입력하면 "rp
레지스터의 내용을 붙여넣을 수 있습니다 "r
.
답변4
이 작업을 자주 수행해야 하는 경우 아래와 같이 키 시퀀스를 원하는 항목에 바인딩하는 것이 유용할 수 있습니다.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
(줄의 선행 콜론은 선택 사항임).