수색…


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\ 입니다.

vimrcvim 디렉토리의 표준 위치는 해당 $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 에는 플러그인 목록이 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow