VIM에서 괄호 (또는 따옴표 또는…) 사이를 선택하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1061933

문제

나는 이런 종류의 물건을위한 플러그인이 있었다고 확신하지만, 이제 필요했기 때문에 (자연스럽게) 찾을 수없는 것 같아서 멋지고 간단하게 물어볼 것입니다.

괄호 나 따옴표 또는 일반적으로 일치하는 문자 목록 사이에서 선택하는 가장 쉬운 방법은 무엇입니까?

   write ( *, '(a)' ) 'Computed solution coefficients:'

예를 들어, 여기에서 선택하고 싶습니다 (a), 또는 Computed solution coefficients:.

나는 멀티 린에 관심이 없으며 한 줄에서 발생하는 경우 만 있습니다.

도움이 되었습니까?

해결책

괄호 안에 들어가려는 내비게이션 키를 사용하면 어느 쪽이든 사용할 수 있습니다. yi( 또는 yi) 일치하는 파렌 내의 모든 것을 복사합니다. 이것은 또한 사각형 괄호와 함께 작동합니다 (예 : yi])) 및 곱슬 브레이스. 에 추가 y, 텍스트를 삭제하거나 변경할 수도 있습니다 (예 : ci), di]).

나는 이것을 이중 및 단일 크기로 시도했고 거기에서도 작동하는 것으로 보인다. 귀하의 데이터를 위해, 나는 다음과 같습니다.

write (*, '(a)') 'Computed solution coefficients:'

커서를 이동하십시오 C, 그런 다음 입력하십시오 yi'. 커서를 빈 줄로 옮깁니다 p, 그리고 얻다

Computed solution coefficients:

처럼 CMS는 언급했다, 이것은 시각적 모드 선택에도 적용됩니다. vi), vi}, vi', 등.

다른 팁

내가 보통 한 단일 따옴표를 선택하려면 vi' ( "내부 단일 따옴표 선택").

괄호 블록 내에서 나는 사용한다 vib ( "내부 블록 선택")

곱슬 버팀대 블록 안에 사용할 수 있습니다 viB ( "자본 B")

선택을 "포괄적"으로 만들려면 (인용문, 괄호 또는 버팀대를 선택하십시오) a 대신에 i.

당신은 더 자세한 내용을 읽을 수 있습니다 텍스트 객체 선택 매뉴얼에서 또는 :help text-objects VIM 내에서.

이 선택 방법은 내장되어 있으며 VIM 도움말로 잘 다루었습니다. XML 태그 등을 다룹니다.

보다 :help text-objects.

단일 따옴표 내에서 선택하기 위해 vi'.

괄호 사용 내에서 선택합니다 vi(.

화살을 사용하거나 사용하십시오 hjkl 괄호 표현 중 하나에 도달하려면 v Visual (예 : 선택) 모드를 선택하려면 % 다른 브래킷으로 점프합니다.

the를 사용하여 .vimrc에 vim 함수를 작성하십시오 searchpair 내장 기능 :

searchpair({start}, {middle}, {end} [, {flags} [, {skip}
            [, {stopline} [, {timeout}]]]])
    Search for the match of a nested start-end pair.  This can be
    used to find the "endif" that matches an "if", while other
    if/endif pairs in between are ignored.
    [...]

(http://vimdoc.sourceforge.net/htmldoc/eval.html)

나는 가장 투표 된 답변에 세부 사항을 추가 할 것입니다.

GVIM을 사용하고 클립 보드에 복사하려면

"+<command>

괄호 사이의 모든 내용을 복사하려면 (또는 Parens 또는 Curly Bracket)

예를 들어: "+yi} 커서의 곱슬 괄호 사이의 모든 내용을 클립 보드에 복사합니다.

플러그인을 만들었습니다 vim-textobj-quotes: https://github.com/beloglazov/vim-textobj-quotes

모든 유형의 가장 가까운 인용문에 대한 텍스트 객체를 제공합니다. 만 사용 iq 또는 aq 현재 커서를 둘러싸고있는 단일 ( '), double ( ") 또는 뒤로 (`)의 내용에서 작동 할 수 있습니다. 단어, 인용문에 도달하기 위해 필요할 때 앞으로 또는 뒤로 점프합니다.

예제를 보면 이해하기가 더 쉽습니다 (커서가 표시됩니다. |):

  1. 전에: foo '1, |2, 3' bar; 누른 후 diq: foo '|' bar
  2. 전에: foo| '1, 2, 3' bar; 누른 후 diq: foo '|' bar
  3. 전에: foo '1, 2, 3' |bar; 누른 후 diq: foo '|' bar
  4. 전에: foo '1, |2, 3' bar; 누른 후 daq: foo | bar
  5. 전에: foo| '1, 2, 3' bar; 누른 후 daq: foo | bar
  6. 전에: foo '1, 2, 3' |bar; 누른 후 daq: foo | bar

위의 예제는 단일 따옴표에 대해 제공되며 플러그인은 Double ( ") 및 Back (`) 인용문과 정확히 동일한 방식으로 작동합니다.

다른 연산자를 사용할 수도 있습니다. ciq, diq, yiq, viq, 등.

자세한 내용은 위의 GitHub 페이지를 살펴보십시오.

VIM의 간단한 키 맵은이 문제를 해결할 것입니다. MAP VIQ F”LVF”HH 위의 명령은 viq를 키에 맵핑하여 따옴표 사이를 검색합니다. "모든 캐릭터로 교체하고 Keymaps를 만듭니다. 시작하는 동안 VIMRC에 이것을 붙이면 매번 사용할 수 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top