Инсталирах PowerShell пакет в emacs. Аз стартирах powerhell използвайки M-x powershell. В прозореца на powerhell, аз съм в състояние да стартирате команда като LS и т.н., но аз не съм в състояние да изпълни powershell скриптове. Опитах се да използвам cmd като обвивка по подразбиране в emacs и да изпълня скрипта powershell от него, както е описано тук;
Как да стартирате PowerShell в CMD
но замръзва. По същия начин, когато се опитвам да стартирам vim в powershell / cmd в emacs, той замръзва. Искам да посоча, че скриптовете и vim работят добре в powershell и cmd, ако го изпълнявам извън emacs.
Отговори:
1 за отговор № 1в 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
, Можете да прочетете повече за него тук, Не съм сигурен, че съществува в Windows.
Друго решение за използване emacsclient
:
;; in init.el
(server-start)
# in a shell
$ emacsclient file.txt
Това ще отвори файла в съществуващия прозорец на Emacs. Когато приключите с редактирането на файла, натиснете C-x #
да се върнем към черупката.