vim特殊字符输入和整理
A fake leader for vim

vim特殊字符输入及整理 (2)

Rykka posted @ 2012年5月11日 19:15 in vim with tags vim , 4438 阅读

%% Created:2012-05-10

%% Updated:2012-05-12


在前篇中我主要介绍了在vim中通过digraph输入特殊字符。

但是实际应用中,我发现这个方法并不是特别好。

因为要通过两个字母定义相应的字符,由于其定义的字符范围覆盖太广,

使其并不特别容易记忆,很可能出现错误输入。主要问题集中在数学符号。


因此我决定使用keymap来进行输入这些特殊字符,

因为keymap可以用多个字符来定义一个特殊字符。

基于Vim-LaTex suite和vim.org的math.vim的基础上,完成了这个小插件:

Rykka/mathematic.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命令和字符。


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter