[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: а посоветуйте эмулятор терминала



On 2013-12-15, Artem Chuprina wrote:

Ни с первым ни с вторым решения не знал, но у самого такие же вопросы
возникали.

> Первая.  Довольно часто запускается долгая компиляция, и хочется уже
> переключиться на что-то другое (так, что окно с выводом компилятора
> становится не видно), но хочется сигнализацию о том, что команда
> завершилась.  Хочется уже _после_ того, как ее запустил.  То же для
> emacs.
>

ii  notification-daemon 0.7.6-1  daemon for displaying passive pop-up notifications

http://www.gnu.org/software/emacs/manual/html_node/elisp/Notifications.html

  (require 'notifications)
  (notifications-notify
      :title "Title."
      :body "Hello!"
      :urgency 'critical
      :timeout 100)

  (defvar compilation-finish-functions nil
    "Functions to call when a compilation process finishes.
  Each function is called with two arguments: the compilation buffer,
  and a string describing how the process finished.")

Или:

  (defun my-compilation-finish-notification (buffer status)
    (notifications-notify
      :title (buffer-name buffer)
      :body (format "Compilation finished with %s."  (if (string-match "^finished" status) "success" "failure"))
      :timeout 100))
  (add-to-list 'compilation-finish-functions #'my-compilation-finish-notification)

Данная функция вызывается на M-x compile, M-x grep и т.д. Внутри по

  (eq 'compilation-mode (buffer-local-value 'major-mode buffer))

можно отфильтровать нужные режимы.

notification-daemon довольно таки тупой. Например, игнорирует параметр
timeout. Рад буду услышать альтернативы.

> Вторая.  Хочется инкрементный поиск по истории _вывода_.  Угу, я уже
> слышу "M-x term" или "M-x eterm", но запускать по емаксу на каждый шелл
> (а как иначе видеть пять штук одновременно? у emacs не шибко удобный
> window management) - это перебор.  Хотя вот есть в дистрибутиве пакет
> emacs-window-layout...  Впрочем, тьфу ты, черт, есть же вполне
> пристойный frame management, если сесть и настроить несколько ручек...

Та нормальный менеджмент. C-x 2 (гориз), C-x 3 (верт), C-x 1 (только я), C-x 0
(скрой меня), С-x + (сбалансируй размеры окон).

Запускать один Emacs обязательно. Так через терминальный интерфейс
(recovery/ssh) у Вас будет общий буффер обмена, можно из мана копировать текст
в консоль или из консоли в конфиг-файл!

Или screen (поиск и копи-паста):

http://web.mit.edu/gnu/doc/html/screen_11.html#SEC60
http://michael.thegrebs.com/2008/07/10/screen-copy-mode-can-copy/
http://stackoverflow.com/questions/16111548/how-copy-the-gnu-screen-copy-buffer-to-clipboard
http://www.serverwatch.com/tutorials/article.php/3838021/Cut-and-Paste-With-Screen.htm

Ну или записывать сесию по script и лазить по файлу в любибом редакторе (не
знаю как оно флюшится часто)...

-- 
Best regards!


Reply to: