Vim i matlab GUI - Emuluj Matlab Run (<F5>) za pomocą Vima
Używam linux i gvim / vim jako zewnętrznego edytora dla matlab.
Używając edytora matlab możesz uruchomić plik naciskając F5. Próbuję odtworzyć to za pomocą gvim-gtk (oficjalne pakiety debian).
Wiem, że możliwe jest skierowanie nazwy pliku lub zaznaczenia do matlab w „trybie bash”, tak jak poniżej:
execute '!echo "' ."run(\'".expand("%:p")."\')" . '"| matlab -nojvm'
execute '!matlab -nodisplay < '.expand("%:p")
noremap <C-CR> :?%%?;/%%/w !matlab -nojvm
Ale chcę użyć gula Matlab (który w moim przypadku jest już otwarty). Oto rozwiązanie, które według mnie mogłoby mi się udać:
Użyj mapowania klucza w vim, które:(a) umieść w schowku coś w rodzaju: run ('path-to-file') lub cd ('folder'); run ('filename')(b) wywołuje polecenie powłoki, które skupia się na GUI matlabW tym momencie powinienem być w oknie poleceń matlab, więc po prostu wciskam Ctrl-V i zawartość schowka powinna zostać wklejona. (Używam Linuksa, ale Matlab z skrótami klawiszowymi Windows)Krok 1a: Następujące polecenie umieści komendę run ('filename') w schowku, a matlab wklei ją po naciśnięciu CTRL-V
let @+="run(\'".expand("%:p")."')"
Dwa poniższe będą działać z wklejaniem środkowego przycisku linux (ale to nie jest to, czego chcę, ponieważ chcę uniknąć myszy w tym kroku)
let @*="run(\'".expand("%:p")."')"
execute '!echo "' . "run(\'".expand("%:p")."\')" . '"| xclip'
Krok 1b: Aby zwrócić uwagę na okno Matlaba, używam następującego polecenia:
wmctrl -a MATLAB &
To działa dobrze, ale zobaczysz także twoją przeglądarkę, jeśli jesteś na stronie ze słowem matlab w tytule (jak ten, który czytasz ...). (patrz także bardziej złożone rozwiązanieCzy istnieje polecenie linux określające identyfikatory okien powiązane z danym identyfikatorem procesu? )
Moja (teraz stara) opcja, ale CTRL-V nie działa! Tylko wklejanie za pomocą myszy:
function! MatRun()
let @+="run(\'".expand("%:p")."')"
let @*="run(\'".expand("%:p")."\')"
:call system('xclip', @+)
!wmctrl -a MAT
endfunction
map <F5> :call MatRun() <cr><cr>
W jakiś sposób CTRL-V nie działa w tym przypadku w połączeniu z wmctrl (patrz edycja poniżej). Cała rzecz polega na tym, aby unikać używania myszy do tej operacji.
Dziękuję za pomoc.
Edycja i opcja robocza Moje złe, korzystałem z xclip, gdzie powinienem użyć xclip -selection c. Zobacz moją odpowiedź poniżej ..
Byłbym zadowolony, gdyby ktoś znalazł lepsze rozwiązanie, na przykład: wklejając bezpośrednio w oknach poleceń matlab, upewniając się, że jesteś w oknach poleceń (Ctrl-0), lub unikając łapania przeglądarki za pomocą wmctrl.