이맥스에서 한영 변환을 C-\ 조합에서 Shift-Space 또는 한/영키로 바꾸고 싶습니다.

oppor의 이미지

이맥스 또는 lisp에 대한 충분한 이해가 없어서 감도 못잡겠습니다.

방법이 없을까요?

제 예상으로는 키바인딩을 어떻게 고쳐주면 될 것 같은데 세부적으로 어떻게 해줘야 하는지 모르겠습니다.

도와 주세요~

only2sea의 이미지

아래와 같이 해 주면 동작할지 모르겠네요.

(global-set-key [?\S- ] 'toggle-input-method)

이 코드를 ~/.emacs 파일에 추가해 줍니다.

혹은 저 코드를 쓴 다음에 괄호 닫은 뒤에 위치하신 뒤에 C-x C-e 눌러주시면 적용이 됩니다.

블로그: http://turtleforward.blogspot.com

oppor의 이미지

안되네요. 전혀 반응하지 않아요.T.T...

monpetit의 이미지

.emacs 파일에

(set-language-environment "Korean")

한줄만으로도 Shift-Space가 제대로 작동할 겁니다.
Ctrl-\ 키는 일반적인 입력 변환 기능이고, Shift-Space는 한글 환경에 특화된 기능이기 때문입니다.
toggle-input-method와 toggle-korean-input-method의 차이입니다.

Shift-Space로 한영 변환이 안되는 이유는
1. (set-language-environment "Korean")을 지정해주지 않을 경우나
2. 어떤 이유에서인가 korea-util.el 등의 관련 ELisp 라이브러리가 설치되지 않았거나
3. Shift-Space 키 조합을 다른 기능이 나중에 가로채서 사용하고 있거나
4. 그것도 아니라면, 그럴 리는 없겠지만 키보드 설정이 잘못되어 해당 키 조합을 인식하지 않는
경우 중의 하나일 겁니다.

차례로 조사해 보세요.
3. Shift-Space를 다른 기능이 가로채고 있다면 Alt-x toggle-korean-input-method 라고 직접
입력해서 한영 변환이 되는지 확인한 다음에, 제대로 변환이 된다면 .emacs 의 하단에

(global-set-key (kbd "S-SPC") 'toggle-korean-input-method)

를 추가해 주세요.
4. Shift-Space 조합 자체에 의심이 간다면 .emacs의 하단에 예를 들어
(defun hello-world ()
  (interactive)
  (print '(hello world)))
 
(global-set-key (kbd "S-SPC") 'hello-world)

정도의 진단 코드를 추가해서 이맥스를 다시 실행시킨 다음, Shift-Space를 눌렀을 때 화면 하단에
(hello world)라는 메시지가 뜨는지 확인해 보세요.

현재 이맥스의 전체적인 키 설정을 보려면 C-h C-h b 키로 확인하세요.

-----
익명으로 쓴 글은 볼 수 없습니다.

jg의 이미지

Quote:
.emacs 파일에

(set-language-environment "Korean")

한줄만으로도 Shift-Space가 제대로 작동할 겁니다.

그렇기는 하지만 utf-8 환경에서는 좀 곤란합니다.

(setq default-input-method "korean-hangul")

세벌식이라면
(setq default-input-method "korean-hangul3")
(setq default-korean-keyboard "3")

등으로 하시는 것이 좋을 것 같습니다.

--
perl -e's@@JEON Myoung-jin@;sub man{s| _|her e|}
sub see{s;^;Just;;u;s;e ;Perl ;;to;print$_,$/}$uperMan=M;
s=^....=U are not=;s~$uperMan~~;&admitIt;s=U are = A=;s|young|_|;&man;
sub admitIt{say;ye;s!-\w+! Hacker!};see U'

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

monpetit의 이미지

Quote:
Quote:
.emacs 파일에
    (set-language-environment "Korean")

한줄만으로도 Shift-Space가 제대로 작동할 겁니다.

그렇기는 하지만 utf-8 환경에서는 좀 곤란합니다.

아~ 원래 utf-8에선 잘 안되나요?
이상하군요. 저도 utf-8 환경이지만
(setq default-input-method "korean-hangul")

같은 설정 없이도 여지껏 멀쩡하게 잘 쓰고 있거든요.
저도 처음엔 다른 사용자들의 .emacs 파일 설정을 복사해서 쓰다 보니 한글 관련 이러저러한 설정이 꽤나 많았습니다만 나중엔 다 필요 없어지더군요.
emacs의 version이 올라가면서 사용 환경이 진화해온 탓일 수도 있겠죠. :)

-----
익명으로 쓴 글은 볼 수 없습니다.

jg의 이미지

파일을 작성하면 euc-kr 로 인코딩 되서요;;

--
perl -e's@@JEON Myoung-jin@;sub man{s| _|her e|}
sub see{s;^;Just;;u;s;e ;Perl ;;to;print$_,$/}$uperMan=M;
s=^....=U are not=;s~$uperMan~~;&admitIt;s=U are = A=;s|young|_|;&man;
sub admitIt{say;ye;s!-\w+! Hacker!};see U'

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

monpetit의 이미지

(prefer-coding-system 'utf-8)

등을 설정하지 않아서가 아닐까요.
-----
익명으로 쓴 글은 볼 수 없습니다.
jg의 이미지

그렇군요. 저는 그것을 설정하지 않았습니다.
저는 세벌식을 쓰기 때문에 위에 썼던 두 줄로 우선 만족하겠습니다. :-)

--
perl -e's@@JEON Myoung-jin@;sub man{s| _|her e|}
sub see{s;^;Just;;u;s;e ;Perl ;;to;print$_,$/}$uperMan=M;
s=^....=U are not=;s~$uperMan~~;&admitIt;s=U are = A=;s|young|_|;&man;
sub admitIt{say;ye;s!-\w+! Hacker!};see U'

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

oppor의 이미지

3번에서 Alt-x toggle-korean-input-method 이건 정상동작하지만
.emacs에 적어놓으면 안되네요.

4번도 안되구요.

제 예상은 gnome에서 scim을 쓰고 있는데 이게 shift-space조합을 가져가는 것 같습니다.

emacs에서 shift-spc를 하면 scim은 바뀌거든요. 이게 바뀌면서 한영키 역할을 제대로 하긴 하는데

문제는 Ctrl-\ 키 조합과는 조금 다르게 동작합니다.

이맥스에서 한글이 써지는 부분에 작은 'gtk박스'가 뜨고 거기에 하나의 한글이 써진다음에 emacs에 써지는 식이죠.

(스샷을 찍으면 'gtk박스'가 사라져서 보여드리질 못하겠네요.)

Ctrl-\조합은 emacs하단에 상태를 나타내는 바에 변환 여부가 표시되면서(u 로 있다가 한2u 라고 변함)

정상동작 하게 됩니다.

이렇게 scim이 가져가는 shift-space조합을 emacs의 toggle-korean-input-method 와 바인딩 하고 싶은데요.

어떤 방법이 있을까요?

jg의 이미지

scim에서도 shift-space를 사용하신다면 scim과 연결을 끊고 사용하셔야 합니다.
LANG=C emacs 로 실행하시거나 그래도 붙는다면
XMODIFIERS="" emacs 로 실행시키십시오.

--
perl -e's@@JEON Myoung-jin@;sub man{s| _|her e|}
sub see{s;^;Just;;u;s;e ;Perl ;;to;print$_,$/}$uperMan=M;
s=^....=U are not=;s~$uperMan~~;&admitIt;s=U are = A=;s|young|_|;&man;
sub admitIt{say;ye;s!-\w+! Hacker!};see U'

$Myoungjin_JEON=@@=qw^rekcaH lreP rehtonA tsuJ^;$|++;{$i=$like=pop@@;unshift@@,$i;$~=18-length$i;print"\r[","~"x abs,(scalar reverse$i),"~"x($~-abs),"]"and select$good,$day,$mate,1/$~for 0..$~,-$~+1..-1;redo}

ptmono의 이미지

저의 경우 emacs 창에서는 Ctrl+Shift 키를 누르면 Ctrl+\ 가 입력되게 하여 해결하고
있습니다. 즉 다른 윈도우 상에서는 Ctrl+Shift 키는 Ctrl+Shift 키로 동작하지만,
emacs 창에서는 Ctrl+Shift 키를 Ctrl+\ 로 바인딩시킨다는 이야기입니다.

gnom은 잘모르겠지만 KDE에서는 컨트롤센터에서 이 기능을 지원합니다.

"kcontrol" 을 실행하면 컨트롤 센터가 나타납니다. 왼쪽의 카테고리 중 "Regional
and Accessibility > Input Actions" 에서 설정할 수가 있습니다.

설정하는 방법은 다음과 같습니다.

1. 아래에 있는 "New Action"을 누릅니다. 그러면 엑션이 하나 생길 것입니다.

2. 이 액션은 "General", "Triggers", "Actions", "Conditions" 의 속성을 가질
것입니다.

- "General" : 액션 타입은 이미 나와있는 "Generic" 입니다. 저의경우 액션이름을
emacs로 지정하였습니다.

- "Triggers" : 사용자가 키보드로 입력하는 부분을 가르킵니다. 저의 경우 "New >
Shortcut Trigger" 를 이용해서 "Ctrl+Space"를 입력했습니다.

- "Actions" : 컴퓨터가 입력받는 키를 가르킵니다. 저의 경우 "New > Keyboard
input" 에서 'Ctrl+\' 를 적었습니다.

- "Conditions" : 어떤 조건에서 위의 바인딩{?}이 적용될지를 결정합니다. "New >
Active window" > "New > simple window". 여기서 "Window class" 를 Contains 로
바꾸어줍니다. 아래에 "Autodetect"를 누르면 십자가가 나타납니다. emacs 의
왼도우를 클릭해 줍니다. 그러면 빈칸에 이름이 들어갈 것입니다.

다시한번 이야기하면, "Triggers"에서 설정된 "Ctrl+Space" 키가 "Conditions"에
설정한 emacs 윈도우에서 발생하면, KDE는 "Actions"에서 설정된 "Ctrl+\"를 emacs에
명령하게 됩니다.

다른 액션들에 주어진 예제들을 보시면 이해하기 쉬울 것입니다. 설명도 포함되어
있습니다.

3. apply 를 눌러서 적용시킵니다.

------------------------------------------
emacs user

------------------------------------------
emacs user

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.