2012-12-21 1 views
6

모든 키보드 매핑이 같은 내 현재 정력 환경의의 주문 목록을 표시 할 수있는 거리에 있습니다.표시하려면 명령 VIM 키보드 매핑

+3

이 답변이 도움이 될 수 http://stackoverflow.com/a/5391019/32090 –

+0

을'삽입 내가 같은 명령을 포함하지 않습니다 좋은 것처럼 보이지만 내 플러그인 바로 가기가 표시되지 않습니다. – daniloisr

답변

5

:map:verbose map은 세션에 정의 된 매핑 목록을 보여 주지만 그러한 순서는 아닙니다. AFAIK, Vim은 좋은 포맷을 제공하지 않습니다. 사용자 정의 함수를 작성해야합니다.

편집 또한

a, b과 친구가 "매핑"CtrlP의 <C-p>가 매핑한다는 점에 있지 있습니다. :map은 전혀 표시하지 않습니다.

당신의 생각은 흥미롭지 만 한 라이너로는 불가능할 것입니다. :h index에서 정보를 가져와 :map의 결과를 추가하고 모든 것을 순서대로 정렬하려고 시도하지만 사소한 작업으로 보이지는 않습니다. 그것은 파이썬/루비/PHP 스크립트를 완벽하게 맞는 것처럼 들리지만 그렇지 않습니까?

지며 EndEdit

+0

나는 그와 같은 것이 존재한다고 생각했다. 나의 생각은 VIM 신참을 돕는 것이다. 나는 이것을 나중에 할 스크립트를 작성하려고 노력할 것이다. – daniloisr

2

사용하지 않는 키를 찾을 수있는 현재의 매핑의 정렬, 검색 목록을하려는 경우, 다음을 수행 할 수

function! s:ShowMaps() 
    let old_reg = getreg("a")   " save the current content of register a 
    let old_reg_type = getregtype("a") " save the type of the register as well 
try 
    redir @a       " redirect output to register a 
    " Get the list of all key mappings silently, satisfy "Press ENTER to continue" 
    silent map | call feedkeys("\<CR>")  
    redir END       " end output redirection 
    vnew        " new buffer in vertical window 
    put a        " put content of register 
    " Sort on 4th character column which is the key(s) 
    %!sort -k1.4,1.4 
finally        " Execute even if exception is raised 
    call setreg("a", old_reg, old_reg_type) " restore register a 
endtry 
endfunction 
com! ShowMaps call s:ShowMaps()  " Enable :ShowMaps to call the function 

nnoremap \m :ShowMaps<CR>   " Map keys to call the function 

이것은 강력한입니다 함수를 사용하여 정렬 된 출력이 :maps 인 수직 분할을 만듭니다. 나는 그것을 내 vimrc에 넣었다.

마지막 줄은 당신이 원하는대로이를 변경, 함수를 호출하기 위해 두 개의 키 \m 매핑합니다.

참고 : 도움말 index` : @romainl 언급,이 뜻이 텍스트를

+0

이 링크가 질문에 대답 할 수 있지만 여기에 답의 핵심 부분을 포함하고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. - [검토 중] (리뷰/저품절 게시물/13208001) – bcsb1001

+0

의견에 감사드립니다. 이제 코드를 포함 시켰습니다. –