Процесс Vim останавливается после выполнения внешней команды

Я недавно использовал vim для программирования на C. Я создал ярлыки для компиляции и запуска программ из самого vim, но в последнее время процесс vim останавливается после выполнения программы.

foo.c:

#include <stdio.h> int main() { printf("Hello World!\n"); return 0; } 

.vimrc:

 set shellcmdflag=-ic syntax on autocmd FileType c map <F6> :!gcc -o "%:p:r.out" "%:." <bar> more<CR> autocmd FileType c map <F7> :!%:p:r.out<CR> 

Если я нажму F6 , программа будет компилироваться отлично. Но если я нажму F7 , я получаю следующее:

 Hello World! [1]+ Stopped vim test.c 

Я могу использовать fg чтобы начать процесс резервного копирования, но это немного раздражает. Кто-нибудь знает, как это исправить?

Не используйте интерактивную оболочку для выполнения команд. (Это i в -ic .)

По умолчанию shellcmdflag ( -c ) должен работать нормально.

Если вы указываете -i , чтобы получить bash, чтобы прочитать ваш .bashrc файл (что является побочным эффектом запуска интерактивной оболочки), вам лучше было бы просто сообщить bash, чтобы прочитать сценарий среды запуска. Цитирование справочной страницы bash:

Когда bash запускается неинтерактивно, для запуска сценария оболочки, например, он ищет переменную BASH_ENV в среде, расширяет ее значение, если она появляется там, и использует расширенное значение в качестве имени файла для чтения и выполнения , Bash ведет себя так, как если бы выполнялась следующая команда:

  if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi 

Но значение PATH не используется для поиска имени файла.

Вы можете установить переменные среды внутри vim :let

  • Как найти кодировку текущего буфера в vim?
  • Автозаполнение в Vim
  • Патоген не загружает плагины
  • Проблема с VIM
  • Как заставить vim открывать сразу несколько файлов на вкладки
  • Как запустить vim без выполнения / etc / vimrc?
  • Что такое в файле .vimrc?
  • Vim: Как правильно указывать html-код в файле php?
  • Как использовать регистры vim?
  • Перейти к определению функции в vim
  • Vim: выбор копии в буфер обмена OS X
  • Interesting Posts

    Почему на жестком диске SATA есть перемычки?

    UnityWebRequest Встраивание данных пользователя + пароль для HTTP Basic Authentication, не работающих на Android

    Что произойдет, если мы уменьшим размер hiberfil.sys

    Получить UserID зарегистрированного пользователя в Asp.Net MVC 5

    Создание индикаторной матрицы

    : проверка завершилась неудачно: проверка завершилась неудачно: hdf_blobs_ -> shape (0) == num (200 против 6000)

    Один DbContext для каждого запроса в ASP.NET MVC (без контейнера МОК)

    Как рандомизировать два ArrayLists таким же образом?

    Можно ли использовать функцию для значения по умолчанию в MySql?

    Исключения из функции zsh correctall?

    Получение текущего экземпляра fragmentа в viewpager

    В чем смысл системы-autodeath?

    AVFoundation, как отключить звук затвора при захватеStillImageAsynchronouslyFromConnection?

    Распределенный tensorflow: разница между репликацией внутри графика и репликацией между графиками

    «Не удалось получить свойство VLookup classа WorksheetFunction»

    Давайте будем гением компьютера.