Vim : 비주얼 블록 모드에서 삽입하는 방법?


145

Vim에서 비주얼 블록 모드 (ctrl-V를 누름)에있을 때 어떻게 삽입 할 수 있습니까?



1
빠른 답변 : 여기에 간단한 답변을 드리겠습니다. 댓글이 너무 많아서이 글타래가 익사했습니다. 1) Vim에 : ver를 입력하여 Vim 버전에서 + visualextra가 활성화되어 있는지 확인하십시오. 2) 먼저 편집하려는 내용을 표시 한 다음 I (자본 i)를 누르면 삽입됩니다. 소문자가 작동하지 않습니다. 3) 그렇게하면 첫 번째 줄에만 삽입하는 것처럼 보일 수 있지만 완료되면 ESC와 j를 누르면 텍스트가 다른 줄에 복사됩니다. 그것이 나를 위해가는 방법입니다.
Zeth

답변:


203

이 시도

텍스트 블록을 선택한 후 Shift+ i또는 대문자를 누릅니다 I.

소문자 i가 작동하지 않습니다.

그런 다음 원하는 것을 입력하고 마지막으로 모든 줄에 적용하고 Esc두 번 누릅니다 .




이것이 작동하지 않으면 ...

+visualextraVim 버전에서 활성화 했는지 확인하십시오 .

:ver기능 목록을 입력 하고 스크롤 하여이를 수행 할 수 있습니다 . (형식이 이상하기 때문에이를 복사하여 버퍼에 붙여 넣고 증분 검색을 수행 할 수 있습니다.)

이 질문의 범위를 벗어나는 것이 가능하지만 어딘가에서 찾을 수 있다고 확신합니다.


13
잊지 마세요 A!
jmdeldin

42
또한 텍스트를 복제하기 전에 이스케이프를 눌러 삽입 모드를 종료해야합니다.
Brandon Joyce

19
아무도 이것이 작동하지 않는 것을 본 적이 있습니까? CentOS에 수정되지 않은 vim 설정이 있습니다. Ctrl + V를 누르고 ja를 몇 번 누르면 커서가 몇 줄의 첫 문자를 강조 표시합니다. Shift + i를 누릅니다. 커서가 첫 번째 줄의 첫 번째 문자로 이동되었지만 다시 일반 모드로 돌아갑니다. "a"를 누르면 문자가 오른쪽으로 이동하고 "-INSERT-"라고 표시되기 때문에 이것을 알고 있습니다. 문자를 몇 개 입력하고 이스케이프를 누르면 다른 줄에는 적용되지 않습니다.
Tyler Collier

2
@TylerCollier digitalocean의 Ubuntu 14.04에서 문제가 발생했습니다. 해결책을 찾았다면 의견을 말하십시오.
잭 버트

2
@ZacharyBurt Ubuntu 14.04 (로 설치됨 vi) 와 함께 설치된 기본 vim 에는이 visualextra기능이 포함되어 있지 않으므로 블록 삽입이 작동하지 않습니다. sudo apt-get install vim더 완전한 기능을 갖춘 버전을 가져옵니다 visualextra. @TylerCollier 이것은 CentOS 설치에서도 같은 문제 일 수 vim --version있습니다. 활성화 된 기능의 전체 목록을 보려면 출력 을 확인하십시오.
가브리엘 그랜트

41
  1. Ctrl 키를 누르고 v // 선택을 시작합니다
  2. shift 및 i //를 누르고 텍스트를 입력하십시오.
  3. ESC ESC // esc 키를 눌러 눌러 두 번

버튼을 누른 후 ctrl + v, 당신은 눌러 j신속 선택 현재 위치 아래 라인 (들), 또는 언론에 k현재의 위치 이상 빠르게 선택 라인 (들). 또는 오류 shift와 함께 키를 사용 하여 선택을 수행 할 수도 있습니다 . updown
tyler.frankenstein

1
모든 답변 중 이것이 나를 위해 일한 유일한 것입니다. 나는 brew install을 사용하여 Mac을 사용하고 있습니다.
Daniel Kaplan

내가 쉽게 수 없다고 년 동안 불평 한 내가 (같은 nsert C의 블록 선택에 hange). 그래서 그것은 자본과 함께, i놀랐습니다. :normal iINPUT<CR>줄의 시작 부분에 입력 하는 데 사용 했습니다. 이것에 대한 감사합니다!
Tim Visée

esc를 두 번 눌러야한다고 생각하지 않습니다. esc 이후에 아무 것도 누르면 텍스트가 자동으로 업데이트됩니다. 그렇지 않은 경우 0.5 초 정도 걸립니다.
Shahbaz

29

텍스트 블록을 삭제하고 바꾸려는 사용 사례가있을 수도 있습니다.

이렇게

Hello World
Hello World

"W"앞에 블록 선택을 시각적으로 표시하고 Shift+ i- "Cool"을 입력하십시오. – ESC시각적 블록 선택에 의해 "World"를 삭제하십시오.

또는 더 멋진 방법 은 두 줄 모두에서 "월드"를 시각적으로 차단 하는 것입니다. 에 입력 c하십시오 change. 이제 insert모드에 있습니다. 원하는 것을 삽입하고 누르십시오 ESC. 둘 다 적은 키 입력으로 반영됩니다.

Hello Cool 
Hello Cool

마지막 단계는 저에게 도움이됩니다. ESC그러면 표시된 모든 줄에 입력 한 문자가 표시됩니다.
Webb Lu

좋은 물건, 그것은 많은 도움이됩니다
prosti

9

선택한 열 앞뒤에 새 텍스트를 추가하려는 경우 :

  • ctrl + v를 누르십시오
  • 열을 선택하십시오
  • Shift + i를 누르십시오
  • 당신의 텍스트를 작성
  • esc를 누르십시오
  • "jj"를 누르십시오

2
jj아래 줄의 모든 줄에 변경 사항을 전파하기 위해 탱크를 잃어 버렸습니다.
kilogic

jj살인자입니다!
Anh Tran
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.