Mapping은 제가 가장 좋아하는 vim 기능입니다. 이를 통해 나만의 단축키를 자유롭게 설정할 수 있어 글쓰기 효율성이 크게 향상될 수 있습니다. 매핑이란 더 복잡한 키를 누르기 쉬운 소수의 키로 대체할 수 있는 단축키를 설정하는 것으로 이해할 수 있습니다.
매핑을 사용해야 하는 경우
다음 문제 중 하나 이상이 발생하는 경우 매핑을 사용할 수 있습니다.
현재 키가 만족스럽지 않습니다
몇 가지 단축키를 설정하여 개선하고 싶습니다. 편집 속도
새로운 요구 사항을 완료하기 위해 일부 키를 결합하고 싶음
매핑 분류
vim에는 여러 모드가 있으며 이에 따라 매핑에는 nmap(일반 매핑)도 포함된다는 것을 알고 있습니다. imap(삽입 매핑), vmap(블록 선택 매핑).
이 세 가지 매핑에 대해 이야기하기 위해 몇 가지 사례를 선택해 보겠습니다.
노멀 매핑
" 使用F1切换显示行号 nmap <F1> :set nu! nu?<cr>
여기서 CR은 Enter 키를 의미합니다.
삽입 매핑
" 使用jj来代替esc键,完成从插入模式退回到普通模式 imap jj <esc>`^
일반적으로 삽입 모드에서 일반 모드로 빠르게 전환하려면 esc 키 대신 jj를 사용합니다.
" 在插入模式下向前向后删除字符 imap <C-b> <Backspace> imap <C-d> <Esc>lxi
여기서 c는 Ctrl 키를 나타냅니다. 삽입 모드에서 Ctrl+B를 사용하면 한 문자를 뒤로 삭제할 수 있고 Ctrl+D를 사용하면 한 문자를 앞으로 삭제할 수 있습니다.
블록 모드 매핑
일반적으로 우리는 여러 줄로 된 텍스트의 들여쓰기를 늘리거나 줄이는 경우가 많습니다. 이전 기사에서 언급했듯이 이 요구 사항은 명령줄과 결합된 블록 선택 또는 매크로를 통해 달성할 수 있습니다. 오늘은 매핑을 배운 후 더 간단한 방법을 사용하여 요구 사항을 충족할 수 있습니다.
vmap < <gv vmap > >gv
이제 여러 줄을 들여쓰려면 해당 줄을 선택하고 > 또는 <를 누르기만 하면 됩니다.
재귀적 매핑
다음 매핑을 하면 어떻게 될까요?
nmap dd O<esc>jddk
dd를 실행하면 심각한 문제가 발생합니다. 매핑의 양쪽에 dd가 있으므로 무한 루프가 발생합니다. 이 무한 루프는 재귀에 의해 발생하므로 재귀 매핑이라고 합니다.
보시다시피 재귀 매핑은 해롭기 때문에 업무상 재귀 매핑은 절대 사용을 금하고, 비재귀 매핑은 반드시 사용해야 합니다. 그렇다면 비재귀 매핑을 수행하면 어떻게 될까요? 그것도 매우 간단합니다. nore
nmap recursive nnoremap non-recursive
imap recursive inoremap non-recursive
vmap recursive vnoremap non-recursive
위 내용은 Vim이 더 잘 작동하도록 만들기 - VIM 매핑의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!