vim特殊字符输入及整理 (2)
2012年5月11日 19:15
%% Created:2012-05-10
%% Updated:2012-05-12
在前篇中我主要介绍了在vim中通过digraph输入特殊字符。
但是实际应用中,我发现这个方法并不是特别好。
因为要通过两个字母定义相应的字符,由于其定义的字符范围覆盖太广,
使其并不特别容易记忆,很可能出现错误输入。主要问题集中在数学符号。
因此我决定使用keymap来进行输入这些特殊字符,
因为keymap可以用多个字符来定义一个特殊字符。
基于Vim-LaTex suite和vim.org的math.vim的基础上,完成了这个小插件:
Update:
增加了一个':KeyHelper'命令,可以根据当前输入动态显示匹配keymap,
方便察看和输入特殊字符。
基本说明:
上标字符统一使用 ‘`’前缀, 下标字符统一使用 ‘_’前缀,
(最新的easydigraph.vim中也默认定义了此部分命令)
其他字符统一使用 ‘\’前缀,
主要解决输入时和普通字符输入的冲突,
除了简捷命令,也可以使用 LaTex 命令输入。
-
上标符号和下标 :
`0 ⁰ ... ( 0-9 + - ( ) / ^ . , > < ) `a ᵃ ... ( a-z except q , Some of A-Z) _0 ₀ _+ ₊ ... ( 0-9 + - ( ) / ^ ) _a ₐ _e ₑ ... (a e h i k l m n o p r s t u v x)
-
快捷命令 :
Greek Alphabet: \GA => Α , \GD => Δ \Ga => α , \Gg => γ Fractions : \1/2 => ½ , \1/3 => ⅓ \2/3 => ⅔ , \3/5 => ⅗ Arrows : \<-- => ← , \--v => ↓ , \==> => ⇒ \<--- => ⟵ , \--^ => ↑ , \===> => ⟹ Grouping : \(U => ⎛ , \]U => ⎤ \(M => ⎜ , \]M => ⎥ \(B => ⎝ , \]B => ⎦ \(V => ︵ , \]V => ︺ Operator : \U. => ⨃ , \UU => ∪ , \UN => ∩ \I1 => ∫ , \I3 => ∭ , \I= => ⨎ \IO1 => ∮ , \IO3 => ∰ , \IOW => ∳ \PDF => ∂ , \THF => ∴ , \BCS => ∵ \MUL => × , \DIV => ÷ \SQRT2 => √ , \SQRT3 => ∛ , \SQRT4 => ∜ Relations : \<= => ≤ , \>= => ≥ , \!= => ≠ \<~ => ⪝ , \>~ => ⪞ , \!> => ≯ \o+ => ⊕ , \o- => ⊖ , \ox => ⊗ \O+ => ⨀ , \O+ => ⨁ , \OX => ⨂ Sets : \SUBO => ⊂ , \SUBE => ⊆ , \SUBN => ⊄ \SUPO => ⊃ , \SUPE => ⊇ , \SUPX => ⊉ \AND => ∧ , \OR => ∨ , \NOT => ¬ \XOR => ⊕ \EXTS => ∃ , \EXTN => ∄ , \FALL => ∀ \BOT => ⊥ , \TOP => ⊤ , \LFT => ⊣ \RGT => ⊢ Misc : \INF => ∞ , \PRT => ∝ \ARC => ⌒ , \ANG => ∠ \DEGC => ℃ , \DEGF => ℉ \OHM => Ω , \MHO => ℧ , \ANGS => Å \a/c => ℀ , \a/s => ℁ , \No => № \TM => ™ , \CO => © , \RO => ® \AE => Æ , \ae => æ , \fi => fi Fonts : \FKH => ℋ , \FKI => ℑ , \FKL => ℒ
-
Latex 命令:
基于 Vim-Latex suite. 只包含拥有对应unicode字符的命令。 修正了部分Vim-Latex suite中错误的对应: (\bigodot \bigoplus \bigotimes \long...arrow \iint ...)
e.g: \neq => ≠ , \Leftarrow => ⇐ \simeq => ≃ , \Re => ℜ ...
你可以使用Vim-Latex suite 以了解对应命令 或者察看这个PDF http://amath.colorado.edu/documentation/LaTeX/Symbols.pdf
-
输入助手 (
:KeyHelper
):输入助手使察看和输入更方便。 :KeyHelper 打开窗口。 它将根据当前输入动态显示匹配符号。 在KeyHelper窗口中按回车可以将符号添加到文件。 同时也可以输入更多unicode字符: 0x2500-0x2800, 0x1D100 - 0x1D1DD
使用方法:
解压缩到~/.vim 文件夹
-
可以定义映射方便使用。
" 开始使用 map <leader>km :set keymap=mathematic<CR> " 停止使用 map <leader>kn :set keymap=<CR> " 察看具体命令,可以根据需要修改 map <leader>kvm :sp ~/.vim/keymap/mathematica.vim<CR> " 显示当前输入命令 " set showcmd " 如果需要更长的输入时间 " set timeoutlen=3000 " 或者关闭输入超时 " set notimeout
-
使用 KeyHelper: (
:KeyHelper (<leader>\)
)" if your mathematic.vim is not in '~/.vim/bundle/' or '~/.vim/keymap' " then you should set g:mathematic_user_dir " let g:mathematic_user_dir = "~/.vim/myplug/keymap/mathematic.vim" " map KeyHelper with another mapping " nmap <leader>kk :KeyHelper<CR> " if you want fuzzy matching " let g:mathematic_fuzzymatch = 1
如果有建议或意见请post到https://github.com/Rykka/mathematic.vim. 如果需要增加keymap命令,请post命令和字符。