阅读:716回复:2

yong-vim使用帮助

楼主#
更多 发布于:2024-01-01 17:33
文章参照照了论坛里的“yong-vim使用说明(https://yong.dgod.net/read.php?tid=2155)”和帮助文档里的说明。只所以重发一篇是因为之前试了好几次都没成功。这个版本有个问题就是有点影响插入和退出时vim的响应速度。还有就是在运行的时任务栏上会出现几下执行切换程序时的框框。但能力有限,不知怎么改。再说这个东西很少人会在日常中使用。下面附代码:

" ================================
" yong input method
" ================================
let g:yong_vim = "d:\\\"Program Files (x86)\"\\yong\\yong-vim.exe "
let g:input_toggle = 0 " 记录输入法中/英文状态


function! Yong2en()
 let g:input_toggle = system(g:yong_vim. "1 -w") " 记录中/英文状态,并切换英文输入模式
endfunction


function! Yong2zh()
 if g:input_toggle != 0 " 如果之前输入法为中文状态则将其切换为中文状态
 call system(g:yong_vim. "0")
 autocmd FocusGained * :redraw " 输入光标错位用于重绘输入光标
 endif
endfunction


autocmd InsertLeave * call Yong2en()
autocmd InsertEnter * call Yong2zh()
沙发#
发布于:2024-01-01 20:04
用job_start可以避免出现窗口,下面是我的部分代码,可以参考


if has('win32')
    let g:yong_vim = "c:\\Users\\dgod\\yong\\yong-vim.exe"
else
    let g:yong_vim = "/usr/bin/yong-vim"
endif
let g:input_toggle = 0
let g:input_toggle_timer = 0

fun! Yong_set_input_toggle(channel,output)
    let g:input_toggle = a:output
endf

fun! Yong2en_timer(timer)
    if g:input_toggle_timer == 0
        return
    endif
    let g:input_toggle_timer = 0
    call job_start(g:yong_vim . " 1 -w",{'out_cb':'Yong_set_input_toggle'})
endf

fun! Yong2en()
    let g:input_toggle_timer=1
    call timer_start(200,'Yong2en_timer')
endf

fun! Yong2zh()
    let g:input_toggle_timer=0
    if g:input_toggle != 0
        call job_start(g:yong_vim . " 0")
        g:input_toggle = 0
    endif
endf

autocmd InsertLeave * call Yong2en()
autocmd InsertEnter * call Yong2zh()
板凳#
发布于:2024-01-02 22:41
dgod:用job_start可以避免出现窗口,下面是我的部分代码,可以参考


if has('win32')
    let g:yong_vim = "c:\\Users\\dgod\\yong\\yong-vim.exe"
else...
回到原帖
很高兴能得到回复。我在vim9.0配置文件中使用了这个脚本,但没有得到正确的运行结果。job_start似乎没有运行,也没有报错信息。我看了一下vim帮助文档中对job_start的介绍也没明白是怎么回事。这个功能我主要是带在U盘里使用。U盘里放一个便携版的vim和一个便携版的yong配合使用。之后更熟悉了vim可能就能把这个配置更优化一下。最后还是十分感谢????
游客

返回顶部