Vim- 검색 적으로 끌어 당김
vim의 "마지막 검색"레지스터 ( "/)에"양속 "하는 부인과 방법이 있습니까?"
vim 문서에서 대답은 '아니요'인 것처럼 보이지만 "let"명령을 통해 할당 할 수 있습니다.
It is writable with ":let", you can change it to have 'hlsearch' highlight
other matches without actually searching. You can't yank or delete into this
register.
이상적으로 내가하고 싶은 것은 다음과 가변적이다.
"/5yw
커서 아래의 다음 5 개 단어를 잡아 당기고 마지막 검색 버퍼에 넣습니다.
또는 명명 된 오류의 내용을 검색하는 방법이있는 경우에도 작동합니다. 즉, 내가 할 수있는 권한 :
"A5yw
그런 다음 검색 A에있는 항목을 작동합니다.
내가 올 수있는 가장 가까운 방법은 명명 된 예정에 yank 한 다음 해당 될 것입니다 마지막 검색에 복사하는 것입니다.
"A5yw
:let @/=@A
긴 질문을 더 아니라 만들 위험을 감수하면서 "끌어서 검색"하고 싶은 단어가 항상 5 개 말하고 싶습니다. 어디에 17 자이고, 그리고 줄 끝까지 등입니다. 따라서 하드 코딩 된 매크로는 내가 원하는 유연성을 제공하지 않습니다.
를 나열 /
검색을 입력 한 후 사용 Ctrl-R
하고 싶은 것을 입력 할 수 있습니다.
예.
- 먼저
"Ayw
레지스터에 단어를 잡아 당기려면 - 그런 다음
/ ^R A
A의 내용을 검색하실 수 있습니다.
얀크 텍스트를 저장하는 데 레지스터를 사용하지 않은 경우 정력은 0
레지스터를 사용합니다 . Ctrl-R 0
뒤 6 입력 입력하여 검색 할 수 있습니다 /
.
더 복잡한 예. 현재 커서 아래에있는 따옴표 안의 텍스트를 다른 버퍼에서 검색하고 싶다고 가정 해 있습니다.
yi"
(내부 인용 부호)로 할 수 있습니다.- 검색하려는 버퍼로 이동
- 유형
/Ctrl-R 0
이를 위해 다음 코드를 사용하고 있습니다.
vnoremap <silent>* <ESC>:call VisualSearch('/')<CR>/<CR>
vnoremap <silent># <ESC>:call VisualSearch('?')<CR>?<CR>
function! VisualSearch(dirrection)
let l:register=@@
normal! gvy
let l:search=escape(@@, '$.*/\[]')
if a:dirrection=='/'
execute 'normal! /'.l:search
else
execute 'normal! ?'.l:search
endif
let @/=l:search
normal! gV
let @@=l:register
endfunction
따라서 기본적으로 # 및 * 명령의 확장 버전이 맞습니까? 사용자 정의 연산자 (동작을 예상하는 명령)를 정의하려는 것입니다. 실제로 이것을 한 나는 적이 없지만 그렇게하기 쉽게 만드는 플러그인 을 찾았습니다 . 몇 가지 가지 예가 있습니다.
선택 검색 :
선의 한 부분을 먼저 잡아 당기려면 "v"를 사용하고 원하는 항목을 표시 할 때까지 커서로 이동 한 다음 y를 잡아 잡아 당기면 선택이려면 0에 있습니다.
그런 다음 입력 할 수 있습니다. /Ctrl-R 0
참고 URL : https://stackoverflow.com/questions/2312844/vim-yank-into-search-register
'ProgramingTip' 카테고리의 다른 글
AWS CLI에서 와일드 카드를 사용하여 파일 그룹을`cp` 지불해야 할 일이 있습니까? (0) | 2020.10.26 |
---|---|
DispatchQueue.main.async와 DispatchQueue.main.sync의 차이점 (0) | 2020.10.26 |
for가없는 SimpleForm (비 모델 양식) (0) | 2020.10.26 |
jQuery .each ()의 각 반복 사이에 일시 중지를 추가하는 방법은 무엇입니까? (0) | 2020.10.26 |
Windows의 명령 줄 Git (0) | 2020.10.26 |