Ответ 1
Хорошо. Эту проблему можно решить, добавив
(setq default-frame-alist '((cursor-color . "white")))
хотя я не понимаю, почему это не было проблемой раньше.
Смотрите этот форум.
Если я запустил emacs --daemon
(в .xinitrc
или новее), а затем emacsclient -c
, новый созданный кадр имеет черный цвет курсора, независимо от цвета или любых других параметров. Точнее, перед тем, как я набираю что-либо, цвет курсора белый (или другой цвет), но при первых нажатиях он становится черным и не может быть изменен с помощью set-cursor-color
. Оба значения по умолчанию и мои пользовательские цвета являются черными, поэтому он делает редактирование очень неудобным.
Если я запустил emacs
и M-x server-start
вместо emacs --daemon
, эта проблема не появится. Но таким образом мне нужно сохранить один "главный" кадр emacs и не убивать его случайно, это не похоже на приятное решение.
У меня есть следующий блок в .emacs.d/init.el
, но это не помогает:
(set-cursor-color "red")
(setq initial-frame-alist '((cursor-color . "red")))
(setq default-frame-alist '((cursor-color . "red")))
(add-hook 'window-setup-hook '(lambda () (set-cursor-color "red")))
(add-hook 'after-make-frame-functions '(lambda (f) (with-selected-frame f (set-cursor-color "red"))))
Если я запустил M-x describe-face RET cursor
, я получаю:
(...)
Defined in `faces.el'.
Family: unspecified
Foundry: unspecified
Width: unspecified
Height: unspecified
Weight: unspecified
Slant: unspecified
Foreground: unspecified
Background: black
Underline: unspecified
Overline: unspecified
Strike-through: unspecified
Box: unspecified
Inverse: unspecified
Stipple: unspecified
Font: unspecified
Fontset: unspecified
Inherit: unspecified
Хорошо. Эту проблему можно решить, добавив
(setq default-frame-alist '((cursor-color . "white")))
хотя я не понимаю, почему это не было проблемой раньше.
Смотрите этот форум.
Я считаю, что в недавнем Emacsen использование свойств рамки для установки цвета курсора не является предпочтительным методом. Поэтому вместо использовать set-cursor-color
или initial-frame-alist
/default-frame-alist
, попробуйте:
(set-face-background 'cursor "red")
Или, возможно:
(set-face-attribute 'cursor nil :background "red"`)
Bwahahaha! Я думаю, что никто не опубликовал решение за последние 2 года, потому что вы все пользователи EVIL emacs!
По правде говоря, я сейчас пробовал злой режим, и я просто решил эту проблему в своей системе. Поместите это в файл .emacs и курите его:
'(evil-default-cursor (quote (t "white")))
Я только что открыл ошибку против репозитория Evil в битбакете.
Для себя я обнаружил, что после того, как прошло 6 лет, чтобы по-настоящему овладеть emacs, многоядерные аккорды были тяжелыми для моих сухожилий. Злой режим может позволить мне снова использовать emacs, что хорошо. Поскольку Benedict говорит (в контексте функционального программирования), "Некоторое зло часто необходимо для выполнения работы." Похоже, что это относится и к Emacs.
P.S. Ибо кто-то считает, что этот ответ - это просто DH0 или иначе незрелый и неулокальный, в основном язык в щеке вражда между пользователями Emacs и VI бушевала годами. Emacs имеет свой собственный Церковь Emacs, VI имеет видеоигру, Вторая мировая война. Поэтому неудивительно, что самый успешный порт VI-клавиш для Emacs был назван злым режимом (у зла есть слово VI в нем). Мне нравятся оба редактора и хвалят злых разработчиков, которые, в конце концов, сделали операции с клавишами VI внутри emacs.
Это сработало для меня:
(setq evil-default-cursor t) ;; Now evil takes the default cursors
(set-cursor-color "white") ;; Set it to white
(set-mouse-color "white") ;; Same
У меня тоже такая же проблема, уже много лет.
В моем случае я:
M-x
set-cursor-color
"white"<ENTER>
Это работает для меня, но я должен делать это каждый раз, что sux..
Вернувшись на свое прежнее рабочее место, я решил это, но у меня нет init.el, который у меня был на моем старом рабочем месте, и теперь мне нужно разобраться в этом снова, надеюсь, кто-то здесь придумает это передо мной.