我有一个文档,在数学环境中需要很多符号,这些符号既有上标也有下标,如,,,,具有x_1^1
不同的基数。可能是,,等等......x_1^2
x_2^1
x_2^2
x
y
z
总是要输入Shift+^和Shift+真的很麻烦。有没有更简单的方法来输入这些重复的符号?_
只需输入、、,x11
然后用和(等……)将这些字符串替换为相应的字符串即可,但有没有更 VIM 的方式来做到这一点?x12
x21
x22
_
^
x_1^1
答案1
这是一个 Vimscript 解决方案。在 中~/.vim/ftplugin/tex.vim
添加以下内容:
function! <SID>SubSuperscripts(keyOne, keyTwo)
let l = strpart(getline("."), col(".")-4, 3)
if len(l) == 3 && l[2] == a:keyOne
return join(["\<bs>\<bs>\<bs>_", l[0], "^", l[1]], "")
else
return a:keyTwo
endif
endfunction
inoremap <buffer> <silent> & <C-R>=<SID>SubSuperscripts("^", "&")<CR>
现在,在插入模式下,键序列^&
会将前 2 个字符分别更改为下标和上标。例如,插入x12^&
将更改为x_1^2
,\omega11^&
将更改为\omega_1^1
。
^&
可以通过更改最后一行的^
和来自定义按键顺序。(也不要忘记第一行。)&
&