Есть ли функция emacs для преобразования слова с верблюжьим регистром в подчеркивание? Что-то вроде:
longVariableName
Mx
to-underscore
long_variable_name
ответ @ens' был близким, но небольшим багги для меня на Emacs 26.1. Я исправил ошибку и добавил способность через аргумент префикса C-u, определить, хотите ли Вы, чтобы первая буква Camel-регистра была нижним регистром:
(defun toggle-camelcase-underscores (first-lower-p)
"Toggle between camelcase and underscore notation for the
symbol at point. If prefix arg, C-u, is supplied, then make first
letter of camelcase lowercase."
(interactive "P")
(save-excursion
(let* ((bounds (bounds-of-thing-at-point 'symbol))
(start (car bounds))
(end (cdr bounds))
(currently-using-underscores-p (progn (goto-char start)
(re-search-forward "_" end t))))
(if currently-using-underscores-p
(progn
(replace-string "_" " " nil start end)
(upcase-initials-region start end)
(replace-string " " "" nil start end)
(when first-lower-p
(downcase-region start (1+ start))))
(replace-regexp "\\([A-Z]\\)" "_\\1" nil (1+ start) end)
(downcase-region start (cdr (bounds-of-thing-at-point 'symbol)))))))