VIM: Сохранить и Выполнение одновременно?

Код JaredPar работает, но только для одного уровня наследования. Для неограниченного уровня наследования используйте следующий код

public bool IsTypeDerivedFromGenericType(Type typeToCheck, Type genericType)
{
    if (typeToCheck == typeof(object))
    {
        return false;
    }
    else if (typeToCheck == null)
    {
        return false;
    }
    else if (typeToCheck.IsGenericType && typeToCheck.GetGenericTypeDefinition() == genericType)
    {
        return true;
    }
    else
    {
        return IsTypeDerivedFromGenericType(typeToCheck.BaseType, genericType);
    }
}
43
задан Nope 2 March 2009 в 12:02
поделиться

7 ответов

Опция 1:

Запись функция, подобная этому и месту это в Ваших настройках запуска:

function myex()
   execute ':w'
   execute ':!!'
endfunction

Вы могли даже отобразиться, ключевая комбинация к нему - смотрят документы.

<час>

Опция 2 (лучше):

Взгляд на документацию для переотображения нажатий клавиш - можно быть в состоянии выполнить его через простую ключевую перекарту. Следующие работы, но имеет "filename.py" hardcoded. Возможно, можно ли закопать и выяснить ли, как заменить это текущим файлом?

:map <F2> <Esc>:w<CR>:!filename.py<CR>

После отображения этого, можно просто нажать F2 в командном режиме.

IMAP, vmap, и т.д.... отображения в различных режимах. Вышеупомянутое только относится к командному режиму. Следующее должно работать в режиме вставки также:

:imap <F2> <Esc>:w<CR>:!filename.py<CR>a

Раздел 40.1 из руководства VIM очень полезен.

28
ответ дан gahooa 23 September 2019 в 12:16
поделиться

Хорошо, самая простая форма того, что Вы ищете, является командой канала. Это позволяет Вам выполнять несколько команд cmdline на той же строке. В Вашем случае две команды являются записью 'w' и выполняют текущий файл'! %: p'. Если у Вас есть определенная команда, Вы выполняете для Вас текущий файл, вторая команда становится, например,'! % Python: p'. Так, самый простой ответ Вам вопрос становится:

:w | ! %:p
 ^ ^ ^
 | | |--Execute current file
 | |--Chain two commands
 |--Save current file

Одна последняя вещь отметить состоит в том, что не все команды могут быть объединены в цепочку. Согласно документы Vim , определенные команды принимают канал как аргумент и таким образом повреждают цепочку...

66
ответ дан Douglas Mayle 23 September 2019 в 12:16
поделиться

Используйте автозапись опция:

:set autowrite

Запись содержание файла, если это было изменено на каждом: затем: перемотка: в последний раз: во-первых: предыдущий: остановитесь: приостановите: тег, :! : сделайте, CTRL-] и команда CTRL-^ [...]

12
ответ дан strager 23 September 2019 в 12:16
поделиться

Комбинация команды, кажется, работает до | символ, поэтому возможно, что-то как искажение :w|!your-command-here к отличному сочетанию клавиш?

5
ответ дан Dimitri Tcaciuc 23 September 2019 в 12:16
поделиться

Здесь Вы идете:

:nmap <F1> :w<cr>:!%<cr>

сохраняют & выполненный (необходимо быть в n режиме, хотя - просто добавляют esc и поскольку я режим)

5
ответ дан Rook 23 September 2019 в 12:16
поделиться

Я получил следование из подсказок по энергии Wiki:

command! -complete=file -nargs=+ shell call s:runshellcommand(<q-args>)
function! s:runshellcommand(cmdline)
  botright vnew
  setlocal buftype=nofile bufhidden=wipe nobuflisted noswapfile nowrap
  call setline(1,a:cmdline)
  call setline(2,substitute(a:cmdline,'.','=','g'))
  execute 'silent $read !'.escape(a:cmdline,'%#')
  setlocal nomodifiable
  1
endfunction

, но измененный в новинку для vnew на третьей строке, затем для Python у меня есть следующий

map <F9> :w:Shell python %<cr><c-w>

, удар f9 сохраняет, выполняет и выводит вывод в новое вертикально, буфер царапины разделения, для легкого дергания/сохранения и т.д.... также поражает c-w, таким образом, я только должен нажать h/c для закрытия, это / пятится к моему коду.

1
ответ дан sjh 23 September 2019 в 12:16
поделиться
  1. Полагают, что переключение БЕЗДЕЙСТВУЕТ. F5 делает все.

  2. Рассматривают переключение на Комодо. Можно определить команду так, чтобы F5 сделал все.

-12
ответ дан S.Lott 23 September 2019 в 12:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: