VIM의 명령 줄에서 "커서 아래에있는 단어"를 어떻게 지정합니까?
VIM에서 "커서 아래에있는 단어"를 지정하는 명령을 작성하고 싶습니다. 예를 들어, 커서를 단어 위에 놓고 두 번 표시한다고 가정 해 보겠습니다. 예를 들어, 단어가 "abc"이고 "abcabc"를 원하면 다음을 입력 할 수 있습니다.
:s/\(abc\)/\1\1/
하지만 커서를 "def"로 이동하고 동일한 명령을 사용하여 "defdef"로 변경할 수 있기를 바랍니다.
:s/\(def\)/\1\1/
이 작업을 수행하도록 명령 줄에 명령을 작성하려면 어떻게해야합니까?
:s/\(*whatever is under the commandline*\)/\1\1
<cword>
커서 아래에있는 단어입니다 (: help <cword>
).
죄송합니다.이 답변이 더 완전해야했습니다.
명령을 nmap하거나 게으른 사용자를위한 일련의 키 입력이 작동합니다.
b #go to beginning of current word
yw #yank to register
그런 다음 패턴을 입력 할 때 <control-r>0<enter>
0 번째 레지스터의 내용을 명령에 붙여 넣을 수 있습니다 .
다음과 같이 명령을 작성할 수도 있습니다.
:nmap <leader>w :s/\(<c-r>=expand("<cword>")<cr>\)/
'\'와 'w'를 동시에 매핑하여 명령 줄을
:s/\(<currentword>\)/
명령 줄 모드에서 CTRL+ R CTRL+ W는 커서 아래에 단어를 삽입합니다.
c_CTRL-R
기타 모든 특수 레지스터 목록은 도움말을 참조하십시오 .
:help c_CTRL-R
yiwP
yiw
: 내부 단어 (커서 아래에있는 단어)를 Yank합니다. 이 명령은 또한 커서를 단어의 시작 부분으로 이동합니다.
P
: 커서 앞에 붙여 넣습니다.
그런 다음 eg : < ALT > - D
를 다음 명령에 매핑 할 수 있습니다 .
:nmap < ALT >-D yiwP
이를 수행하는 또 다른 쉬운 방법은 *
명령 을 사용하는 것 입니다.
일반 모드에서 단어 위에 입력하면
*:s//\0\0<Enter>
*
검색 패턴을 현재 단어로 만듭니다 (예 : \ <abc \>).
:s//
현재 검색 패턴을 사용하여 대체를 수행 \0
하고 대체 섹션에는 일치하는 문자열이 있습니다.
그런 다음 동일한 내용을 다시 입력하거나 입력하여 "def"라는 단어 위에이 동작을 반복 할 수 있습니다.
*@:
@:
<Enter>없이 마지막 ex 명령을 반복합니다.이 경우 대체입니다.
q
명령을 사용하여이 작업을 수행하는 빠른 매크로를 기록 할 수도 있습니다.
qd*:s//\0\0<Enter>q
그런 다음 입력하여 마음에 드는 내용을 반복하십시오.
@d
두배로하고 싶을 때. 이것은 이전 솔루션보다 한 문자 적기 때문에 단어 배가 사이에 다른 전 명령을 수행하지 않는 한 가치가 없을 수 있습니다.@:
매핑 내에서 백 슬래시를 이스케이프해야합니다. 매핑 내에 대체 문자열을 포함 할 수도 있습니다.
:nmap <leader>w :s/\\(<c-r>=expand("<cword>")<cr>\\)/\\1\\1<cr>
ywPx
당신이 설명하는 것을 할 것입니다.
ywPxw
커서를 다음 단어로 이동합니다.
@ user11211 에는 커서 아래의 단어를 복제 하는 가장 간단한 방법 이 있습니다.
yiwP
내부 단어를 잡아 당기고 (커서를 단어의 시작 부분으로 이동), 붙여 넣기 (커서 앞).
예. straigh [t] forward ----> 똑바로 [d] straightforward
[]은 커서입니다.
자세히 설명하기 위해 ...
중복 된 단어 뒤에 커서를두고 싶을 것입니다.
yiwPea
straigh [t] forward ----> straightforwardstraightforward []
노트:
yiw
내부 단어를 잡아 당깁니다 (공백 없음).
yaw
모든 단어를 잡아 당깁니다 (후행 공백 포함).
yawPea
따라서 공백 및 위치 커서를 포함한 중복 단어입니다.
straigh [t] forward ----> 직선 직선 []
" count word (case sensitive)
nmap <F4> :%s/\(<c-r>=expand("<cword>")<cr>\)//gn<cr>
'Programing' 카테고리의 다른 글
Jquery UI datepicker. (0) | 2020.10.09 |
---|---|
Java 프로그램 실행 경로를 얻는 방법 (0) | 2020.10.09 |
ArrayList에 대한 ConcurrentModificationException (0) | 2020.10.09 |
간단한 문자열에서 timedelta 객체를 생성하는 방법 (0) | 2020.10.09 |
numpy는 배열의 음수 값을 대체합니다. (0) | 2020.10.09 |