ZSaberLv0 / ZFVimIM

vim输入法 / Vim Input Method by pure vim script, support: user word, dynamic word priority, cloud db files
204 stars 14 forks source link

希望在vim和nvim的内置terminal模式下,也能用此插件输入中文 #32

Closed persytry closed 2 years ago

persytry commented 3 years ago

这个插件对于解决中文输入的问题是一个非常好的解决方案,vim和nvim的内置terminal极大地扩大了vim的价值,这是不用多言的. 如果ZFVimIM能在terminal模式下输入中文,将会是很方便的.比如在fbterm下就不必再装中文输入法了,vim+terminal+ZFVimIM的配套能解决并避免很多问题与麻烦. 如果您感觉可以的话,请百忙之中实现一下这个功能,谢谢

ZSaberLv0 commented 3 years ago

terminal 中不支持 omnifunc, 所以简单结论是不行


但是可以用 q: 搞点变通的方式 (:h command-line-window):

function! PassToTerm(text)
    let @t = a:text
    if has('nvim')
        call feedkeys('"tpa', 't')
    else
        call feedkeys("a\<c-w>\"t", 't')
    endif
    redraw!
endfunction
command! -nargs=* PassToTerm :call PassToTerm(<q-args>)
tnoremap ;; <c-\><c-n>q:a:PassToTerm<space>

顺便, 个人是用 这个 直接在 command window 里面玩耍

persytry commented 3 years ago

谢谢告知,高端玩家

xYx-c commented 2 years ago

terminal 中不支持 omnifunc, 所以简单结论是不行

但是可以用 q: 搞点变通的方式 (:h command-line-window):

function! PassToTerm(text)
    let @t = a:text
    if has('nvim')
        call feedkeys('"tpa', 't')
    else
        call feedkeys("a\<c-w>\"t", 't')
    endif
    redraw!
endfunction
command! -nargs=* PassToTerm :call PassToTerm(<q-args>)
tnoremap ;; <c-\><c-n>q:a:PassToTerm<space>

顺便, 个人是用 这个 直接在 command window 里面玩耍

@ZSaberLv0 neovim 怎么让内置的终端支持中文呀,输出的中文全是问号~

ZSaberLv0 commented 2 years ago

neovim 怎么让内置的终端支持中文呀,输出的中文全是问号~

不太清楚, 应该是你的终端环境问题, 终端里直接用系统输入法可以么?