program tip

Python 코드에 Vim 접기를 사용하는 권장 방법은 무엇입니까?

radiobox 2020. 8. 12. 08:06
반응형

Python 코드에 Vim 접기를 사용하는 권장 방법은 무엇입니까?


Python 코드 용 Vim에서 코드 접기를 활성화하는 데 관심이 있습니다. 그렇게하는 여러 가지 방법을 발견했습니다.

누구든지 Vim에서 Python 코드 접기를 선호하는 방법이 있습니까? 즉,

  • 사용하고 좋아하는 특정 Vim 플러그인이 있습니까?
  • 수동 접기를 사용합니까, 아니면 주석에 마커를 배치합니까?
  • Vim에서 Python 용 코드 접기를 수행하는 다른 권장 방법이 있습니까?

개인적으로 나는 마커로 내 코드를 흩뿌 리도록 설득 할 수 없습니다. 나는 들여 쓰기 접기를 사용하는 데 꽤 익숙해졌습니다. 접기 열기 / 닫기 및 zR 및 zM 명령을위한 스페이스 바 매핑 (아래 참조)과 함께 저는 바로 집에 있습니다. Python에 적합합니다!

nnoremap <space> za

vnoremap <space> zf


내가 사용 파이썬 구문 파일을. 접기 방법을 구문으로 설정하고 모든 클래스와 함수를 접습니다.


파이썬 코드를 접는 또 다른 플러그인. 다소 간단하고 독 스트링을 처리하고 GitHub에서 :

SimpylFold

즐겨!


파이썬은 들여 쓰기로 접기에 적합하고, 내 자신의 코드를 작성하기 위해 비트를 사용합니다. 마커를 사용하여 원하는 방식으로 문서를 처리 할 수 ​​있고 일종의 목차 역할을 할 수 있습니다. 다른 사람의 코드를 볼 때 둘 사이를 전환하기 위해 vimrc에 이것을 가지고 있습니다.

#Toggle fold methods \fo
let g:FoldMethod = 0
map <leader>fo :call ToggleFold()<cr>
fun! ToggleFold()
    if g:FoldMethod == 0
        exe 'set foldmethod=indent'
        let g:FoldMethod = 1
    else
        exe 'set foldmethod=marker'
        let g:FoldMethod = 0
    endif
endfun
#Add markers (trigger on class Foo line)
nnoremap ,f2 ^wywO#<c-r>0 {{{2<esc>
nnoremap ,f3 ^wywO#<c-r>0 {{{3<esc> 
nnoremap ,f4 ^wywO#<c-r>0 {{{4<esc>
nnoremap ,f1 ^wywO#<c-r>0 {{{1<esc>

나는 들여 쓰기 접기가 파이썬에게는 괜찮다고 생각합니다. vim-config python / django IDE 아이디어를 위해 다중 분기 git repo를 만들고 있습니다. 멀리 포크!

http://github.com/skyl/vim-config-python-ide


나는 python_ifold플러그인을 정말 좋아합니다 .


이 플러그인을 사용해보십시오 :

http://vim.sourceforge.net/scripts/script.php?script_id=515


나에게 이상적인 폴딩은 classdef블록 만 접는 것이고 , 들여 쓰기 폴딩은 제 취향에 맞지 않습니다. 나는 하나의 우아한 해결책은 다음과 같이 구문 시스템을 사용하는 것입니다 생각 하나 토마스에 의해 언급했다. 그러나 이것은 원본 구문 파일을 대체하기위한 것이며 원본보다 오래되어 끝날 수 있습니다 (즉, 해당 스크립트는 Python 3 구문을 언급하지 않음).

내 해결책은 위의 스크립트에서 가져온 중요한 줄로 ~/.vim/syntax이름이 지정된 파일을 폴더 에 배치 하는 python.vim것입니다.

syn match   pythonDefStatement  /^\s*\%(def\|class\)/
       \ nextgroup=pythonFunction skipwhite
syn region  pythonFunctionFold  start="^\z(\s*\)\%(def\|class\)\>"
       \ end="\ze\%(\s*\n\)\+\%(\z1\s\)\@!." fold transparent

hi link pythonDefStatement Statement

그런 다음 :set foldmethod=syntax.


Python 소스는 사용자 정의 vimrc 파일과 함께 vim 구문 플러그인과 함께 제공됩니다. Vim 에서 파이썬 FAQ를 확인하십시오.

참고 URL : https://stackoverflow.com/questions/357785/what-is-the-recommended-way-to-use-vim-folding-for-python-code

반응형