다음은 내가 매일하는 상황입니다.
0 .outer_selector {
1
2 .inner_selector {
3 margin: 0;
4 padding: 0;
5
6 input { display: none; }
7 }
8
9 }
지금 나는 잘라내어 붙여 넣기를 원한다. .inner_selector
다른 곳. 내가 어떻게 해? 나는 논리를 빨리 삭제할 수있는 방법을 찾지 못한다. .inner_selector
블록 와 공백을 둘러싼 다. 즉, dap
이 중괄호로 구분 된 블록의 경우 여기에 여러 가지 아이디어가 있습니다. ( ai
과 ii
매핑은 Vim-indent-obj 플러그인.)
3Gdai
. 이 방법은 거의 효과가 있지만 닫는 중괄호는.inner_selector
그것이 어디에 있는지 차단하십시오.2Gdai
. 좋지 않다; 전체를 삭제합니다..outer_selector
블록.2Gdii
. 이것은 올바른 블록을 삭제하지만 주변 공백은 삭제하지 않습니다 (즉,dip
대신에dap
).2Gf{d%
. 이동{
와f{
, 일치하는 중괄호로 삭제 (d%
). 이렇게하면 2 행의 중괄호에서 해당 중괄호까지 텍스트가 삭제되지만 텍스트는 ".inner_selector
".2Gf{v%okd
. (4)와 동일하게 시작한 다음 선택한 텍스트의 맨 위로 이동합니다 (o
), 한 줄 위쪽으로 확장 (k
), 삭제 (d
). 상기 (3)과 동일합니다.3Gvaikojjd
. 텍스트를 선택하고 추가로 한 행을 위로 선택하십시오 (k
), 선택한 지역의 바닥으로 점프 (o
), 두 줄 선택 (jj
), 삭제 (d
). 이 작동합니다.
나는 마지막 하나를위한 키보드 매핑을 정의 할 수 있고 그것으로 끝낼 수있다. 그러나 내가 그것을하기 전에 나는 여기서 뭔가를 놓치지 않을 것이라고 확신하고 싶다. 여러 언어로 된 일반적인 코드 구조이기 때문에 나는 이것을 다루기가 어렵다는 것에 놀랍니다. text { /* multiple lines /* }
텍스트 개체로, 또는 플러그인이 없다는 것을 의미합니다.
va{V
, 아니라vi{V
) 맞습니다. 첫 번째 방법은 제 예제에서 완벽하게 작동합니다. 그러나, 만약 내가 여러 개 있다면 그것은 작동하지 않을 것이다..inner_selectors
하나만 삭제하려고합니다.