Vim에서 접두사(b:, g:)로 시작하는 설정/명령은 무엇입니까?

Vim에서 접두사(b:, g:)로 시작하는 설정/명령은 무엇입니까?

설치했습니다이 플러그인Vundle을 사용하여 다음과 같은 몇 가지 설정(README에서는 변수라고 함)이 있음을 확인했습니다.

b:javascript_fold

그리고

g:javascript_conceal

README에는 " .vimrc해당 기능을 활성화/비활성화하기 위해 추가할 수 있습니다." 라고 나와 있습니다. 하지만 :. 이러한 변수는 set또는 를 통해서는 사용할 수 없으며 echo명령이나 함수도 아닙니다. 어떻게 설정/검사할 수 있나요?

답변1

내부 변수입니다.

다음 명령 을 사용하여 생성하고 수정합니다 :let.

:let g:var_name = 1

당신은 그들을 파괴합니다 :unlet.

으로 검사합니다 :echo.

접두사는 변수의 범위를 표시합니다. 에서 :help internal-variables:

buffer-variable    b:    Local to the current buffer.
window-variable    w:    Local to the current window.
tabpage-variable   t:    Local to the current tab page.
global-variable    g:    Global.
local-variable     l:    Local to a function.
script-variable    s:    Local to a |:source|'ed Vim script.
function-argument  a:    Function argument (only inside a function).
vim-variable       v:    Global, predefined by Vim.

이러한 종류의 변수를 추가하면 다음 ~/.vimrc과 같습니다.

let g:var_name = 1

일반적으로 전역 변수만 에 추가되고 ~/.vimrc, 버퍼 로컬 변수는 파일 형식 플러그인에서 사용됩니다.

답변2

구성 변수는 옵션이 아니며 플러그인용 변수만 "에뮬레이션"합니다. 따라서 , :set그러나 :let를 사용하지 않고 :echo현재 값을 나열합니다.

변수 앞의 상징이 변수의 범위를 결정합니다. g:글로벌을 의미합니다. 일반적으로 설정해야 하는 항목은 다음과 같습니다.~ 전에플러그인이 로드됩니다. 즉,

let g:javascript_conceal = 1

당신의 ~/.vimrc(그리고 Vim을 다시 시작하는 것).

일부 구성은 특정 항목에만 적용되므로파일 형식, 접두사를 사용합니다 b:. 이를 설정하면 ~/.vimrc처음 열린 버퍼에만 적용되며 이는 원하는 것이 아닙니다. 대신에 연결해야 합니다.파일 형식 감지기구.

특정 파일 형식에 대해서만 구성 옵션을 활성화하려면 :let b:var = value대신 사용하고 해당 명령을 에 넣으십시오 ~/.vim/after/ftplugin/{filetype}.vim. 여기서 {filetype}는 실제 파일 형식입니다(예: javascript). (이를 위해서는 다음이 필요합니다 :filetype plugin on.~ 후에디렉토리를 사용하면 에서 수행한 기본 파일 형식 설정을 무시할 수 있습니다 $VIMRUNTIME/ftplugin/{filetype}.vim.)

또는 :autocmd FileType {filetype} setlocal option=value에서 직접 을 정의할 수도 있지만 ~/.vimrc사용자 정의 항목이 많으면 다루기가 어려워지는 경향이 있습니다.

autocmd Filetype javascript let b:javascript_fold = 1

관련 정보