В M-x powershell
и M-x shell
, терминал «немой» и понимает только программы, которые печати, но не программы, которые идут полноэкранное.
Таким образом, он будет работать с ls
, cat
и cd
, но потерпит неудачу на vim
, man
и less
. Бьюсь об заклад, ваш скрипт пытается открыть vim
, нет?
Это ограничение существует по какой-либо причине: когда программа переходит в полноэкранный режим, она захватывает все входные данные клавиатуры. Итак, если вы откроете vim
и введите C-x
, выполнит ли она команду Emacs для C-x
или команду Vim? Если вы всегда запускаете команду Emacs, это означает, что при вводе j
она будет вставлять j
в буфер Emacs вместо прокрутки в Vim. Vim станет непригодным. Если вы всегда запускаете команду Vim, это означает, что вы больше не можете использовать C-x C-c
, чтобы выбраться из Emacs, так как команда будет поглощена Vim.
Один способ обхода - использовать M-x term
. В term
все нажатия клавиш отправляются в программу, поэтому вы можете открывать и использовать Vim, как обычно. Чтобы запустить команду Emacs, начните с C-c
. Вы можете узнать больше об этом here. Я не уверен, что он существует в Windows.
Другое решение использовать emacsclient
:
;; in init.el
(server-start)
# in a shell
$ emacsclient file.txt
Это позволит открыть файл в существующем окне Emacs. Когда вы закончите редактирование файла, нажмите C-x #
, чтобы вернуться в оболочку.
Нет сценария, который не пытается открыть vim. Является просто компиляция материалов, настройка некоторой переменной среды. Я думаю, что что-то не так с powershell.el. – Yogi
Какое сообщение об ошибке вы получаете, когда скрипт выходит из строя? –
Теперь он работает. Я использовал автозаполнение, которое не добавлялось. \ В начале пути. После того, как я добавил. \ Он работает. Однако, когда я запускаю скрипт, используя powershell -noexit "&" "D: \ build.ps1" "", он застревает как vim. Таким образом, это может быть та же причина, что и vim. – Yogi