설명 상태 전환
5324 단어 vim-commentary
묘사
여보세요,여러 줄의 상태를 바꾸려고 할 때, 이것은 더 큰 문제입니다. 그 중 일부 줄은 이미 주석이 떨어졌습니다.
현재 동작은 모든 줄을 주석하는 것입니다. (선택한 줄에commentstring을 추가합니다.)
그러나 보통 선택 사항에서 평론 상태를 반전시켜야 한다.즉, 선택은 두 그룹의 조합으로 간주되며, 한 그룹은 주석을 삭제해야 하고, 다른 그룹(이미 주석)은 주석을 취소해야 한다.
이것은 다른 기능이 있을 수도 있고, 나는 현재의 행위와 이 행위를 결정하는 표지가 있는 것을 더욱 좋아한다.
감사합니다!
토론 #1
헤이,좋은 생각 @junkmechanic, 나도 이런 기능이 아주 좋을 것 같아!사실 나는 오늘 프로젝트 저장소로 돌아가서 이러한 기능이 이미 존재하는지 확인한 후에 이 요청을 찾았다.(플러그인 함수를 다시 사용해서 이런 맵을 실현하려고 했지만 불행하게도 실패했다.)
간단한 C 예제(디버깅에 유용함):
//int x=0;
int x=42;
현재 단축키를 사용하여 이 두 줄을 전환하려면 'gccjgcc' 와 같은 동작을 실행할 것입니다.그러나 예를 들어 gC(또는 그 어떠한 접두사)가 운동의 모든 줄을 단독으로 전환한다면 간단하게'gCj'만 하면 같은 전환을 실현할 수 있다.두 개의 전체 코드 세그먼트를 전환해야 하는 경우 더 많은 keystroke를 저장할 수 있습니다.
나는vimscript 등에 대해 아무런 단서가 없지만 @tpope는 이 점을 빨리 실현할 수 있을 것 같다. 그리고 평론 플러그인은 더욱 좋을 것이다.
안녕하세요, 댓글은 제가 가장 유용한 VIM 플러그인 중의 하나입니다!
토론 #2
네, 이거 대박이에요!토론 #셋
플러그인 질문 페이지에서 비슷한 토론을 발견했습니다.https://github.com/tomtom/tcomment_vim/issues/139#issuecomment-88592516나는 스스로 그것을 이식해 보지 않았는데, 아마도 그것이 너에게 도움이 될 것이다.
tcomment_vim
이런 기능은 정말 유용하다!토론 #4
저는 지금nerdcommenter를 사용하고 있습니다. 여기command토론 #5
는 확실히'전환'은 선의의 거짓말입니다.그것은 일방통행로만 전환할 수 있을 것 같다.시각 선택 또는 여러 줄을 전환하지 않습니다(python 예제).d=(
# "test1",
"test2",
)
이제 다음과 같이 댓글을 바꾸고 싶습니다.d=(
"test1",
# "test2",
)
그래서 저는 시각 라인 모드에 들어가서 두 개의 라인을 선택하고 토론 #6
를 눌렀습니다.결과:d=(
# # "test1",
# "test2",
)
gc
I use nerdcommenter now, here's the command
한숨을 쉬다.nerdcommenter에는 또 하나의 toggle(
토론 #7
이 있는데'toggle'도 없다. (공평하게 보기 위해 수첩은 이 점을 설명한다.'선택한 줄의 주석 상태를 전환한다. 맨 위에 있는 선택한 줄에 주석을 달면 모든 줄이 주석을 달지 않고 반대로도 마찬가지이다.)그래서 실제로는'맨 위 줄에 기반한 전환'이다.반전 명령<leader>c<space>
도 올바르게 전환할 수 있습니다.네, 효과가 있어요.변경 사항의 경우 공백이 무시됩니다: <leader>ci
->'# text'
.' text'
indeed "toggle" is a white lie. it seems it can toggle really only single lines.
잘못했어요.그것은 그것들이 먼저 주석을 달기만 하면 백만 줄을 바꿀 수 있다.
sigh. nerdcommenter also has toggle (
c ), that also doesnt "toggle"
흥미로운 것은 모든 평론 플러그인에'전환'의 정의가 있는데 당신의 정의와 일치하지 않는다는 것이다. 거의 이 단어가 당신이 견지하는 뜻이 아닌 것처럼!
토론 #8
sigh. nerdcommenter also has toggle (c), that also doesnt "toggle"
흥미로운 것은 모든 평론 플러그인에'전환'의 정의가 있는데 당신의 정의와 일치하지 않는다는 것이다. 거의 이 단어가 당신이 견지하는 뜻이 아닌 것처럼!
이제 문서를 읽지 않은 상태에서 '주석 전환' 과 '주석 반전' 사이의 차이점을 빨리 알려주십시오: D
그래, 나는 이것이 약간 철학적이라는 것을 인정한다...전환은 확실히 상태 사이를 전환한다는 것을 의미하지만 나머지 해석은 실현자에게 달려 있다.나에게 있어서 바이너리 전환은토론 #9
선택한 모든 요소에 적용되는 것을 의미한다.지적한 바와 같이,commenter 플러그인 선택은 '맨 위 줄에 기반한 전환' 이라고 설명합니다.좋아.
하지만 블록 전체를 주석하고 싶다면comment 명령을 사용할 수 있습니다.
블록 전체에 대한 설명을 취소하려면 uncomment 명령을 사용할 수 있습니다.
그러나 나는 선택한 줄마다 '전환' 할 수 없다. 이것이 바로 내가 '맨 위 줄에 기반한 전환' 이 두 명령의 중복이라고 생각하는 이유이다. '반전' (nerdcommenter 용어 사용) 은 현재 다른 플러그인에서 완성할 수 없다.
이것은 나에게 있어서는 사람을 낙담하게 하지만, 아마도 전 세계의 천국일 것이다.나는 결코 내가 엘리트주의자라고 말하고 싶지 않다. 단지 낙담할 뿐이다. Dnot
만약 내가 이 코드를 가지고 있다면나는# Public API for creating a widget def create_widget # for now, this is just a direct call to .new, but this will change in the future Widget.new end
토론 #10
로 그것을 주석한 후에 두 번째gcap
로 다시 주석을 취소할 수 있다.이것이 바로 내가 말한 전환의 뜻이다.나는 이것이 모든 사리에 밝은 사람이 말하는 '전환' 이라고 생각한다. 예를 들어 '줄마다 전환' 이라는 한정어를 붙이지 않으면.만약 내가'불을 켜라'고 말한다면, 너는 어떤 불이 켜질 때 그것을 끄든지, 아니면 모든 불이 꺼질 때 그것들을 모두 켜라.머리가 정상인 사람은 스위치를 켤 줄 모른다.
비헤이비어를 반전하려면 맵을 작성합니다.xnoremap <Leader>c :g/./Commentary<CR>
gcap
모든 비공식 회선에서 한 명씩 호출하도록 명령한다:g/./
.
나는 지금 다른 표준 지도를 추가하고 싶지 않다.:Commentary
보충해 드릴게요. 이런 방식으로 기존의 시각 모드 스티커를 바꿀 수 있을 거예요. 다른 스티커를 만들 수만 있다면토론 #11
.이런 반전 행위는 주로 시각 모델에서 의미가 있기 때문에 나는 이것이 좋은 절충 방안인 것 같다고 생각한다.<Plug>Commentary
이 물건은 아주 쓰기 좋아요. 감사합니다.현재의 시각적 행위를 바꾸는 것은 너의 결정이다.나는 문서에서 이 빠르고 더러운 '반전' 맵에 흔히 볼 수 있는 문제를 추가하고, 일부 사람들에게github에서 이미 해결된 문제를 보는 여정을 절약하는 것이 좋은 일이라고 생각한다.동의합니다.나는 반드시 이 점을 해야만 (이미 끝난 모든 문제를 읽어야만) 이것을 찾을 수 있다.
나는 이런 시각 다선 전환의 결점을 찾아낼 수 없다.이것은 내가 자연히 생각할 수 있는 것이다.토론 #12
때때로 나는 코드를 주석하고 싶은데 그 안에 주석이 있다.
Reference
이 문제에 관하여(설명 상태 전환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/tpope/vim-commentary/issues/75텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)