ybian / smartim

A Vim plugin to make it stand well with input methods (Mac only)
Other
272 stars 32 forks source link

使用 Ctrl-C 来切换到 normal mode 并不会切换到输入法 #23

Closed milanglacier closed 1 year ago

milanglacier commented 2 years ago

开发者大大! 你好! 我使用的是 macbook air M1, macOS 12.0.1, neovim 0.6.1,在使用这个插件的时候,<ESC>Ctrl-[ 都能成功的退出插入模式并切换到英文输入法。但是 Ctrl-C 并不行。

此外我还使用 imap jk <Esc> 来使得 jk 映射为 ESC,我在 mac系统的偏好设置-键盘-文本里添加了一条文本替换 Repalce jk With jk,这样我在中文输入法状态下输入 jk + 空格,就可以切换到 normal mode, 并且会自动切换输入法,这挺神奇的。

以下是 debug 文件的报告

2022-01-26_02:48:41] - Debug Start
[2022-01-26_02:48:41] g:smartim_loaded = 1
[2022-01-26_02:48:41] g:smartim_default = com.apple.keylayout.US
[2022-01-26_02:48:41] g:smartim_disable = 0
[2022-01-26_02:48:41] g:smartim_debug = 1
[2022-01-26_02:48:41] s:imselect_path = /Users/northyear/.local/share/nvim/plugged/smartim/plugin/im-select 
[2022-01-26_02:48:43] >>> Smartim_SelectSaved
[2022-01-26_02:48:43] <<< Smartim_SelectSaved returned
[2022-01-26_02:51:50] >>> Smartim_SelectDefault
[2022-01-26_02:51:51] b:saved_im = com.apple.keylayout.US�
[2022-01-26_02:51:51] <<< Smartim_SelectDefault returned 0

update:

目前发现使用 vimR, iterm2, 系统自带terminal 来打开 neovim, C-c 切换输入法都有问题。 但是 VSCode-neovim 却没有问题,但是 vscode-neovim 却不能在中文输入法下用 jk + 空格进入 normal mode. (VSCode-Neovim 带来了额外一层的复杂度,我并不奢求大大能够去解决它,这里仅仅是提供一个 data point而已)

v-Ys commented 1 year ago

Ctrl-C 与 ESC 是不一样的,会中断后台进程,使用 Ctrl-C 代替 ESC 是个坏习惯(Ctrl-[ 与 ESC 等价,放心使用)