VIM Latex Suite 带下标和上标的重复符号

VIM Latex Suite 带下标和上标的重复符号

我有一个文档,在数学环境中需要很多符号,这些符号既有上标也有下标,如,,,,具有x_1^1不同的基数。可能是,,等等......x_1^2x_2^1x_2^2xyz

总是要输入Shift+^Shift+真的很麻烦。有没有更简单的方法来输入这些重复的符号?_

只需输入、、,x11然后用和(等……)将这些字符串替换为相应的字符串即可,但有没有更 VIM 的方式来做到这一点?x12x21x22_^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

^&可以通过更改最后一行的^和来自定义按键顺序。(也不要忘记第一行。)&&

相关内容