[질문] Emacs 특수기호 입력 global-set-key

emacs_newbie의 이미지

[문제 개요]

몇 달 전에 Emacs 입문해서 신나게 쓰고 있습니다 :D

여기저기 부등호를 쓸 일이 있는데요, 크다(>), 작다(<)는 입력이 쉽지만
크거나 같다(≥), 작거나 같다(≤)는 매번 유니코드 입력하기가 번거로워서

결국 이거저거 찾아보다 제 .emacs에 다음과 같이 2줄을 추가해 봤습니다.

(global-set-key (kbd "C-<") (lambda () (interactive) (insert "≤")))
(global-set-key (kbd "C->") (lambda () (interactive) (insert "≥")))

이걸 각각 C-x C-e로 실행시키고 나면 "C-<", "C->" 하면 의도한 대로 ≤, ≥가 찍히는데,

문제는 Emacs를 처음 켜고 나서 "C-<", "C->" 하면 \342돞, \342돟 이렇게 뜹니다... (사진 첨부)

(흥미롭게도 여기 브라우저 입력창에 그대로 복붙하니 \342 부분이 없어지네요)

----------
[해결 노력]

1. 일단 스타트업에 .emacs의 해당 줄들이 실행되지 않는 것은 아닌 듯 합니다.

해당 줄들을 지우면 (당연하지만) "C-<", "C->" 하면 바인딩이 없기 때문에 ~ is undefined라고 뜹니다.

2. 제 .emacs에 편의를 위해 만든 잡다한 코드들이 들어차 있어서 그런 것인가 하여

새로이 Emacs를 다운받아서 아래와 같은 간소한 내용만 .emacs에 넣어본 결과 같은 결과를 얻었습니다.

그리고 Korean 대신 English로 해보았지만 여전히 같은 결과를 얻었습니다.

;; Set language environment
(set-language-environment "Korean")
(prefer-coding-system 'utf-8)
 
;; Useful keybindings
(global-set-key (kbd "C-<") (lambda () (interactive) (insert "≤")))
(global-set-key (kbd "C->") (lambda () (interactive) (insert "≥")))

3. 이건 제 추측이지만 뜬금없이 한글이 나오는 걸로 보아 인코딩 문제일 듯 합니다.

여전히 뭐가 문젠지, 어떻게 하면 해결할 수 있을지 잘 모르겠네요...

KLDP 고수님들에게 도움을 부탁해봅니다! 미리 감사드립니다.

File attachments: 
첨부파일 크기
Image icon emacsbug.png836바이트
황병희의 이미지

우분투 18.04 LTS/ GNU Emacs 27.1 에서 실험했습니다.

Quote:
(define-key global-map "\C-x<" (lambda () (interactive) (insert "≤")))
(define-key global-map "\C-x>" (lambda () (interactive) (insert "≥")))
(prefer-coding-system 'utf-8)
(set-language-environment "UTF-8")

요컨데 buffer-file-coding-system 을 찍어보시면 뭐가 이상한지 감잡을 수 있을거 같아요~

[우분투 18.04 파여폭스 나비에서 적었어요~]

댓글 첨부 파일: 
첨부파일 크기
Image icon Screenshot from 2020-12-16 11-09-42.png341.1 KB

--
^고맙습니다 감사합니다_^))//

emacs_newbie의 이미지

답변 감사합니다!

다만 말씀해보신 그대로 해보아도 여전히 "\342돞", "\342돟" 를 표시하네요...

C-h v buffer-file-coding system 결과는 다음과 같습니다.

buffer-file-coding-system is a variable defined in ‘C source code’.
Its value is ‘utf-8-dos’
Local in buffer 201216.org; global value is the same.
 
  Automatically becomes permanently buffer-local when set.

제가 윈도에서 이멕스를 쓰는데 그게 문제일까요 ㅠㅠ

그리고 논외이긴 하지만 궁금한 점이 생겼는데요, 코드에서와 같이 language environment를 UTF-8로 세팅하면 한글은 어떻게 입력하시나요? (예전부터 인코딩과 한글 입력에 궁금한 점이 많아서요)

황병희의 이미지

움,,, 윈도우즈에서 이맥스를 쓰시는분의 도움이 필요할거 같아요..
제가 MS-윈도우즈가 깔린 장비가 없어서 테스트하기가 난해하네요,,,

그리고 끝에 질문 UTF-8 로 다 셋팅해둬도 한글입력에 지장이 없네유,,,
스크린샷으로 대신합니다^^^

[우분투 18.04 파여폭스 나비에서 적었어유~~~]

댓글 첨부 파일: 
첨부파일 크기
Image icon Screenshot from 2020-12-16 19-18-11.png195.34 KB

--
^고맙습니다 감사합니다_^))//

emacs_newbie의 이미지

머리부터 발끝까지 UTF-8 정말 좋네요 ㅎㅎㅎ

한 번 제 리눅스(우분투)에서도 테스트 해봤는데 말씀해주신 대로 문제 없이 키바인딩 잘 되네요...

정말 윈도 때문인지 ㅠㅠ

리눅스로 갈아타야 할텐데 내공이 모자라 듀얼부팅으로 시간날 때 들어가서 배우는 중입니다

여튼 답변 정말 감사합니다^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.