2015-01-11 9 views
0

CIDR spec'd IP 주소 블록 목록을 데이터베이스로 처리하는 Python 프로그램을 작성했습니다. 여기에는 목록 내에서 기존 데이터베이스 테이블과 중복 또는 중복 주소를 확인하는 작업이 포함됩니다. 중복 또는 겹침이 발견되면 오류 보고서가 파이썬으로 작성된 임시 파일에 기록되고 vim이 호출되어 vim 분할 창에 주소 목록과 오류 파일을 나란히 표시합니다. 주소 목록이있는 창이 더 긴 오류 문이있는 창보다 좁아 지도록 나누기를 중앙에서 벗어나기를 원합니다.프로그램 내에서 미리 정해진 vim 설정을 열려면 어떻게해야합니까?

오류 파일의 이름이 고쳐진 경우 프로그램 외부에서 vim 세션을 저장 한 다음 프로그램 내의 명령 줄에서로드 할 수 있습니다. 내가 뭘하고 싶은가 은 적절한 비대칭 형 수직 분할으로 시작하고 주소 블록 목록을 더 좁은 창에로드하고 오류 파일을 동적으로 생성 된 이름과 함께 두 번째 넓은 창에로드합니다. 내가 :30vs 같은 것을 사용하여 분할을 만들 수 있습니다. .vimrc 파일에서 ": vertical res 30"으로 크기 조정 및 기존 분할을 조정할 수 있지만 -O 옵션을 사용하여 두 개의 파일을로드하면 비대칭이 무시됩니다. vim에서 동적으로 생성 된 임시 파일을 편집 대상 중 하나로 사용하는 방법이 있습니까?

+0

와우, 그 중 하나는 긴 문제 설명입니다. 당신은 조금 더 빨리 요점에 도달하고 싶어 할 수도 있습니다 :) –

+0

피터, 이것은 비교적 긴 생각과 실험 과정을 간략히 요약 한 것입니다. 미안하지만 내 경험은 내가 세부 사항으로 들어가기 전에는 많은 답변을 얻는다. –

+0

Peter, 필자의 제안에 따라 중요한 내용을 잃지 않고 최대한 단축 할 수있는 최선의 방법으로 질문을 편집했습니다. 귀하의 제안에 감사드립니다. –

답변

3

-o/-O/-p 명령 줄 인수는/탭 페이지를 분할 (같은 크기)의 빈번한 사례를 포함,하지만 당신은 통과하면 빔 내부에서 사용하는 것과 동일한 명령을 통해 임의의 창 레이아웃을 만들 수 있습니다 -c {cmd}을 통해 예를 들어 :

$ vim -c "edit errorfile.txt" -c "leftabove 30vsplit addressblock.txt" 

또한이 명시 적으로 (처음으로 열립니다) {filename} 인수를 전달합니다 결합 할 수 있습니다. 매우 복잡한 설정의 경우 (-c 인수의 수가 10 개로 제한되고 곧 명령 체인 (edit foo | split bar)이 불완전 해지면 모든 명령을 외부 Vimscript로 추출하고 -S {scriptname}을 통해 실행할 수 있습니다.

+0

이것은 내가 필요한만큼 정확합니다. 프로그램이 실행될 때마다 임시 파일 이름이 바뀌므로 그 이름은'subprocess.open()'파이썬 호출에 동적으로 제공 될 수있는 인수 여야합니다. –

+0

감사합니다. 다행히 도울 수있어. –

관련 문제