Хобрук: Ваш путь к мастерству в программировании

Окно Clojure inferior-lisp в Emacs отображается поверх кода при выполнении C-c C-l

Я установил свой Emacs для Clojure, используя инструкции на веб-сайте Clojure. Я использовал первый вариант при настройке переменной inferior-lisp-program, в основном "java clojure.main".

При такой настройке C-c C-z помогает мне перейти к Clojure REPL. Однако, когда я редактирую файл и набираю C-c C-l, чтобы загрузить файл в REPL, Emacs всегда переключает буфер из окна кода в окно REPL. Это очень раздражает. Это происходит даже тогда, когда у меня есть два вертикально разделенных окна, с кодом слева и REPL справа. Я получаю два зеркальных окна REPL.

Я помню, что Clojure Box, который представляет собой Emacs + Clojure для Windows, делает это правильно, поэтому я знаю, что это проблема установки.

Как мне заставить Emacs просто переключиться на окно справа?

20.08.2010

Ответы:


1

Я использую C-c C-k для компиляции текущего буфера. Тогда результат этой компиляции будет доступен вам в любом буфере, в котором работает REPL. Emacs не будет переключать какие-либо буферы: вы просто компилируете буфер.

20.08.2010

2

В режиме clojure v 1.7.1, который, как мне кажется, является самым последним, C-c C-l привязан к clojure-load-file', в конце которого жестко запрограммирован (switch-to-lisp t). Другими словами, нет способа предотвратить его переключение на lisp без переопределения switch-to-lisp, чтобы проверить переменную, чтобы увидеть, действительно ли она должна вызывать.

Тем не менее, clojure-load-file в большинстве случаев кажется немного тяжеловесным. Мой обычный рабочий процесс включает установку области для всего буфера и вызов lisp-eval-region с помощью C-c C-r. Эта функция принимает параметр option and-go, который указывает, следует ли ей переключаться на буфер процесса подчиненного лиспа или нет после вызова.

Продолжая работать, я обычно переопределяю функции и оцениваю их, используя lisp-eval-last-sexp, который я вызываю с помощью C-c C-e, который также принимает необязательный флаг and-go.

20.08.2010
  • Похоже, это нужно исправить в clojure-mode.el; это ужасное поведение по умолчанию. (Я никогда не использовал clojure-load-file.) 21.08.2010

  • 3

    Я использую SLIME с версией 20100404, и со мной этого не происходит, ни с C-c C-l, ни с C-c C-k. Может вы используете другую версию slime.el? Используйте M-x find-library <RET> slime <RET> и ищите его версию в верхних комментариях, чтобы убедиться в этом.

    20.08.2010

    4

    В inf-lisp.el вы можете видеть, что он добавляет "* inferior-lisp *" к списку окон с одинаковым буфером:

    (add-hook 'same-window-buffer-names "*inferior-lisp*")
    

    Чтобы удалить его из этого списка, вы можете поместить в свой .emacs:

    (setq same-window-buffer-names (delete "*inferior-lisp*" same-window-buffer-names))
    
    02.09.2010
    Новые материалы

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

    Введение в Джанго Фреймворк
    Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..