수색…
삽입 모드에서 나간다.
명령 | 기술 |
---|---|
<Esc> | 삽입 모드를 종료하고 자동 명령 및 약어를 트리거합니다. |
<C-[> | <Esc> 의 정확한 동의어 |
<Cc> | 삽입 모드를 남겨두고 자동 명령을 실행하지 않습니다. |
어떤 사람들은 <Esc>
또는 <C-[>
대한 단축키로 jk
와 같이 비교적 드문 문자 쌍을 사용하여 일부 키보드에서 손쉽게 도달 할 수 있습니다.
inoremap jk <Esc>l
삽입 모드로 들어가는 다른 방법들
명령 | 기술 |
---|---|
a | 현재 커서 위치 다음에 텍스트 추가 |
A | 현재 줄의 끝에 텍스트 추가 |
i | 현재 커서 위치 앞에 텍스트 삽입 |
I | 현재 줄의 첫 번째 공백이 아닌 문자 앞에 텍스트 삽입 |
gI | 커서 줄의 첫 번째 열에 텍스트 삽입 |
gi | 삽입 모드에서 마지막으로 놓은 위치와 같은 위치에 텍스트 삽입 |
O | 현재 줄 위의 새 줄을 열고 거기에 텍스트를 추가하십시오 (대문자 O ). |
o | 현재 줄 아래에 새 줄을 열고 거기에 텍스트를 추가하십시오 (소문자 o ). |
s 또는 cl | 커서 아래의 문자 삭제 및 삽입 모드로 전환 |
S 또는 cc | 전체 줄을 삭제하고 삽입 모드로 전환하십시오. |
C | 커서 위치에서 줄 끝으로 삭제하고 삽입 모드를 시작하십시오. |
c{motion} | {motion} 삭제 및 삽입 모드 시작 ( 기본 동작 참조) |
삽입 모드 바로 가기
명령 | 기술 |
---|---|
<Cw> | 커서 앞에 단어 삭제 |
<Ct> | 하나의 shiftwidth 만큼 현재 줄을 들여 씁니다. |
<Cd> | 하나의 shiftwidth 만큼 현재 줄을 shiftwidth |
<Cf> | 줄 다시 정렬 (커서를 자동 들여 쓰기 위치로 이동) |
<Ca> | 이전에 삽입 된 텍스트 삽입 |
<Ce> | 아래에 문자 삽입 |
<Ch> | 한 문자 뒤로 삭제 |
<Cy> | 위의 문자 삽입 |
<Cr>{register} | {register} 의 내용을 삽입하십시오. |
<Co>{normal mode command} | 삽입 모드를 떠나지 않고 {normal mode command} 을 실행하십시오. |
<Cn> | 현재 단어에 대한 다음 자동 완성 옵션 |
<Cp> | 이전 단어에 대한 자동 완성 옵션 |
<Cv> | 10 진수로 ASCII 값으로 문자 삽입 |
<Cv>x | 16 진수로 ASCII 값으로 문자를 삽입하십시오. |
<Cv>u | 유니 코드 값으로 16 진수로 문자 삽입 |
<Ck> | 희미한 문자를 입력하십시오. |
삽입 모드에서 정상 명령 실행하기
삽입 모드에서 <Co>
를 누르면 일시적으로 삽입 모드를 종료하고 일회용 일반 명령을 실행합니다.
예
<Co>2w
는 두 번째 단어 왼쪽으로 점프하고 삽입 모드로 돌아갑니다.
참고 :을 반복하십시오 .
삽입 모드로 복귀하는 동작 만 반복합니다.
이것은 몇 가지 유용한 매핑을 허용합니다.
inoremap <C-f> <Right>
inoremap <C-b> <Left>
inoremap <C-a> <C-o>^
inoremap <C-e> <C-o>$
이제 ctrl + a는 커서를 줄의 시작 부분에 놓고 ctrl + e -는 줄 끝 부분에 놓습니다. 이러한 매핑은 기본적으로 readline
에서 사용되므로 일관성을 원하는 사람들에게 유용 할 수 있습니다.
한 번에 여러 줄에 텍스트 삽입
Ctrl + v 를 눌러 시각적 차단 모드로 들어갑니다.
↑ / ↓ / j / k 를 사용하여 여러 줄을 선택하십시오.
Shift + i를 누르고 원하는 것을 입력하십시오.
Esc 키 를 누르면 텍스트가 선택한 모든 행에 삽입됩니다.
Ctrl + c 는 Esc 와 100 % 동일하지 않으며이 상황에서는 작동하지 않습니다.
시각적 블록 모드에서 Shift + i 를 누르면 약간 변형 될 수 있습니다.
키 | 기술 |
---|---|
c 또는 s | 선택한 블록을 삭제하고 삽입 모드로 들어갑니다. |
기음 | 선택한 선을 삭제 (커서에서 끝까지)하고 삽입 모드로 들어갑니다. |
아르 자형 | 선택한 선을 삭제하고 삽입 모드로 들어갑니다. |
에이 | 첫 번째 줄 끝의 열과 함께 선택한 줄에 추가 |
또한 누르는 것에 유의하십시오 . 시각적 블록 작업 후에 커서가있는 곳에서 해당 작업을 반복합니다!
터미널 "붙여 넣기"명령을 사용하여 텍스트 붙여 넣기
터미널 에뮬레이터 프로그램에서 paste 명령을 사용하면 Vim은 입력 된 것처럼 문자 스트림을 해석합니다. 그것은 모든 종류의 바람직하지 않은 영향, 특히 나쁜 indentation을 일으킬 것입니다.
이를 해결하려면 명령 모드에서 다음을 수행하십시오.
:set paste
그런 다음 삽입 모드로 이동합니다 (예 : i ). 이제 모드가 -- INSERT (paste) --
임을 알 수 있습니다. 이제 터미널 에뮬레이터 명령이나 마우스로 붙여 넣으십시오. 완료되면 명령 모드로 이동하여 Esc 키를 누르고 다음을 실행합니다.
:set nopaste
하나만 붙여 넣기를 원할 때 더 간단한 방법이 있습니다. 이것을 .vimrc에 넣으십시오 (또는 unimpaired.vim 플러그인을 사용하십시오) :
function! s:setup_paste() abort
set paste
augroup unimpaired_paste
autocmd!
autocmd InsertLeave *
\ set nopaste |
\ autocmd! unimpaired_paste
augroup end
endfunction
nnoremap <silent> yo :call <SID>setup_paste()<CR>o
nnoremap <silent> yO :call <SID>setup_paste()<CR>O
이제 하나 누르면 간단하게 할 수 yo
커서 아래에 코드를 붙여 넣기 한 다음 <Esc>
다시 정상 / nopaste 모드로 이동합니다.
삽입 모드에있는 동안 레지스터에서 붙여 넣기
삽입 모드에서 <Cr>
Ctrl> 키를 사용하여 다음 키 입력으로 지정된 레지스터에서 붙여 넣을 수 있습니다. <Cr>"
예 : 무명 ( "
) 레지스터의 붙여 넣기).
참조 :help registers
.
고급 삽입 명령 및 단축키
다음은 고급 삽입, 서식 지정 및 필터링 명령 / 바로 가기에 대한 빠른 참조입니다.
명령 / 바로 가기 | 결과 |
---|---|
g +? + m | 움직임 m 에서 rot13 인코딩을 수행합니다. |
n + ctrl + a | + n 은 커서 아래 번호로 |
n + ctrl + x | - 커서 아래 번호로 n |
g + q + m | 이동 선 m 을 고정 폭으로 설정 |
: r ce w | 범위 r 에서 폭 w 까지의 중심선 |
: r i | 범위 r의 줄을 들여 쓰기 i로 왼쪽 맞춤 |
: r ri w | 범위 r의 행을 너비 w로 오른쪽 정렬 |
! 엠씨 | 명령 (C)를 통해 이동 m의 필터 라인 |
n !! 기음 | 명령 c를 통해 n 줄 필터링 |
: r ! 기음 | 명령 범위 c를 통해 필터 범위 r 행 |
자동 들여 쓰기를 비활성화하여 코드 붙여 넣기
터미널 에뮬레이터를 통해 텍스트를 붙여 넣을 때 자동 들여 쓰기 기능을 사용하면 붙여 넣은 텍스트의 들여 쓰기가 손상 될 수 있습니다 .
예 :
function () {
echo 'foo'
echo 'bar'
echo 'baz'
}
다음과 같이 붙여 넣습니다.
function () {
echo 'foo'
echo 'bar'
echo 'baz'
}
이러한 경우 paste
/ nopaste
옵션을 사용하여 자동 들여 쓰기 기능을 사용 / 사용하지 않도록 설정하십시오.
:set paste
:set nopaste
여기에 더 간단하게 접근하는 방법이 있습니다 : .vimrc에 다음 줄을 추가하십시오 :
set pastetoggle=<F3>
클립 보드에서 붙여 넣기를 원할 경우 insert
모드에서 F3
을 누르고 붙이기 만하면됩니다. paste
모드를 종료하려면 F3
다시 누릅니다.