지정하려면 어떻게 해야 합"이라는 단어에서 커서를"에 VIM 의 commandline?
-
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>