vimrc写入文件

时间:2012-07-05 16:52:56

标签: vim

我一直在尝试使用vim来简化编写乳胶。为此,我想编写一个函数,以便于编写矩阵。这就是我想要它做的事。

处于插入模式时

如果我输入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矩阵,它应该看起来像

<++>& <++>\\
<++>& <++>\\

但是,这不起作用。我是否可以知道如何修改此文件以使其按照我的要求进行操作?

1 个答案:

答案 0 :(得分:2)

我让这个工作:

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来调用该函数。