智能切换输入法
-
主要参考V2EX上的 这篇 文章。
在vim下用中文输入法一直是个蛋疼的事情,目前我知道的有两个方案: https://github.com/humiaozuzu/fcitx-status https://code.google.com/p/vimim/
两个都不是很合意,因为都需要我改变原来的输入习惯 (第一个要用fcitx,第二个没试过,看上去挺复杂), 于是自己写了一个小插件: https://github.com/ybian/smartim
这个非常类似于fcitx-status, 就是用vim的autocmd命令在进入和退出insert mode的时候自动切换输入法: 离开insert mode时切换到英文,方便敲normal mode下的命令; 进入insert mode时切换回上次离开时的输入法。
跟fcitx-status不同的是, 我写了一个单独的命令行工具来切换输入法, 所以它不局限于任何特定输入法,可以用于任何你已经习惯的输入法。 但是因为切换输入法的API跟平台相关,目前仅有mac版本。
-
配置步骤
- 可以用Vundle安装
- Add this line to your ~/.vimrc file:
Plugin 'ybian/smartim'
- Open vim and run
:PluginInstall
- Add this line to your ~/.vimrc file:
- 如果你的默认键盘不是美式英语的话,需要如下设置:
- 切换到自己Mac上的英语键盘
-
运行
~/.vim/bundle/smartim/plugin/im-select
得到其名称,并记下来可能得到类似如下结果
1. com.apple.inputmethod.Kotoeri.Roman #日式键盘英语输入法
2. com.aodaren.inputmethod.Qingg #清歌输入法 - 在~/.vimrc中写
let g:smartim_default = '<刚才获取到的值>'
如果想调试vim-script,可以参考这里
- 可以用Vundle安装
python3 代码美化
大概有以下几个相关工具
- PythonTidy: 相当老了(2012年最后更新),对
python3
支持不好 - PyLint: 更多的是一个
代码分析
工具 - yapf: Google出品的 强大的Python代码美化工具,支持
python2
和python3
毫无悬念,我们用yapf
-
配置步骤
-
用
pip3
1安装yapf
pip3 install yapf
-
在
vim
中做相应配置,vi ~/.vimrc
autocmd FileType python set formatprg=yapf autocmd BufWritePre *.py silent normal mzgggqG`z nnoremap ,, :w<cr>
-
用法
- 在编写python脚本的过程中敲
,,
即可美化代码并保存
- 在编写python脚本的过程中敲
- 如果你的开发环境跟我一样(Mac OSX 10.11),不要试图用GitHub上现成的各种基于yapf的vim插件; 我试过几个,都会报各种奇怪的错误
- 注意上面写的是
BufWrite*Pre*
,不是post;所以,是先美化再写入文件 mzgggqG`z
是三个动作mz
标记当前位置gg gq G
跳到文档首行,美化到文档尾行`z
回到之前标记好的位置
-
-
主要参考了以下文章
- http://stackoverflow.com/questions/2913324/python-source-formatter-pretty-printer: 常用的Python美化工具
- http://vim.wikia.com/wiki/Fix_indentation:
mzgg=G`z
虽然是错的,但是有启发 - http://meta.stackexchange.com/questions/82718/how-do-i-escape-a-backtick-in-markdown: 如果想在单行markdown中转义backtick, 可以用两个或三个以上的backtick来包裹这段代码
- http://arachnoid.com/python/pybeautify_program.html: 另一个Python美化工具
pybeautify
,有兴趣的同学可以折腾
-
其实这里用
pip
也是可以的;只不过,本人非常强调尽量使用python3
及其相关工具;因为python2
对于UTF-8
的支持并不完整。 ↩