[editor] vi / vim에서 괄호를 잡거나 삭제할 수 있습니까?
C에 다음 코드 줄이 주어지면 :
printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32)));
첫 번째 굵은 괄호에서 일치하는 괄호로 삭제하거나 취소하는 방법이 있습니까? 나는 df) 에 대해 생각 했지만 9.0 이후에야 얻을 수 있습니다.
줄 바꿈에 관계없이 vim이 일치하는 괄호 사이의 모든 것을 잡을 수있는 비슷한 방법이 있습니까?
답변
다양한 동작 : %
%
명령은 커서 아래 항목의 일치로 이동합니다. 커서를 여는 (또는 닫는) Paren 에 놓고 커서에서 일치하는 Paren까지 모든 항목을 삭제 y%
하거나 d%
삭제하는 데 사용합니다.
이것은 %
“모션 명령” 이기 때문에 작동하므로 vim이 그러한 명령을 기대하는 모든 곳에서 사용할 수 있습니다. 보낸 사람 :help y
:
["x]y{motion} Yank {motion} text [into register x]. When no
characters are to be yanked (e.g., "y0" in column 1),
this is an error when 'cpoptions' includes the 'E'
flag.
기본적으로 “item”에는 대괄호, 중괄호, 파 렌스, C 스타일 주석 및 다양한 사전 컴파일러 명령문 ( #ifdef
등)이 포함됩니다.
Vim 홈페이지 에서 찾을 수있는 “확장 된 % 일치”플러그인이 있습니다 .
명령 모드 %
로 들어가서 설명서 및 관련 모션 명령을 읽을 수 있습니다 :help various-motions
.
객체 선택
시각적 모드에서 다양한 텍스트 객체를 선택할 수있는 모션 명령 세트가 있습니다.
특정 문제를 해결하려면 다음을 수행하십시오.
printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32)));
^
커서가에 있다고 가정 해 봅시다 ^
. 찾고있는 부품을 선택하려면 다음 순서를 입력하십시오.
v2a)
먼저 v
시각 모드로 들어간 다음 2
Parens 수준을 높이 도록 지정 합니다. 마지막으로 a)
“블록”을 선택합니다. 당신이 사용할 수있는 후 d
또는 x
등을 삭제
외부 파렌을 포함하지 않으려면 대신 “내부 블록”을 사용할 수 있습니다.
v2i)
:help object-select
관련 명령의 전체 목록을 참조하십시오 .
답변
답변
한 쌍의 괄호 안에있는 모든 항목을 삭제하려면 언제든지 발행 di(
및 파생 상품을 발행 할 수 있습니다 .
노트 :
@porglezomb이 그의 의견에서 제안했듯이 ( “내부”) a
대신 i
( “내부”)를 사용하여 괄호를 포함시킬 수 있습니다. 그래서 사용하여 da(
삭제의 모든 것을 내부 (
및 )
포함 (
하고 )
.
바로 바깥 괄호 안의 텍스트를 삭제합니다.
이 코드 줄에
printf("%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32)));
^ ^
| |
\_______\___---> Cursor range
커서가 위에서 언급 한 커서 범위 내에 있다고 가정하면 다음 명령을 실행할 수 있습니다.
di( --> Deletes '5.0/9.0'
ci( --> Substitutes '5.0/9.0'
yi( --> Yanks '5.0/9.0'
괄호의 n 번째 외부 쌍 내부의 텍스트 삭제 :
괄호의 n 번째 외부 쌍 안에있는 모든 것을 잡으려면 n
위 명령 앞에 추가하십시오 . 위와 같은 커서 위치로
2di( --> Deletes '(5.0/9.0) * (fahr-32)'
2ci( --> Substitutes '(5.0/9.0) * (fahr-32)'
2yi( --> Yanks '(5.0/9.0) * (fahr-32)'
3di( --> Deletes '"%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32))'
3ci( --> Substitutes '"%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32))'
3yi( --> Yanks '"%3.0f\t%6.1f\n", fahr, ((5.0/9.0) * (fahr-32))'
답변
d%
삭제 및 y%
king 킹에 사용할 수 있습니다 .
답변
첫 번째 괄호에 커서를 놓은 후 v%y
또는 을 누릅니다 v%d
.
답변
ci [block-surrounder]를 사용해보십시오
귀하의 경우에는 커서를 두 괄호 사이에 커서를 두어 키를 입력하십시오 (ci (
답변
같이 대답 , 데이비드 노먼의 말씀
첫 번째 괄호에 커서를 놓고 v%y
또는 v%d
.
에서 설명 http://vimdoc.sourceforge.net/htmldoc/vimindex.html의 :
일반 모드에서 태그 문자 참고 조치 -------------------------------------------------- ---------------------------- | v | v 문자 별 시각 모드 시작 | % | % 1에서 다음 (곱슬 / 사각) 괄호를 찾습니다. 이 줄과 일치하거나 일치하는 주석 괄호 또는 일치하는 항목으로 이동 | d | [ "x] d {motion} 2 삭제 Nmove 텍스트 [버퍼 x로]
즉 %
, 선택 사항을 시각적으로 표시하면서 ( ) 두 괄호 ( )를 포함하여 그 사이의 모든 항목을 v
선택한 다음 얀크 / 복사 y
또는 삭제 / 잘라 d
냅니다. (기본 버퍼로)
로 붙여 넣기 / 붙여 넣기를 할 수 있습니다 p
.
“물고기를 가르쳐라”라는 대답을 했다 .