2014-08-01 1 views
0

Я ищу способ запустить файл .do из Stata из Vim.Как запустить файл Stata do в Vim

Вот что я проверил до сих пор:

  1. В этой ссылке: http://fmwww.bc.edu/repec/bocode/t/textEditors.html#vim функции Vim были предложены;
  2. rundo.exe файл можно скачать здесь: http://huebler.blogspot.com/2008/04/stata.html

Однако, после того, также изменяя файлы .ini, как предложено, я все еще не могу запустить следующую функцию Vim, которая определена в _vimrc:

fun! RunDoLines() 
    let selectedLines = getbufline('%', line("'<"), line("'>")) 

    if col("'>") < strlen(getline(line("'>"))) 
     let selectedLines[-1] = strpart(selectedLines[-1], 0, col("'>")) 
    endif 
    if col("'<") != 1 
     let selectedLines[0] = strpart(selectedLines[0], col("'<")-1) 
    endif 

    let temp = tempname() . ".do" 
    call writefile(selectedLines, temp) 

    " *** CHANGE PATH AND NAME TO REFLECT YOUR SETUP. USE \\ INSTEAD OF \ *** 
    exec "!start C:\\Program Files\\Scripts\\rundo.exe " . temp 

    " Delete the temp file after Vim closes 
    au VimLeave * exe "!del -y" temp 
endfun 

Как я отобразил эту функцию <F9> с помощью: map <F9> :<C-U>call RunDoLines() <Enter> , вот сообщения об ошибке я получаю при нажатии <F9> при открытии profile.do через Vim в домашнем каталоге STATA в.

enter image description here

Мой Vim на Github: https://github.com/llinfeng/Vim-Win; извлеченная папка, содержащая файл rundo.exe, находится на моем Dropbox: https://www.dropbox.com/sh/5tneckhr1rfrp5x/AABLZ4HGElbdbIGBGrvE7Zfta

Где я ошибаюсь?

PS: хорошая новость заключается в том, функция следующие Rundo() работает хорошо, за исключением одного вопроса:

fun! RunIt() 
    wa 
    !start /min "C:\Users\Linfeng\rundo.exe" "%:p" 
endfun 

Проблема: если файл .do содержит ошибку и Stata жалуется на него, ключ Ctrl (или Alt) будет удерживаться. Это делает нажатием Tab, как если бы Alt-Tab, который меняет окна. Блокировка клавиш выйдет только после нажатия Ctrl за один раз.

+0

Просьба уточнить, что означает «не может работать». Есть ли сообщения об ошибках? –

+0

Одна вещь, которую я заметил, это то, что .ini ссылается на Stata 13, тогда как текущая версия - 13.1, если вы ее обновили. –

ответ

1

Честно говоря, это неправильное использование функции RunDoLines(), которая вызвала проблему. Функция по-прежнему совместима с Vim в Windows 8.1.

Для вызова этой функции:

  1. Добавить vnoremap в <F9> отображения.
  2. Визуально выберите (несколько) строк.
  3. Пресс F9.

Это не сработает, если вы просто поместите курсор на одну строку. Строка должна быть визуально выбрана. Функция должна быть заполнена «выбранной линией», которая должна быть визуально выбрана, насколько мне известно. Выбор строки кода в режиме вставки путем перетаскивания мыши не будет генерировать параметры, необходимые для этой функции.

Оставайтесь в нормальном режиме и нажмите V, чтобы запустить кусок кода!

 Смежные вопросы

  • Нет связанных вопросов^_^