Оболочка cygwin в Emacs - выход испорчен? - PullRequest
5 голосов
/ 03 октября 2010

Я видел ответ здесь, как запустить оболочку cygwin.Тем не менее, выход оболочки cygwin испорчен.

(defun cygwin-shell ()
  "Run cygwin bash in shell mode."
  (interactive)
  (let ((explicit-shell-file-name "C:/cygwin/bin/bash"))
    (call-interactively 'shell)))
(setq  explicit-bash-args '("--login" "-i"))

, и вот пример вывода оболочки

]0;~
seth@seth ~
$ cd ~
]0;~
seth@seth ~
$ dir
]0;~
seth@seth ~

, как видно, выход облажался.Как это исправить?

edit: я только что заметил, что ^ [] 0 всегда появляется в конце каждой команды \ в противном случае выводимый текст работает нормально.В любом случае, чтобы избавиться от этой концовки?

Ответы [ 4 ]

4 голосов
/ 03 октября 2010

хорошо, я понял это.в ~ / .bashrc я добавил

export PS1="\e[0;31m[\u@\h \W]\$ \e[m "

, что делает подсказку красным в одной строке (это легко для глаз по сравнению с желтым в исходной подсказке cygwin!)

см. http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/

Кроме того, вы должны убедиться, что вы не используете DOS-окончания.Чтобы преобразовать окончание dos в unix, наберите Cx RET f unix и сохраните или поместите в файл .emacs

(set-buffer-file-coding-system 'unix)
2 голосов
/ 23 октября 2012

В Emacs 24.2 мне пришлось поместить строку export PS1=... из ответа Сета (2) в ~ / .emacs_bash, а не в ~ / .bashrc.

2 голосов
/ 04 октября 2010

Посмотрите на EmacsW32 .С ним ваша .emacs конфигурация становится

  (setq w32shell-cygwin-bin "c:\\cygwin\\bin")
  (require 'w32shell)
  (w32shell-add-emacs)
  (w32shell-set-shell "cygwin")

и все работает.

1 голос
/ 14 июля 2013

Используйте

export PS1="\e[0;32m\u@\h\e[m \e[0;33m\w\e[m\n\$ "

Если вы хотите сохранить исходный цвет и формат.

...