VIM에서 괄호 (또는 따옴표 또는…) 사이를 선택하는 방법은 무엇입니까?
-
21-08-2019 - |
문제
나는 이런 종류의 물건을위한 플러그인이 있었다고 확신하지만, 이제 필요했기 때문에 (자연스럽게) 찾을 수없는 것 같아서 멋지고 간단하게 물어볼 것입니다.
괄호 나 따옴표 또는 일반적으로 일치하는 문자 목록 사이에서 선택하는 가장 쉬운 방법은 무엇입니까?
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.
[...]
나는 가장 투표 된 답변에 세부 사항을 추가 할 것입니다.
GVIM을 사용하고 클립 보드에 복사하려면
"+<command>
괄호 사이의 모든 내용을 복사하려면 (또는 Parens 또는 Curly Bracket)
예를 들어: "+yi}
커서의 곱슬 괄호 사이의 모든 내용을 클립 보드에 복사합니다.
플러그인을 만들었습니다 vim-textobj-quotes
: https://github.com/beloglazov/vim-textobj-quotes
모든 유형의 가장 가까운 인용문에 대한 텍스트 객체를 제공합니다. 만 사용 iq
또는 aq
현재 커서를 둘러싸고있는 단일 ( '), double ( ") 또는 뒤로 (`)의 내용에서 작동 할 수 있습니다. 단어, 인용문에 도달하기 위해 필요할 때 앞으로 또는 뒤로 점프합니다.
예제를 보면 이해하기가 더 쉽습니다 (커서가 표시됩니다. |
):
- 전에:
foo '1, |2, 3' bar
; 누른 후diq
:foo '|' bar
- 전에:
foo| '1, 2, 3' bar
; 누른 후diq
:foo '|' bar
- 전에:
foo '1, 2, 3' |bar
; 누른 후diq
:foo '|' bar
- 전에:
foo '1, |2, 3' bar
; 누른 후daq
:foo | bar
- 전에:
foo| '1, 2, 3' bar
; 누른 후daq
:foo | bar
- 전에:
foo '1, 2, 3' |bar
; 누른 후daq
:foo | bar
위의 예제는 단일 따옴표에 대해 제공되며 플러그인은 Double ( ") 및 Back (`) 인용문과 정확히 동일한 방식으로 작동합니다.
다른 연산자를 사용할 수도 있습니다. ciq
, diq
, yiq
, viq
, 등.
자세한 내용은 위의 GitHub 페이지를 살펴보십시오.
VIM의 간단한 키 맵은이 문제를 해결할 것입니다. MAP VIQ F”LVF”HH 위의 명령은 viq를 키에 맵핑하여 따옴표 사이를 검색합니다. "모든 캐릭터로 교체하고 Keymaps를 만듭니다. 시작하는 동안 VIMRC에 이것을 붙이면 매번 사용할 수 있어야합니다.