답변:
let
변수 set
에 값을 할당하고 Vim의 내부 옵션 중 하나에 값을 할당합니다.
예를 들어
:let mystring='Hello!'
새로운 변수를 선언하기 위해 사용하지만
:set tabstop=4
또는
:set expandtab
Vim의 옵션 중 하나를 설정합니다.
참조 : :help let
, :help set
.
g:
단순히 전역 변수를 나타냅니다. 다음과 같은 "가변 네임 스페이스"가 있습니다 :help internal-variables
.
(nothing) In a function: local to a function; otherwise: global
|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.
:set
내부 옵션에 사용되며 옵션 유형을 처리합니다. 부울 옵션의 반전 (예 :)을 :set invpaste
목록에서 추가 및 제거 (예 :)하는 것을 허용 :set dictionary-=/tmp/myfile
합니다.
:let
한편, 대신과 같은 간단한 값 등 일반적인 변수, 옵션, 레지스터 및 가치 세트를 포함 정력 변경 것들의 과다에 액세스 식의 계산 결과 인 허용 :set
하는 수단 :let
수학, 문자열 조작 및 함수에 액세스 할 수 있습니다.
예를 들어, :let &dictionary=/tmp/myfile
옵션 'dictionary'
을 /tmp/myfile
다음과 같이 설정할 수 있습니다 (따라서 :set
예 에서 위에 표시된 것과 동일한 옵션 수정 )
로 전역 변수를 설정할 수 있습니다 :let g:myvar=42
. 요청한 접두사는 범위를 제공합니다. Doorknob의 답변 은 범위를 매우 잘 다루고 있습니다.
당신은 할 수 :let @a="Some text"
A가 포함하는 레지스터의 내용을 변경하려면 Some text
나중에 페이스트 수있는, "ap
예를 들어.
:let $PATH = $PATH . ":/home/me/bin"
자신의 bin 디렉토리를 PATH
환경 변수 에 추가 할 수 있습니다 . 환경 변수는 Vim에 의해 실행되는 외부 명령으로 전달됩니다 (이것은 모든 환경 변수에서 작동합니다).
환경 변수를 현재 버퍼의 파일 이름으로 설정하는 let
것과 같이 꽤 강력한 기능이 있지만 :let $MYFILE = @%
설정이 부울인지 알지 못하므로 멋진 액세스 또는 오류 검사 기능을 제공 :set
하지 않습니다.
결국 작업에 가장 적합한 도구를 사용하는 것입니다. 단순히 옵션을 수정하려면 :set
도구가 필요합니다. 레지스터, 옵션, 변수 사이에서 정보를 이동하거나 표현식의 결과에 따라 값을 설정하려면 :let
도구가 필요합니다.
명시 적으로 빔에 대해 질문했지만, 참고 또 다른 것은 즉 :set
이 VI / 빔 가족, 더 일반적이다 :let
덜 일반적이다 (예를 들어, NVI는없는 let
명령을하고, viemu를 통해 레지스터에 대한 액세스를 제공하지 않습니다 let
) .
let
을 수행 하여 vim의 내부 옵션을 설정할 수 있습니다.let &{option name}=value