컴파일러를 위한makeprg 사용자 정의 (또는 실행 방법: Dispatch zeus rspec)

6879 단어 vim-dispatch

묘사

rspec와 제우스를 스케줄링을 통해 운행하고 싶습니다.나는 이렇게 할 수 있지만, 컴파일러를 rspec 로 설정하지 않았기 때문에, 정확한 오류 형식을 얻지 못했다.

토론 #1

모델에 부합되지 않는 스케줄이 상당히 많다.나는 패턴이 나타날 때까지 그들 중 누구를 지지하기로 결정했다.다음 목록을 작성해 보겠습니다.
- python -m testunit- bundle exec rspec- ruby -Itest- Railsrake notes는 사용자 정의 형식을 사용할 수 있습니다.
이것을 공개 초청으로 간주하여 다른 예시를 제출하다.
또한, 당신은 여전히 사용할 수 있습니다 :Make.
compiler rspec
set makeprg=zeus\ rspec
자동 명령에서 이렇게 하면 최상의 효과를 얻을 수 있다.
너도 rails를 사용할 수 있다.윌의:Rake:Rrunner는 제우스와 스케줄링을 지원한다.상자에서 꺼내다.

토론 #2

네, 실행 가능한 파일로 돌아가기 전에 완전한 일치 항목을 먼저 검사하는 것을 지원합니다'makeprg'.이것은 현재 after/compiler/ 파일의 주석에 더 많은 일치하는 항목을 추가할 수 있음을 의미합니다.이 문제의 동명 예시에 대해 after/compiler/rspec.vim에 다음과 같은 주석을 추가하는 것을 의미한다.
" CompilerSet makeprg=zeus\ rspec
이런 방법의 단점은 대량의 예비 방안에 대한 주석을 추가해야 한다는 것이다. rspec, bundle exec rspec, zeus rspec, bundle exec zeus rspec, let g:dispatch_garbage = ['bundle exec', 'zeus'],

토론 #셋

등이다.
나는 이 문제를 해결하는 것을 고려하고 있지만, 나는 구체적인 개선 건의를 받아들이고 싶다.컴파일러를 검색할 때, 우리는 임의의 접두사를 구분하지 않고 삭제할 수도 있다. (예: after/compiler/rspec.vim나는 이것이 주로 루비 지역사회의 괴벽인지 아니면 광범위하게 사용될지 알고 싶다.

토론 #4

너무 좋아요. 효과가 있어요. 감사합니다.다음은 myg:dispatch_compilers가 vroom이 있는 상태에서 사용할 때의 모양입니다.
" CompilerSet makeprg=rspec
" CompilerSet makeprg=zeus\ rspec
" CompilerSet makeprg=bundle\ exec\ rspec
" CompilerSet makeprg=clear;\ zeus\ rspec
" CompilerSet makeprg=clear;\ bundle\ exec\ rspec

토론 #5

로 이 문제를 해결했다.어떻게 일하는지 알려주기;석방하고 싶습니다.

토론 #6

나에게 도움이 될 것 같다.
let g:dispatch_compilers = {
      \ 'bundle exec': '',
      \ 'clear;': '',
      \ 'zeus': ''}
~/.vim/after/rustc.vim에서 이 문제를 발견했습니다. 저는 제

토론 #7

에서...
" CompilerSet makeprg=x.py
" CompilerSet makeprg=remote-build.sh\ x.py
이것은 매우 유효합니다. 나는 그것을 삭제하고 아래의 내용을 추가하기를 희망합니다.
let g:dispatch_compilers = {
      \ 'x.py': 'rustc',
      \ 'remote-build.sh x.py': 'rustc'}
쓸모가 있지만 그럴 리가 없다.
단서가 있나?
cc@tpope:echo g:dispatch_compilers는 사용할 수 있을 것입니다.. 정확하고 덮어쓸 내용이 없는지 확인하십시오.테스트 명령이 없는 경우(914 이후).Dispatch는 이를 위해regexp를 사용하기 때문에 탈출 중인 버그가 있을 수 있습니다.

토론 #8

무슨 일이 일어났는지 확실하지 않지만 효과가 없다.실행 가능한 파일에서 점을 삭제한 다음...
:echo  g:dispatch_handlers
{'hub': 'git', 'remote-build xpy': 'rustc', 'xpy': 'rustc'}
운이 나쁘다.

토론 #9

'없다.의 명령'은'삭제.s'를 의미하는 것이 아니라 없다.s의 명령을 시도하는 것을 의미한다.e. 예를 들어 x.py의 이름을 x로 바꾸고 'x': 'rustc'를 시도합니다.

토론 #10

네, 그렇게 했습니다.나는 x.pyxpy, remote-build.shremote-build로 바꾸고vim 파일에서 변경했다.

토론 #11

:echo g:dispatch_handlers


잘못된 변수입니다.복사/붙여넣기 오류?
복사/붙여넣기 오류를 가정합니다. for 순환을 디버깅하는 것 외에 제공할 수 있는 것은 없습니다.
https://github.com/tpope/vim-dispatch/blob/a99a671aff87f77da9ac3461e589393b5ecfcd88/autoload/dispatch.vim#L632-L637
컴파일러 파일을 찾지 못해서 실패하지 않도록 :echo findfile('compiler/rustc.vim', escape(&rtp, ' ')) 먼저 검사할 수 있습니다.

토론 #12

네, 잘못된 복사와 붙여넣기g:dispatch_compilersecho findfile('compiler/rustc.vim', escape(&rtp, ' '))가 저에게 정확한 것을 주었습니다.무슨 일이 일어났는지 확실하지 않다.시간 있을 때 이거 디버깅할게요.g:dispatch_compiler 시작 과정의 특정 부분이나 점에서 정의해야 합니까?

토론 #13

전화하기 전에:Dispatch 정의를 내리면 잘해야 한다.

토론 #14

@tpope에서 뭔가를 볼 수 있는 기회가 있었지만 compiler_split 호출되지 않았습니다.
https://github.com/tpope/vim-dispatch/blob/11420880486936bcbadd271e818e22337a874501/autoload/dispatch.vim#L857실행 가능한 파일이 -- 이기 때문에 사실입니다.
이게 바로 Make가 여기서 하는 일이에요.https://github.com/tpope/vim-dispatch/blob/11420880486936bcbadd271e818e22337a874501/plugin/dispatch.vim#L19-L21
만일의 경우를 대비해서 저는 Make를 사용하고 있는데 이런 상황에서 사용해야 할지 모르겠습니다Dispatch.

토론 #15

충치를 방지하기 위해 프로젝트에 다음과 같은 내용을 포함하는 .projections.json 파일이 있습니다...
$ cat .projections.json 
{
    "*": {
        "make": "~/src/bin/remote-build.sh ./x.py"
    }
}
이것이 바로 :Make build stuff 업무를 ~/src/bin/remote-build.sh ./x.py build stuff까지 확장한 이유입니다. 왜vim dispatch와 이곳에서 발생한 모든 일들--이 실행 가능한지 모르겠습니다:).더 많은 정보를 계속 제공해 주셔서 기쁩니다.

