2014-06-22 2 views
2
에서 텍스트를 홱 잡아

나는 여러 줄 선 조각이있는 경우 :붙여 넣기 여러 순차적 라인

length = 1; 
keys = NewKey(value); 
gt_backref = NULL; 
ls_backref = NULL; 

을 그리고 조각의 모든 라인 사이에 (<ctrl>-V+y) node-> 꼴 붙여 넣기해야합니다

node->length = 1; 
node->keys = NewKey(value); 
node->gt_backref = NULL; 
node->ls_backref = NULL; 

방법 홱 잡아 끌린 텍스트를 몇 개의 연속 된 줄에 붙여 넣을 수 있습니까? <ctrl>-V+<shift>-I과 같은 것이지만 붙여 넣기에는 입력 된 텍스트가 아닙니다.

답변

3
<C-v>{motion}I<C-r>"<Esc> 
  1. <C-v>는 시각적 블록 모드로 들어간다.
  2. 선택 항목을 확장하십시오.
  3. 삽입 모드로 전환하려면 I을 누르십시오.
  4. <C-r>"에 이름없는 레지스터의 내용을 삽입하십시오.
  5. <Esc>을 클릭하면 선택한 모든 줄에 변경 내용이 적용됩니다.

또는 :normal과 : Shift 키-V를 사용하여 텍스트를 선택하면

:[range]norm I<C-r>"<CR> 
+0

난 그냥 당신은 항상 "를 사용할 수 있습니다. 또한 이 * 일반 클립 보드에서 붙여 넣습니다. – ygoncho

+0

이 불행하게도 나를 위해이 명시 적 의미를 이해하기 어렵다. 무엇입니까?인가 사용할 수 있습니다 붙여 넣을 수있는 삽입 모드에서 해당을 추가 할 것입니다 ctrl + r 또는 shift + c (upper C) + r 또는 그냥 ctrl? – I159

+1

''은'Ctrl + R'입니다. : help key-notation 참조. – romainl

1

음, 다음 선택한 라인 정규식 노드 - 추가 할

:'<,'>s/.*/node->&/ 
>을 할 .

이 아니면 더 복잡 경우, 어쩌면 당신은 당신이 교체하고 같은 정규식 각각 대체 실행하려는 라인의 종류를 찾기 위해 검색을 매크로의 어떤 종류를 만들 것

:'<,'>s/^/node->/ 

도 simpiler 생각 그 라인의

0

이 답변은 @ Shaun의 대답을 기반으로합니다. 이것은 정말로 매크로가 필요합니다. 하지만 올바른 정규 표현식은

:'<,'>s/\(^\s\+\)/\1node->/ 

입니다. 왜냐하면 들여 쓰기가 필요하기 때문입니다. 그러나이 방법은 보편적이지 않습니다. 특별한 경우마다 새로운 regexp가 필요합니다.