을 나는 종종 (더 일반적으로 클라이언트 당) 프로젝트 당 설정의 번호를 가지고 그래서 내가 당 클라이언트 설정을 지정하는 일반화 된 방법을 가지고하는 것이 유용합니다. 나는 local.vimrc
라는 파일 (또는 더 일반적으로, <client-name>.vimrc
이름과 심볼릭 링크) 그것이 내가이 마법을하자 다음에 노력하고있어 무엇이든 프로젝트의 루트에 ...
function! LoadLocalVimrc(filename)
let l:filepath = fnamemodify(a:filename, ':h')
let l:file = findfile("local.vimrc", l:filepath . ";/")
if l:file != ''
let l:file = fnamemodify(l:file, ":p")
execute "source" l:file
execute "nnoremap <buffer> <F8> :$tabe " . s:this_file . "<CR>:sp " . l:file . "<CR>"
endif
endfunction
autocmd BufEnter * call LoadLocalVimrc(expand("<afile>"))
그런 다음 local.vimrc
사용을 만들 map <buffer> ...
및 setlocal
을 사용하여 맵핑 및 설정을 사용하는 버퍼에 로컬로 유지합니다 (다른 클라이언트의 파일을 다른 탭에로드하는 경우가 있음).
(즉, 코드에서 나는 내 vimrc에 새로운 탭에서 local.vimrc를 엽니 다 F8를 매핑하고있어 위, s:this_file
이 expand("<sfile>")
으로 다른 곳에서 캡처됩니다.)
관련 : HTTP : // 정력. wikia.com/wiki/Project_specific_settings – rgoliveira
중복 된 https://stackoverflow.com/q/456792/15934? –
@LucHermitte 아마, 잘 모르겠습니다. 프로젝트와 관련이 없기 때문에 실제로는 똑같은 유스 케이스는 아니지만 일종의 경로입니다. 그러나 모든 사람들이 정보를 추출 할 수 있어야한다고 언급 한 게시물에 너무 가깝습니다. 나는 내 대답을 삭제하고 sth의 게시물에 댓글을 달거나 거기에 그대로 둔다. 그러나 그것은 확실히 다른 제목을 가진이 사이트에 더 유용 할 수 있습니다. –