지정하려면 어떻게 해야 합"이라는 단어에서 커서를"에 VIM 의 commandline?

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

  •  09-06-2019
  •  | 
  •  

문제

쓰고 싶은 명령어를 지정하는"이라는 단어에서 커서를"에 VIM.예를 들어,말하자 나는 커서에는 단어가 두 번 나타납니다.예를 들어,만약 단어가"abc"내가 원하는"abcabc"그리하면 내가 입력할 수 있습니다:

:s/\(abc\)/\1\1/

하지만 그때 사용할 수있는 커서를 이동하는 데""와 동일한 명령을 사용하는 그것을 변경하는"defdef":

:s/\(def\)/\1\1/

나는 어떻게 쓰기 명령에서 명령행하도록 그것이 무엇입니까?

:s/\(*whatever is under the commandline*\)/\1\1
도움이 되었습니까?

해결책

<cword> 는 단어에서 커서(도움말: <cword>).

Sorry,내가 더 완벽한이 대답합니다.

할 수 있습 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>\)/

는 것이 지도를 치'\'and'w'하는 동시에 교체하는 명령줄

:s/\(<currentword>\)/

다른 팁

는 동안에서 명령행 모드 CTRL+R CTRL+W 를 삽입하는 단어에서 커서입니다.

에 대한 도움말을 참조하십시오 c_CTRL-R 에 대한 목록의 모든 다른 특별한 기록기:

:help c_CTRL-R
yiwP

yiw:꺼낼 내부 word(word 커서 아래).또한 이 명령으로 커서를 이동의 시작 단어입니다.

P:를 붙여 넣기 전에 커서입니다.

할 수 있습지도 예를 들어: < ALT > - D 이 명령:

:nmap < ALT >-D yiwP

또 다른 쉬운 방법이 사용하는 것입 * 명령입니다.

일반 모드에서,때는 단어 입력

*:s//\0\0<Enter>

* 드 검색 패턴 현재의 말씀(예:\<abc\>).

:s// 는 대체를 사용하여 현재 검색 패턴 \0 에서 교체 섹션은 일치하는 문자열입니다.

할 수 있습니다 다음이 반복 행동을 말하는 단어"def",하나에 의해 입력하는 동시에 의해,또는 타이핑

*@:

@: 그냥을 반복하고 마지막 ex 명령을 필요가 없어서는 <Enter>이 경우에는 변경하십시오.

할 수 있도록 빠른 매크로를 사용하여 이 작업을 수행하십시오 q 명령

qd*:s//\0\0<Enter>q

그런 다음 그것을 반복해 당신의 마음을 입력하여 콘텐츠

@d

면을 통해 원하는 단어가 두 번 있습니다.이것은 단지 하나의 문자보다 적은 전에 해결책,그것은 되지 않을 수도 있습니다 가치가 그것을 당신이하지 않는 한 당신이 하는 것입니다 다른 ex-명령어는 단어 사이에 두는 것이의 행동 변경 @:

당신은 탈출하는 데 필요에 백슬래쉬에서 매핑을 사용합니다.도 포함할 수 있습 교체 내에서 문자열을 매핑을 사용합니다.

:nmap <leader>w :s/\\(<c-r>=expand("<cword>")<cr>\\)/\\1\\1<cr>
ywPx

무엇을 할 것인가를 설명합니다.

ywPxw

또한 사전에 커서를 다음 단어입니다.

@user11211 가장 간단한 방법으로 중복하는 말씀에서 커:

yiwP

꺼낼 내면의 말씀(커서 이동의 시작 단어),붙여 넣기(전면 커서).

예를 들어.화[t]앞으로---->straightforwar[d]간단

[]은 커서

정교한...

당신은 아마이 있고 싶 커서를 다음과 같은 중복된 단어:

yiwPea

화[t]앞으로---->straightforwardstraightforward[]

참고:

yiw

은 꺼낼 안어(공백없이)

yaw

은 꺼낼 모든 단어(후행 공백을 포함한).

yawPea

따라서 중복 단어를 포함하여 공백,그리고 커서 위치.

화[t]앞으로---->간단한 간단[]

" count word  (case sensitive)
nmap <F4> :%s/\(<c-r>=expand("<cword>")<cr>\)//gn<cr>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top