토론 #16

Projectionist"make"를 사용한다면 Projectionist는 Dispatch가 아닌 컴파일러를 선택할 것입니다.그러나 상영원이 스케줄링에 대해 문의를 시도했습니다.
https://github.com/tpope/vim-projectionist/blob/438b58aab54624e554d71063a69ba3d1e1bfbc2f/autoload/projectionist.vim#L603-L615

토론 #17

맞아요.https://github.com/tpope/vim-projectionist/blob/8dda7acb7e24b44ef691ba19b35f585e97e91b30/autoload/projectionist.vim#L604나에게 remote-build를 주었지만 .sh는 없었다. 그러나 어쨌든 이것은 컴파일러가 아니었다. 왜냐하면 이것은 사용자 정의 명령이기 때문이다. 그리고 네가 말한 바와 같이 질문Dispatch을 하고 나에게 잘못된 것을 주었기 때문이다.https://github.com/tpope/vim-dispatch/blob/11420880486936bcbadd271e818e22337a874501/autoload/dispatch.vim#L633- L634 체크해봐...

토론 #18

네, 발생한 일을 찾았습니다. 이것은makepkg에서dispatch_compilers까지의 직접 번역이 아닙니다.
makepkg을 사용하면 다음과 같은 기능을 실현할 수 있습니다...
" CompilerSet makeprg=remote-build.sh\ x.py
사용dispatch_compilers필요해...
let g:dispatch_compilers = {
      \ 'x.py': 'rustc',
      \ '~/src/bin/remote-build.sh ./x.py': 'rustc'}
아니...
let g:dispatch_compilers = {
      \ 'x.py': 'rustc',
      \ 'remote-build.sh x.py': 'rustc'}
내가 처음 시도한 것처럼.
그렇게 지도 모른다, 아마, 아마...https://github.com/tpope/vim-projectionist/blob/8dda7acb7e24b44ef691ba19b35f585e97e91b30/autoload/projectionist.vim#L604makepkg의 작업 방식과 더욱 유사하게 조정할 수 있습니다.

토론 #19

저는 제 이유를 믿습니다. CompilerSet 평론은 마지막 탐색이고 설정은 심사숙고한 것이기 때문에 우리는 지승 사용자를 시도해서는 안 됩니다.

좋은 웹페이지 즐겨찾기