답변:
팀 교황의 abolish.vim
사이에서 캔 변환 camelCase
, MixedCase
, snake_case
,과 UPPER_CASE
,뿐만 아니라 변환 (편도) dash-case
.
의에 커서를 놓고 fooBar
, FooBar
, foo_bar
, 또는 FOO_BAR
사용
crc
로 변환하다 fooBar
crm
로 변환하다 FooBar
cr_
또는 crs
로 변환foo_bar
cru
로 변환하다 FOO_BAR
cr-
로 변환하다 foo-bar
그렇습니다 . 그리고 보너스로 반대 방향으로 나아가는 것도 있습니다!
사라질 경우 위키에서 인용하십시오.
" Change selected text from NameLikeThis to name_like_this.
vnoremap ,u :s/\<\@!\([A-Z]\)/\_\l\1/g<CR>gul
반대 방향으로 :
" Change selected text from name_like_this to NameLikeThis.
vnoremap ,c :s/_\([a-z]\)/\u\1/g<CR>gUl
vnoremap tos :s/\C\(\U\&\S\)\([A-Z]\)/\1_\l\2/g<CR>
lh-dev 는 이름 지정 스타일 사이를 변환하는 명령도 제공합니다.
:NameConvert snake
커서 아래 단어를 snake_case로 변환합니다.
:%ConvertNames/\<m_\k\+(/getter/gc
사용자가 변환을 확인한다고 가정하면 패턴의 각 항목을 게터 이름으로 변환합니다 ( :h :s_flags
)
지원되는 스타일은 두 가지입니다.
다음과 같은 명령을 만들었습니다.
command! Ctl
\ exec "norm \"xygn" |
\ let @y = substitute(@x, "\\([^A-Z]\\)\\([A-Z]\\)", "\\1_\\2", "g") |
\ let @y = tolower(@y) |
\ exec "norm cgn\<C-r>y" |
\ let @@ = ":Ctl\n"
먼저 바꾸려는 문자열을 검색 /nameToReplace
한 다음 실행 :Ctl
하면 다음 검색 일치가됩니다 name_to_replace
. 명령은 @@
레지스터에 들어가므로을 눌러 작업을 반복 할 수 있습니다 @@
.