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.