Vi의 imdisable 기능?

안녕하세요.

혹시 vi editor에서 :set imdisable 기능이 정상적으로 작동 하나요??
인터넷의 vimrc를 참조해서 <ESC> 키를 맵핑했는데 계속 한글 상태로 있네요…

구글 검색에도 별로 불평이 없는 듯 하고… 왠지 저만 이런것 같기도 하고… 흠.

ubuntu 12.04 + ibus를 사용하고 있습니다.

저도 그것때문에 고민하고 있는데…

쉽게 해결이 안되더라구요…

im을 나비를 사용하시는게 편한듯…(난 그마저도 안되지만…)

먼가 썩 괜찮은 방법같지는 않으나 대충 문제 해결은 했습니다.

사실 리눅스를 사용한지 얼마 되지 않아서 모르는 부분이 많긴 하지만
혹시라도 도움이 될까해서 올려봅니다.

제가 쓰는 환경에서만 테스트해서 잘 될지는 모르겠습니다.

[code:340smn2k]if !has(‘gui_running’)
let g:ibusinit = 0
let g:imstatus = 0

function! InitIBus()
    if g&#58;ibusinit
        return
    endif
    let g&#58;ibusinit = 1
    python &lt;&lt;EOF

import ibus
import vim
im_bus = ibus.Bus()
im_ic = ibus.InputContext(im_bus, im_bus.current_input_contxt())
def im_is_active():
if im_ic.is_enabled():
return 1
else:
return 0
def im_escape():
vim.command(‘let g:imstatus = %d’ % im_is_active())
im_ic.disable()
def im_enable():
im_ic.enable()
def im_disable():
im_ic.disable()
EOF
endfunction

function! ImEscape()
    py im_escape()
endfunction
function! ImEnter()
    if g&#58;imstatus
        py im_enable()
    endif
endfunction

autocmd VimEnter * call InitIBus()

inoremap &lt;silent&gt; &lt;ESC&gt; &lt;ESC&gt;&#58;call ImEscape()&lt;CR&gt;
nnoremap &lt;silent&gt; i &#58;call ImEnter()&lt;CR&gt;i
nnoremap &lt;silent&gt; I &#58;call ImEnter()&lt;CR&gt;I
nnoremap &lt;silent&gt; o &#58;call ImEnter()&lt;CR&gt;o
nnoremap &lt;silent&gt; O &#58;call ImEnter()&lt;CR&gt;O
nnoremap &lt;silent&gt; a &#58;call ImEnter()&lt;CR&gt;a
nnoremap &lt;silent&gt; A &#58;call ImEnter()&lt;CR&gt;A

endif
[/code:340smn2k]

[quote="philossh":3c2a3nyj]먼가 썩 괜찮은 방법같지는 않으나 대충 문제 해결은 했습니다.

사실 리눅스를 사용한지 얼마 되지 않아서 모르는 부분이 많긴 하지만
혹시라도 도움이 될까해서 올려봅니다.

제가 쓰는 환경에서만 테스트해서 잘 될지는 모르겠습니다.

[code:3c2a3nyj]if !has(‘gui_running’)
let g:ibusinit = 0
let g:imstatus = 0

function! InitIBus()
    if g&#58;ibusinit
        return
    endif
    let g&#58;ibusinit = 1
    python &lt;&lt;EOF

import ibus
import vim
im_bus = ibus.Bus()
im_ic = ibus.InputContext(im_bus, im_bus.current_input_contxt())
def im_is_active():
if im_ic.is_enabled():
return 1
else:
return 0
def im_escape():
vim.command(‘let g:imstatus = %d’ % im_is_active())
im_ic.disable()
def im_enable():
im_ic.enable()
def im_disable():
im_ic.disable()
EOF
endfunction

function! ImEscape()
    py im_escape()
endfunction
function! ImEnter()
    if g&#58;imstatus
        py im_enable()
    endif
endfunction

autocmd VimEnter * call InitIBus()

inoremap &lt;silent&gt; &lt;ESC&gt; &lt;ESC&gt;&#58;call ImEscape()&lt;CR&gt;
nnoremap &lt;silent&gt; i &#58;call ImEnter()&lt;CR&gt;i
nnoremap &lt;silent&gt; I &#58;call ImEnter()&lt;CR&gt;I
nnoremap &lt;silent&gt; o &#58;call ImEnter()&lt;CR&gt;o
nnoremap &lt;silent&gt; O &#58;call ImEnter()&lt;CR&gt;O
nnoremap &lt;silent&gt; a &#58;call ImEnter()&lt;CR&gt;a
nnoremap &lt;silent&gt; A &#58;call ImEnter()&lt;CR&gt;A

endif
[/code:3c2a3nyj][/quote:3c2a3nyj]

… 어떻게 해결하셨는지좀 알수있을까요?
코드줄만 있으니… 이게 어디에 쓰이는건지 잘 모르겠네요…
vimrc파일인지… 아님 다른곳 파일인지…
터미널에서는 사용불가능한건지좀 알수있나요…?

아 제일 중요한걸 빼먹었네요…
vimrc에 추가했습니다. ^^;