수색…
vimrc 파일
.vimrc
파일 (Vim-wreck라고 발음 함)은 Vim 구성 파일입니다. Vim이 시작할 때마다 Vim에 의해 실행될 명령을 보유합니다.
기본적으로 파일은 비어 있거나 존재하지 않습니다. 이를 사용하여 Vim 환경을 사용자 정의 할 수 있습니다.
Vim이 vimrc 파일을 저장할 위치를 찾으려면 Vim을 열고 다음을 실행하십시오.
:echo $MYVIMRC
Unix : Mac이나 Linux와 같은 Unix 시스템에서 vimrc는 .vimrc
라고 불리며 일반적으로 홈 디렉토리 ( $HOME/.vimrc
)에 있습니다.
Windows : Windows에서는 _vimrc
라고하며 홈 디렉토리 ( %HOMEPATH%/_vimrc
)에 있습니다.
시작할 때 Vim은 여러 위치에서 vimrc 파일을 검색합니다. 존재하는 첫 번째가 사용되고 나머지는 무시됩니다. 전체 참조는 :h $MYVIMRC
문서를 참조하십시오.
어떤 옵션을 사용할 수 있습니까?
어떤 옵션을 사용해야할지 모르는 경우 :options
명령에 관심이있을 수 있습니다.
그러면 모든 Vim 옵션이 나열되고 현재 값이 표시된 분할이 열립니다. 시도 할 수있는 모든 옵션을 표시하는 섹션이 26 개 있습니다.
예
4 displaying text
scroll number of lines to scroll for CTRL-U and CTRL-D
(local to window)
set scr=20
scrolloff number of screen lines to show around the cursor
set so=5
wrap long lines wrap
set nowrap wrap
...
값 행 (예 : set nowrap
)에서 CR 을 눌러 값을 전환 할 수 있습니다 (이진 값 인 경우). 옵션 행 (예 : wrap long line wrap
)에서 CR 을 눌러이 옵션에 대한 문서에 액세스 할 수 있습니다.
파일 및 디렉토리
Vim을 사용자 정의하기 위해 무엇을 하든지, $HOME
외부에서 절대로 일어나서는 안됩니다 :
- Linux, BSD 및 Cygwin에서
$HOME
은 보통/home/username/
이고, - Mac OS X에서
$HOME
은/Users/username/
이고, - Windows에서
$HOME
은 일반적으로C:\Users\username\
입니다.
vimrc
및 vim
디렉토리의 표준 위치는 해당 $HOME
디렉토리의 루트에 있습니다.
유닉스 계열 시스템에서
$HOME/.vimrc <-- the file $HOME/.vim/ <-- the directory
Windows에서
$HOME\_vimrc <-- the file $HOME\vimfiles\ <-- the directory
위의 레이아웃은 현재 및 미래에 작동하도록 보장됩니다.
Vim 7.4는 멋진 vimrc
를 vim
디렉토리에 보관할 수있게 해줍니다. 정말 좋은 생각입니다. 왜냐하면 설정을 바꾸는 것이 더 쉽기 때문입니다.
7.4를 독점적으로 사용한다면 다음과 같이 충분할 것입니다 :
유닉스 계열 시스템에서
$HOME/.vim/vimrc
Windows에서
$HOME\vimfiles\vimrc
자체 포함 된 vim/
의 이점을 원하지만 7.4 버전과 이전 버전 또는 이전 버전을 모두 사용하는 경우 가장 단순하고 미래 보장적인 솔루션은이 줄과이 줄만 넣는 것입니다 .
runtime vimrc
이 파일에서 :
유닉스 계열 시스템에서
$HOME/.vimrc
Windows에서
$HOME\_vimrc
$HOME/.vim/vimrc
또는 $HOME\vimfiles\vimrc
에서 구성을 수행하십시오.
옵션
세 가지 종류의 옵션이 있습니다.
- 부울 옵션,
- 문자열 옵션,
- 숫자 옵션.
옵션 값을 확인하려면,
- 사용
:set option?
옵션 값을 확인하려면, - 사용
:verbose set option?
그것이 마지막으로 설정된 곳을 또한 볼 수 있습니다.
부울 옵션 설정하기
set booloption " Set booloption.
set nobooloption " Unset booloption.
set booloption! " Toggle booloption.
set booloption& " Reset booloption to its default value.
문자열 옵션 설정
set stroption=baz " baz
set stroption+=buzz " baz,buzz
set stroption^=fizz " fizz,baz,buzz
set stroption-=baz " fizz,buzz
set stroption= " Unset stroption.
set stroption& " Reset stroption to its default value.
숫자 옵션 설정하기
set numoption=1 " 1
set numoption+=2 " 1 + 2 == 3
set numoption-=1 " 3 - 1 == 2
set numoption^=8 " 2 * 8 == 16
표현식을 값으로 사용
연결 사용 :
execute "set stroption=" . my_variable
사용
:let
:let &stroption = my_variable
참조 :help :set
및 :help :let
.
매핑
- 매핑 후에 주석을 달지 마라.
- 사용
:map <F6>
을 매핑하여<F6>
매핑 된 모드와 모드를 확인하십시오. - 사용
:verbose map <F6>
을 사용하여 마지막으로 매핑 된 위치를 확인하십시오. -
:map
와:map!
너무 일반적입니다. 사용:n[nore]map
일반 모드 매핑을위한:n[nore]map
, 삽입 모드를위한:i[nore]map
, 비주얼 모드를위한:x[nore]map
등.
재귀 적 매핑
맵핑에서 다른 맵핑을 사용하려는 경우 에만 재귀 적 맵핑을 사용하십시오.
nnoremap b B
nmap <key> db
이 예제에서 b
는 정상 모드에서 B
처럼 작동하도록 만들어졌습니다. 재귀 적 매핑에서 b
를 사용하기 때문에 <key>
를 누르면 db
와 같지 않은 dB
처럼 작동합니다.
비 재귀 적 매핑
매핑에서 기본 명령을 사용하려는 경우 에만 비 재귀 매핑을 사용하십시오. 이는 거의 항상 원하는 것입니다.
nnoremap <key> db
이 예에서는 비 재귀 적 매핑에서 b
를 사용하므로 b
를 재 맵핑했는지 여부와 상관없이 key를 누르면 db
와 같이 항상 작동합니다.
매핑에서 명령 실행
nnoremap <key> :MyCommand<CR>
매핑에서 여러 명령 실행하기
nnoremap <key> :MyCommand <bar> MyOtherCommand <bar> SomeCommand<CR>
매핑에서 함수 호출하기
nnoremap <key> :call SomeFunction()<CR>
<Plug>
매핑 매핑하기
map <key> <Plug>name_of_mapping
:help map-commands
, :help key-notation
및 :help <plug>
.
더 자세한 내용 은 Vim의 키 매핑 (Key Mappings in Vim) 을 참조하십시오.
변수
대부분의 스크립팅 언어와 마찬가지로 vimscript에는 변수가 있습니다.
다음과 같이 변수를 정의 할 수 있습니다 :let
명령 :
let variable = value
다음과 같이 삭제하십시오 :unlet
:
unlet variable
Vim에서 변수는 단일 문자와 콜론을 이름 앞에 붙여서 범위를 지정할 수 있습니다. 플러그인 작성자는이 기능을 사용하여 옵션을 모방합니다.
let g:plugin_variable = 1
참고 :help internal-variables
.
명령들
- 다음 번에 vimrc를 다시로드 할 때 Vim이 해당 명령을 덮어 쓸 수있게하는 것을 잊지 마십시오.
- 사용자 정의 명령은 대문자로 시작해야합니다.
예제들
command! MyCommand call SomeFunction()
command! MyOtherCommand command | Command | command
- 참조
:help user-commands
.
기능들
- 다음에 함수가 정의 된 스크립트를 다시로드 할 때 Vim이 해당 함수를 덮어 쓸 수있게하는 것을 잊지 마십시오.
- 사용자 정의 함수는 대문자 (전역 함수) 또는
s:
(스크립트 로컬 함수)로 시작해야하며, 정의 된 자동로드 플러그인과 관련된 이름 앞에 접두사가 있어야합니다 (예 :{&rtp}/autoload/foo/bar.vim
foo#bar#functionname()
)을 정의 할 수 있습니다. - 함수에서 매개 변수를 사용하려면
a:parameter_name
사용a:parameter_name
. 가변 기능을 생략하여 정의 될 수있다...
파라미터 사용에 액세스하기 위해a:000
(모든 파라미터의 목록), 또는a:0
(파라미터의 수와 동일한len(a:000)
)a:1
제 명명 매개 변수 등이 있습니다. - 함수는 다음과 같이 호출 할 수 있습니다.
:call MyFunction(param1, param2)
- 함수의 모든 행은 암시 적으로 a
:
시작하며, 따라서 모든 명령은 콜론 명령입니다 - 함수가 오류로 인해 실행을 계속하지 못하도록하려면 함수 시그니처에
abort
으로 주석을 추가하는 것이 가장 좋습니다
예
function! MyFunction(foo, bar, ... ) abort
return a:foo . a:bar . (a:0 > 0 ? a:1 : '')
endfunction
스크립트 함수
함수가 정의 된 파일에서만 함수를 사용할 계획이라면 (더 작은 부분에서 더 큰 함수를 깨뜨렸거나 명령, 매핑 등에서 사용하기 때문에) 접두사를 붙일 수 있습니다 그것은 s:
와 함께 쓸모없는 내부 함수로 전역 네임 스페이스를 낭비하는 것을 피한다.
function! s:my_private_function() " note we don't need to capitalize the first letter this time
echo "Hi!"
endfunction
매핑에서 s : functions 사용
스크립트 로컬 함수가 매핑에서 사용될 경우 특수 <SID>
접두사를 사용하여 참조해야합니다.
nnoremap <your-mapping-key> :call <SID>my_private_function()<CR>
참고 :help user-functions
.
그러나 Vim 7 이후에는 (ft) 플러그인에서 매핑 약어, 명령 및 메뉴를 정의하고 자동로드 플러그인에서 기능을 정의하는 것이 가장 좋습니다. 플러그인로드시 사용할 함수는 제외합니다. 이것은 요즘 매핑에서 스크립트의 로컬 함수를 호출해야 할 필요가 있다는 것을 의미합니다.
자동 명령 그룹
- 자동 명령 그룹은 조직에 적합하지만 디버깅에도 유용 할 수 있습니다. 자유롭게 사용하거나 사용하지 않도록 설정할 수있는 작은 네임 스페이스로 생각하십시오.
예
augroup MyGroup
" Clear the autocmds of the current group to prevent them from piling
" up each time you reload your vimrc.
autocmd!
" These autocmds are fired after the filetype of a buffer is defined to
" 'foo'. Don't forget to use 'setlocal' (for options) and '<buffer>'
" (for mappings) to prevent your settings to leak in other buffers with
" a different filetype.
autocmd FileType foo setlocal bar=baz
autocmd FileType foo nnoremap <buffer> <key> :command<CR>
" This autocmd calls 'MyFunction()' everytime Vim tries to create/edit
" a buffer tied to a file in /'path/to/project/**/'.
autocmd BufNew,BufEnter /path/to/project/**/* call MyFunction()
augroup END
참고 :help autocommand
.
조건부
if v:version >= 704
" Do something if Vim is the right version.
endif
if has('patch666')
" Do something if Vim has the right patch-level.
endif
if has('feature')
" Do something if Vim is built with 'feature'.
endif
참조 :help has-patch
및 :help feature-list
.
설정 옵션
일반적으로 다음을 사용 :set
당신의 원하는대로 옵션을 설정할 수 .vimrc
. 변경할 수있는 옵션이 많이 있습니다.
예를 들어 들여 쓰기에 공백을 사용하려면 다음과 같이하십시오.
:set expandtab
:set shiftwidth=4
:set softtabstop=4
구문 강조
터미널에 색상이있는 경우 구문 강조 표시 켜기
if &t_Co > 2 || has("gui_running")
syntax on
end
뒤 공백과 탭을 표시하십시오. 탭 표시는 Makefile에서 오류를 찾을 때 특히 유용 할 수 있습니다.
set list listchars=tab:\|_,trail:.
highlight SpecialKey ctermfg=DarkGray
색 구성표
Vim은 몇 가지 미리 설치된 색 구성표와 함께 제공됩니다. Linux에서 Vim과 함께 제공되는 색상 체계는 /usr/share/vim/vim74/colors/
(74는 버전 번호, sans 마침표 임). MacVim은 /Applications/MacVim.app/Contents/Resources/vim/runtime/colors
저장합니다.
색 구성표 변경
colorscheme
명령은 현재 색 구성표를 전환합니다.
예를 들어, 색 구성표를 "robokai"로 설정하려면 다음과 같이하십시오.
:colorscheme robokai
기본 색 구성표는 default
창의적으로 명명되었으므로 반환하려면 사용하십시오.
:colorscheme default
현재 설치된 색 구성표를 모두 보려면 다음을 입력합니다 :colorscheme
다음에 공백 을 입력 한 다음 tab 또는 ctrl을 입력 합니다. d .
색 구성표 설치
사용자가 설치 한 색상 구성표는 ~/.vim/colors/
배치 할 수 있습니다. 이 디렉토리에 색 구성표가 추가되면 colorscheme
명령의 옵션으로 나타납니다.
새로운 색 구성표를 찾으려면 다양한 색 구성표가 포함 된 vimcolors 와 같은 사이트가 있습니다. 이 같은 도구 또한 vim.ink 하고 생생하게 자신의 색 구성표 작성을 돕기 위해이, 또는 당신이 손으로 그들을 만들 수 있습니다.
열거하는 토글 라인 전환
사용하려면 다음을 입력하십시오.
:set number
또는 :set nu
.
사용 중지하려면 다음을 입력하십시오.
:set nonumber
하거나 :set nonu
.
커서 위치에 상대적으로 열거 사용하려면 - 종류 :
:set relativenumber
.
커서 위치를 기준 으로 열거를 비활성화하려면 다음을 입력하십시오.
:set norelativenumber
.
주 : 현재 행이 실제 행 번호를 표시하는지 0
인지를 변경하려면 relativenumber
속성이 활성 인 동안 :set number
및 :set nonumber
명령을 사용하십시오.
플러그인
Vim 플러그인은 vim의 기능을 변경하거나 향상시키는 데 사용할 수있는 애드온입니다.
vimawesome 에는 플러그인 목록이 있습니다.