2016-08-17 3 views
4

나는 Vim과 같은 질문을 던지려고합니다.Vim 복사 줄과 주석 줄을 주석으로 처리하십시오.

Duplicate line and comment out old one

는 기본적으로 나는 선을 꺼낼 이전을 주석, 새를 붙여 새로운 라인의 시작 부분에 커서를 유지하고 삽입 모드에서 종료합니다.

예를 들면 : 나는 그것을 위해 매크로를 기록

//def func (param) 
def func (param) 

.vimrc에 넣어, 나는 @y

" copy-and-comment-line macro 
" yank line, comment out original line, move cursor at the begining 
" of copied line and end in insert mode 
let @y='yypkui//kdklkl' 
를 통해 그것을 사용하고 있습니다에

def func (param) 

가 변경됩니다

(인쇄 할 수없는 문자가 포함되어있어 잘 작동하지 않을 수도 있습니다. [email protected] cha 코드 블록이 표시되지 않는 racters)

매크로는 작동하지만 vim에서 동일한 기능을 수행 할 수있는 내장 명령이 있습니까?

+0

매크로에 어떤 문제가 있습니까? – romainl

+0

@romainl 사실 나는 vim 사용자들 사이에서 더 일반적인 행동이라고 생각했지만, 기록 된 매크로보다 키 스트로크가 더 우아하고 (더 짧고 읽기 쉽다)있을 수는 없다. – mmtj

+0

매크로는 읽을 필요가 없으며 존재하지 않는 제네릭 솔루션보다 훨씬 빠릅니다. – romainl

답변

6

이 매핑은 당신을 위해 그것을 수행해야합니다

nnoremap YOURKEY YI//<esc>p 
  • 커서가 붙여 줄 것입니다.
  • 는 키 (들)에 의해 YOURKEY 교환이 대답이 예, // 스타일의 코멘트에 대해서만 작동
  • 참고 좋아한다. 일반 솔루션을 원한다면이 함수에서 함수를 빌드하고 파일 유형을 확인하고 어떤 주석 스타일을 사용해야하는지 결정해야합니다. 지금까지 좋은 내장 솔루션은 없지만, NERDCommenter 또는 vim-commentary 플러그인을 확인하여 플러그인이 어떻게 작동하는지 확인하거나, 플러그인 중 하나 (또는 ​​유사한 플러그인)를 설치하고 매핑에서 함수를 호출 할 수 있습니다.
+0

그래, 그게 일하는 언어에 대한 주석 구문이라면 좋겠다. 그러나 파이썬이나 셸 스크립트 (예를 들어)에서 작업하는 경우 구문 오류가 삽입된다. –

+0

@ 2-BitAlchemist 대답은 OP의 코드를 기반으로합니다. 나는 모든 종류의 "주석 스타일"을 사용할 것이라고 말하지 않았다. – Kent

+0

여기에 언어 태그가 없으며, 링크 된 질문은 언어 불가지론 자다. 실제로 vim 자체는 언어 불가지론 자이며 "예제"로 나열되어있다. 어쨌든, 내가이 질문을 발견하면,이 솔루션은 나를 위해 작동하지 않을 것입니다. –

관련 문제