수색…


삽입 모드에서 나간다.

명령 기술
<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 + cEsc 와 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 다시 누릅니다.



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