Gedit에서 ctrl-d 단축키 제거하기

안녕하세요.

우리 모두가 사랑하는 에디터 gedit에는 한 가지 커다란 단점이 있습니다.
ctrl-d를 누르면 '한 줄 지우기’가 되어버리는 게 바로 그거죠.
ctrl-s를 눌러 '파일 저장’을 하려다가, 실수로 라인 한 줄을 날려먹은 다음
저장을 해버리는 어처구니 없는 일이 발생할 우려가 있는 것입니다.

특히 저는 gconf-editor에서 desktop -> gnome -> interface에 들어가
gtk_key_theme을 Emacs로 맞춰놓고 있었는데, 이러면 문제가 더 심각합니다.
저렇게 설정을 바꾸면 글 입력창에서 이맥스처럼 작동하거든요.
커서 이동이나 기타 등등… 그런데 하필 '한 글자 지우기’인 ctrl-d가
유독 gedit에서는 '한 줄 지우기’가 되어버려 문단이 통째로 날아가는 일이 벌어집니다.

구글에서 검색해본 결과, 역시 이것도 사용자가 직접 바꿀 수 있습니다.
차근차근 설명해 보겠습니다.

  1. 터미널에서 아래와 같이 입력합니다.

$ which gedit
/usr/bin/gedit
$ sudo chown myself:myself /usr/bin/gedit

  1. Hex editor로 /usr/bin/gedit 열기.

  2. "delete_from_cursor" 검색해서 "delete_from_corsXX"로 바꿔줍니다.

이제 gedit을 다시 실행하면 ctrl-d를 눌러도 라인 지우기가 되지 않는다는 걸
확인하실 수 있습니다. :)

참고사항.

이 팁은 여기서 보고 얻었습니다.

http://ubuntuforums.org/showthread.php?t=1384779

저도 이거 왜 이러지 하고 고민만 하고 있던 겁니다. 좋은 글 감사드립니다.
링크 또한 고맙습니다. 잘 봤네요.

도움이 되었다니 흡족합니다.

같은 요령으로 ctrl-k가 '빠른 검색’으로 이어지는 것을 불능화하려 해보았으나
이번에는 실패하고 말았습니다. 혹시 시도해보신 후 성공하신다면
그 정보도 여기에 공유해 주세요. ㅎㅎ

간단한 변경에 Hex editor를 이용할 수도 있겠지만, 작업이 좀 MS 스타일 같습니다.
리눅스는 프로그램 소스가 있는데…
소스 다운 받아 두 키 정의 된 곳을 주석 처리 하고 버전 끝을 하나 올려 재 컴파일 하면 어떠한지요!
소스 gedit/gedit-view.c 266줄쯤에 정의 되어 있군요

[code:117cz50r] gtk_binding_entry_add_signal (binding_set,
GDK_k,
GDK_CONTROL_MASK,
"start_interactive_search", 0);[/code:117cz50r]

[code:117cz50r] gtk_binding_entry_add_signal (binding_set,
GDK_d,
GDK_CONTROL_MASK,
"delete_from_cursor", 2,
G_TYPE_ENUM, GTK_DELETE_PARAGRAPHS,
G_TYPE_INT, 1);[/code:117cz50r]

또는 주석 처리 후 컴파일 하고 gedit 바이너리만 바꾸어도 되겠지요 ^^;;

프로그래밍 경험이 전혀 없는 문과생이라서 말씀하신 근본적인 방법은 어떻게 해야 할지
처음부터 아예 감이 오지 않네요. ㅎㅎ

http://blockofcode.wordpress.com/2010/0 … -in-gedit/

[quote="candyncoffee":k1rcypgg]http://blockofcode.wordpress.com/2010/05/09/unbindrebind-ctrld-in-gedit/

더 쉬운 방법으로는 아래의 내용을 ~/.gtkrc-2.0 에 붙여넣으세요.

[code:k1rcypgg]
binding "override-ctrl-d" {
unbind "<ctrl>d"
}
class "GeditView" binding :highest "override-ctrl-d"
[/code:k1rcypgg][/quote:k1rcypgg]
원츄! 저와 같은 고민을 겪고 있는 분이 많다는 데 우선 놀랐고 이 글을 위에서부터 읽어 내려오다 이 방법을 발견해서 또 한 번 놀랐습니다. 문제의 해결은 언제나 한가지 이상의 방법이 있다는 것이 리눅스의 어려움이자 장점이네요.

[quote="candyncoffee":1tjkqbgs]http://blockofcode.wordpress.com/2010/05/09/unbindrebind-ctrld-in-gedit/

더 쉬운 방법으로는 아래의 내용을 ~/.gtkrc-2.0 에 붙여넣으세요.

[code:1tjkqbgs]
binding "override-ctrl-d" {
unbind "<ctrl>d"
}
class "GeditView" binding :highest "override-ctrl-d"
[/code:1tjkqbgs][/quote:1tjkqbgs]
나이스 굿입니다.
gtk 개인 설정으로도 가능하군요 ^^;