각 줄마다 파이썬 문장을 실행하는 방법은 무엇입니까?


답변:


10

pydoVim 7.4부터 사용 가능한 명령을 사용할 수 있습니다 . 설명서에는 내가 할 수있는 것보다 어떻게 작동하는지 설명되어 있습니다.

: [범위] 피도 {본문}

[range]의 각 줄에 대해 파이썬 함수 "def _vim_pydo (line, linenr) : {body}"를 실행합니다. 함수 인수는 <EOL>과 현재 줄없이 차례로 각 줄의 텍스트로 설정됩니다. 줄 번호. 이 함수는 문자열 또는 None을 반환해야합니다. 문자열이 반환되면 현재 턴에서 줄의 텍스트가됩니다. [range]의 기본값은 전체 파일 "1, $"입니다.

예를 들어 다음과 같은 명령을 사용할 수 있습니다.

:python import vim
:pydo vim.current.buffer[linenr - 1] = '[%s]' % line

linenr - 1의 행 때문에 비트가 vim.current.buffer0 인덱싱하지만 빔이 1 라인을 계산하기 시작한다.

좋은 점은 다양한 행에서 Python 코드를 실행하는 사용자 정의 명령을 쉽게 정의 할 수 있다는 것입니다.

command! -range=% BracketLines 
    \ <line1>,<line2>pydo vim.current.buffer[linenr - 1] = '[%s]' % line

1
vim 7.4부터 사용할 수 있습니다.
kenorb

7

를 사용하여 현재 버퍼를 얻을 수 있습니다 vim.current.buffer. for루프를 사용하여 각 줄을 얻을 수 있습니다 .

행을 지정하여 행을 변경할 수 있습니다. 이렇게 정리하면 다음과 같은 이점이 있습니다.

:py from vim import *
:py for i, line in enumerate(current.buffer): current.buffer[i] = '[%s]' % line

도 참조하십시오 :help python-buffer.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.