따옴표로 서라운드 최적화
단어를 따옴표로 둘러싸고 싶습니다.
다음은 내 명령 집합입니다.
ciw
- 그런 다음 삽입 모드에있을 때 입력합니다 '(
비주얼 코드 에서 vim 확장을 사용 하므로'
"일반"vim의 경우인지 모르겠습니다.) - 그런 다음 Ctrl+ C+t
- 그때 p
작동하지만이를 달성하기위한 더 짧은 버전이있을 수 있습니다. 도와 주 시겠어요?
답변
vim-surround 플러그인을 시도해 볼 수 있습니다 . 따옴표에 단어를 넣으려면 갈 것입니다 ysiw'
. 플러그인은 다음과 같은 기능을 제공합니다.
추가 (
ysiw"
)word -> "word"
변경 (
csiw"'
)'word'
삭제 (
ds'
)word
한글 단어뿐만 아니라 모든 종류의 텍스트 개체의 주변 환경 :
괄호 (
ysi)"
) 안에 단어를 묶습니다.def func(some sequence of words) -> def func("some sequence of words")
괄호를 대괄호 (
cs)]
)로 변경list = (var1, var2, var3) -> list = [var1, var2, var3]
내가 생각하는 VS Code 확장을 사용하는 경우 적어도 일부 플러그인을 지원하고 그중 하나가 vim-surround 입니다. 이 경우 플러그인을 사용할 수 있다면 마지막 단락으로 이동하십시오. 그렇지 않으면 계속 읽으십시오.
일반 모드에서 커서를 단어의 첫 번째 문자에 놓고 수행 할 수 있습니다.
i"<C-O>f<Space>"<Esc>
Ctrl-O
, 삽입에서 삽입으로 돌아 가기 전에 하나의 일반 모드 명령을 입력 해 보겠습니다.
f<Space>
줄의 다음 공백 문자 (단어 뒤)로 이동합니다.
이 문제는 단어 뒤에 공백이없는 경우입니다 (예 : 줄의 끝에 있거나 문장 부호가 뒤 따르는 경우). 일반 모드 명령을 조정해야합니다 (예 : f.
또는 $<Left>
).
이는 이를 수행하는 방법의 한 예일 뿐이지 만 수동 명령을 최적화하는 대신 더 강력한 (그러나 복잡한) 것을 사용하여 매핑에 넣어야한다고 생각합니다. 예를 들어 다음 대체 명령 :
:%s/\<\w*\%#\w*\>/"&"
즉, 커서 위치 ( \%#
)와 그 주변의 모든 단어 문자 (둘 다 \w*
)를 가져 와서 따옴표로 둘러싸인 자체로 대체합니다.
이에 대한 일반 모드 매핑 :
:nnoremap <leader>q :%s/\<\w*\%#\w*\>/"&"<CR>
이제 선택한 매핑 길이에 관계없이 키 누르기 한두 번으로 최적화했습니다.
그러나 내가 정말로 제안하고 싶은 것은 vim-surround 플러그인을 얻는다는 것 입니다. 그런 다음 일반적으로 단어를 줄 바꿈하는 (예 : 괄호) 무엇이든 쉽게 단어를 줄 바꿈 할 수 있습니다.