我正在编写一个在LaTeX中编辑特定环境的函数.
环境基本上是这样的:
\begin{quicktikz}
...some stuff...
\end{quicktikz}
Run Code Online (Sandbox Code Playgroud)
或者像这样:
\begin*{quicktikz}
...some stuff...
\end{quicktikz}
Run Code Online (Sandbox Code Playgroud)
我想编写一个在环境中调用时在两者之间切换的函数.由于我的Vim知识不是全部,我想出一个简单的解决方案:
let save_cursor=getpos(".")\begin{quicktikz}使用:?\\begin{quicktikz}\|\\begin\*{quicktikz}{并向左移动:normal 0f{h*
normal xnormal a*<esc>call setpos('.',save_cursor)除了步骤3之外,我知道如何完成所有这些操作.如何检查光标下的字符是否等于*?
如果您知道更好的方法,欢迎分享这一点.
我认为在光标下检索char的最简单方法是:
getline(".")[col(".")-1]
Run Code Online (Sandbox Code Playgroud)
或者,您也可以这样做 strpart()
strpart(getline("."), col(".")-1, 1)
Run Code Online (Sandbox Code Playgroud)
第一个表达式首先调用作为参数getline()传递的函数".",这意味着将返回光标所在的行.然后我们使用所谓的expr8或expr- [](参见帮助)来检索单个字符.传递的数字来自另一个函数,col()
它返回当前的游标列.当索引从0开始时,减去一个.
你可以像使用它一样
if getline(".")[col(".")-1] == '*'
...
Run Code Online (Sandbox Code Playgroud)