답변:
스크래치 버퍼 일 수 있으며 이름을 지정할 수 있습니다. 도움에서 :
할퀴다
언제든지 버릴 수있는 텍스트를 포함합니다. 창을 닫을 때 유지되며 명시 적으로 삭제해야합니다. 설정 :>
:setlocal buftype=nofile :setlocal bufhidden=hide :setlocal noswapfile The buffer name can be used to identify the buffer, if you give it a meaningful name.
에서 찾을 수 있습니다 :help special-buffers
.
:edit
파일을 사용하여 파일을 편집하면 새 버퍼가 자동으로 작성됩니다. 비어있는 버퍼는 입력하여 생성 될 수있다 :enew
거나 :new
또는 :vnew
. Vim 버퍼 FAQ에서 : vim.fandom.com/wiki/Vim_buffer_FAQ
:helpgrep scratch
은 (내 설치에서) 10 개의 결과 중 하나로 표시합니다.
주제에 대한 vim 팁 (vim.wikia로 마이그레이션 됨)을 기억합니다.
스크래치 버퍼를 만드는 데 사용하는 최신 버전의 함수도 설정합니다.
'buflisted'
거짓으로'readonly'
(내 VimL 라이브러리 플러그인에서 : lh-vim-lib)
function! lh#buffer#scratch(bname, where) abort
try
set modifiable
" The next function takes care of working around this damn E36
call lh#window#create_window_with(a:where.' sp '.escape(substitute(a:bname, '\*', '...', 'g'), '#%'))
catch /.*/
throw "Can't open a buffer named '".a:bname."'!"
endtry
setlocal bt=nofile bh=wipe nobl noswf ro
return bufnr('%')
endfunction
'스크래치'버퍼는 임의의 임시 컨텐츠를 입력하는 장소에 대한 비공식 용어입니다.
허용 된 답변과 다른 질문에 따라 vimrc에서 다음 기능을 만들었습니다.
이 함수는 현재 창에 빈 버퍼를 만들고 이름을 '스크래치'로 지정합니다. 종료하려고하면 스크래치 버퍼가 보호되지 않습니다. Vim을 종료하거나 초기화하면 저장하지 않은 변경 사항이 있더라도 메시지가 표시되지 않고 폐기됩니다 ( :bw
).
이 기능을 vimrc에 넣으십시오. 스크래치 버퍼를 만들려면을 사용하십시오 :call Scratch()
.
function! Scratch()
split
noswapfile hide enew
setlocal buftype=nofile
setlocal bufhidden=hide
"setlocal nobuflisted
"lcd ~
file scratch
endfunction
라인을 잡아 당겨서 이것을 빠르게 테스트 할 수 있습니다 :@"
. 그런 다음 시도해 볼 수 있습니다 :call Scratch()
.
스크래치 버퍼를 만들 때 현재 버퍼가 영향을받지 않도록 분할이 사용됩니다.
split
스크래치 버퍼를 만들 때 (함수에서 생략하는 것을 선호하면 현재 버퍼는 더 이상 창에 표시되지 않습니다.) Vim은 여전히 저장하지 않고 변경 사항을 저장하지 않으면 종료하라는 메시지를 표시합니다. 완충기).
스크래치 버퍼는 일반적으로 스크래치 함수를 호출 할 때 사용하는 버퍼의 작업 디렉토리와 동일합니다. 스크래치 버퍼 작업 디렉토리를 홈으로 변경하기 위해 주석 처리 된 행을 포함 시켰습니다. 이것은 현재 디렉토리의 경로를 버퍼 경로로 표시 할 수있는 상태 표시 줄이 이상한 사람들을위한 것입니다. 또는 그것을 선호하는 사람들을 위해.
스크래치 버퍼를 "listed"또는 "unlisted"(기본적으로 나열 됨)로 설정할 수 있습니다. 목록에없는 경우 목록에 표시되지 :buffers
않지만에 :buffers!
있습니다. nobuflisted
목록에없는 것을 선호하면 해당 줄의 주석을 해제하십시오 . 나열되거나 나열되지 않은 경우 언제든지 스크래치 버퍼로 변경할 수 있습니다 :b scratch
. 스크래치 버퍼를 나열하면 약간 더 쉽게 액세스 할 수 있습니다. 예를 들어 :sball
분할에 포함시킬 것입니다.
당신이 사용하는 경우 :bw
내용을 삭제하고 경고없이 버퍼를 제거 빔 버퍼 스크래치에 (버퍼 닦아). 당신이 사용하는 경우 :bd
빔 버퍼 스크래치에 (삭제 버퍼) 경고없이 내용을 삭제하고 버퍼가 목록에없는 것.
여러 스크래치 버퍼를 만들 수 있습니다 . Vim은 불평하기 시작하지만 여전히 추가 질문으로 끝납니다.
buftype=hide
하기 전에 설정하면 버퍼 이름이 "파일 이름처럼 처리되지"않기 때문에 디렉토리를 변경할 필요가 없습니다. 또한 'nobuflisted'
버퍼의 출력에 버퍼가 표시되지 않도록하는 것을 언급 할 가치가 있습니다 :ls
. 당신은 그것에 대해 암시하지만 명시 적으로 언급하지 않았습니다.
buftype=hide
실제로 말도 안되는 말입니다. 예, 실제로 이야기했습니다 buftype=nofile
:). 그러나 나는 당신이 묘사 한 행동을 재현 할 수 없으며 여전히 진술 Vim buffer names are always filenames
이 잘못 되었다고 생각합니다 . cd
함수 에서 줄을 제거한 다음 실행하면 내 상태 표시 줄이나 출력 결과에 경로가 없습니다 echo bufname('%')
. 버퍼 이름이 아닌 상태 표시 줄에 문제가 있는지 궁금합니다. 'statusline'
옵션 이 무엇으로 설정되어 있습니까?
statusline
을 사용하도록 변경 하려고 expand(&buftype == 'nofile' ? '%' : '%:p:~:h')
하지만 지금은 개인 취향의 영역에 있다고 생각합니다. 변경 디렉토리 솔루션을 고수하기로 결정했다면 :lcd
변경 사항을 해당 창으로 제한하는 것이 더 나을 수도 있지만 다시 한 번 귀하에게 달려 있습니다. 어쨌든 이것이 좋은 대답이라고 생각합니다. +1!
:h
이 도움말에 액세스하는 데 사용 된 명령은 무엇입니까?