我一直在尝试使用vim来简化latex的编写。为此,我想编写一个函数来简化矩阵的编写。这是我想让它做的事情。
在插入模式下
如果我输入mmatrix (不是打字错误。我想要两个m)
我想让它询问我所需的行数和列数
然后打开一个具有所需数量的占位符(表示为<++>)的空白矩阵
下面是我写的代码
imap mmatrix <C-o>:call Matrix
func! Matrix(rows, columns)
for row in a:rows
for col in a:columns
exec "normal! i<++>& "
endfor
exec "normal! i\\\\ <CR>"
endfor
endfunction因此,对于2x2矩阵,它应该看起来像
<++>& <++>\\
<++>& <++>\\然而,这并不起作用。我可以知道如何修改此文件以使其执行我想要的操作吗?
发布于 2012-07-06 05:47:59
我让它起作用了:
func! Matrix(rows, columns)
for row in range(a:rows)
for col in range(a:columns)
exe "norm i<++>& "
endfor
exe "norm Xi\\\\\\\<cr>"
endfor
endfunction另一种选择是使用命令而不是imap,例如:
command! -nargs=1 M :call Matrix(<args>)然后,您可以在正常模式下使用:M 2,4调用该函数。
https://stackoverflow.com/questions/11348974
复制相似问题