2012-08-02 2 views
1

Emacs에서, C-c으로 시작하는 키 시퀀스는 일반적으로 개별 사용자가 설정할 수 있도록 예약되어 있습니다. 나는 최소한 하나 이상의 대회도 있다고 생각한다.빔 사용자 정의 키 바인딩 규칙?

Vim의 맞춤 키 바인딩 규칙은 무엇입니까?

답변

3

<leader> 키가 접두사로 붙은 명령을 규칙으로 사용하여 자신의 개별 키맵을 기본 키 맵과 구분할 수 있습니다.

당신의 .vimrc 파일에서이 같이하여 <leader> 키를 설정합니다

nnoremap <leader><space> :noh<cr> 
:

let mapleader = "_" 

그럼 당신이 좋아하는 당신이 당신의 지도자를 설정대로로 시작하는 키 매핑을 만들 수 있습니다

더 많은 정보를 원하시면 here

+2

리더 기본값을'''에 \\'''많은 사람들이 그것을',' – Conner

+0

으로 설정합니다. @Conner - 그 위치는 주로 그들이 어디서 왔는지, 키보드 레이아웃에 따라 달라집니다.예를 들어, 제 경우 (크로아티아어 레이아웃)에서 \는 매우 불편할 것입니다. Shift 키를 사용해야하기 때문입니다. 이 부분에서 쉼표는 오히려 인기가 있습니다. – Rook

+1

어느 쪽도 지원하지 않았습니다. 정보를 추가하는 중입니다. – Conner

1

이맥스에서 나는 대중적인 선택으로 많은 것이 었습니다.

Vim에서도 Ctrl + 뭔가 또는 F 키가 널리 사용되지만 널리 퍼진 "컨벤션"과는 거리가 있습니다.

대부분의 Vim 사용자는 텍스트 편집에서 정상 모드에서 기본 "문자 작업"을 사용하기 때문에 대부분의 Emacs 사용자는 기능에 의존해야합니다.

1

기본적으로 아무 것도 수행하지 않는 백 슬래시가 있습니다. 맵핑 리더의 기본값 (mapleader와 maplocalleader 모두) 만 있습니다. 이 리더는 플러그인에서 사용되며 기본적으로 첨부 된 기본 동작이있는 키를 사용하여 해당 사용자에게만 남겨 둘 것을 강력히 권장하지만 그다지 유용하지는 않습니다. 공통 키는 , (반대 방향으로 t/T/f/F 동작 반복) 및 _ (첫 번째 비 공백 문자에서 한 행 아래로 이동), 사용하지 않는 것을 확인할 수 있습니다 (I, 예를 들어, +-을 사용하지 마십시오. 후자는 _을 대체합니다. @ stonesam92 달리 내가 대신 그들에게 mapleader를 설정하지하시기 바랍니다 이유는 바로 다음과 같다 당신의 매핑에 자신의 지도자를 넣어 :

  1. 플러그인을 가능하게 자신의 사람과 충돌 매핑을 추가 할 수 있습니다.
  2. ,a, _a 또는 <Leader>a이 아닌 다른 형식을 사용하는 경우가 있습니다.
  3. 맵핑 명령은 vimrc (<Leader>)에서의 위치에 따라 다르게 작동합니다. 맵퍼 명령을 변경하면 이미 정의 된 매핑이 변경되지 않습니다.
  4. 독서가 난독 화됩니다. 항상 기억해야 할 것은 <Leader>입니다. 당신이 플러그인을 작성하는 경우

, 항상 <Leader>를 사용하며, 두 가지 일반적인 솔루션은 글로벌 옵션을 사용하고 hasmapto를 사용하여 사용자에게 맞게 사용자 정의 할 수있는 더 좋은 방법을 떠나 :

" Global option 
if !exists('g:plugin_mapping_key') 
    let g:plugin_mapping_key='<Leader>a' 
endif 
execute 'nnoremap '.g:plugin_mapping_key.' :DoSomething<CR>' 

" hasmapto 
nnoremap <Plug>PluginDoSomething :DoSomething<CR> 
if !hasmapto('<Plug>PluginDoSomething', 'n', 0) 
    nmap <Leader>a <Plug>PluginDoSomething 
endif