关于vi:vim中代码块和宏的最佳策略是什么?

关于vi:vim中代码块和宏的最佳策略是什么?

What is the best strategy for code chunks and macros in vim?

随着我用vim进行更多的开发,我发现自己想要复制有用的代码块,类似于Eclipse中的"模板"。

我正在考虑为每个代码块创建一个单独的文件,然后将它们读入

1
:r code-fornext

但这似乎有点原始。 到处搜寻,我发现提到了vim宏以及有关"映射"的内容,但似乎没有什么简单明了的。

我正在寻找的例如 类似于Eclipse的"模板",因此我将代码游标弹出,并将光标置于其中。
或JEdit的"宏",我可以记录它在一行上进行复杂的删除和重命名,然后在另外10行上再次播放它,因此对它们也是如此。

vim是否具有类似于这两个功能的功能?


要在Vim中记录宏,请在命令模式下,按q键和要为其分配宏的另一个键。对于快速丢弃的宏,我通常只需按qq并将宏分配给q键。进入录制模式后,请遍历所有按键。完成后,请确保您已返回命令模式并再次按下q以停止录制。然后,要手动重播宏,可以键入@q。要重播以前运行的宏,可以键入@@或运行10次,可以键入10@q20@q等。

综上所述:

1
2
3
4
5
6
7
8
9
+----------------------------------+-------------------------------------+
| start recording a macro          | qX (X = key to assign macro to)     |
+----------------------------------+-------------------------------------+
| stop recording a macro           | q                                   |  
+----------------------------------+-------------------------------------+
| playback macro                   | @X (X = key macro was assigned to)  |
+----------------------------------+-------------------------------------+
| replay previously played macro   | @@                                  |
+----------------------------------+-------------------------------------+

关于代码块,我发现并开始使用一个名为snipMate的Vim插件,该插件模仿TextMate的代码片段功能。您可以在此处获取插件:

http://www.vim.org/scripts/script.php?script_id=2540

以及有关使用snipMate的简短文章(以及简短的屏幕录像显示了它的使用情况):

http://www.catonmat.net/blog/vim-plugins-snipmate-vim/

希望对您有所帮助!


在vim.wikia上,您可以找到一类专门用于摘要和缩写扩展的提示。您还将看到一个插件列表,这些插件可以简化复杂代码段/模板文件的定义。

HTH,


推荐阅读

    linux命令添加文件?

    linux命令添加文件?,工作,简介,数据,系统,文件,命令,操作,文件名,内容,终端,l

    linux文件输入命令?

    linux文件输入命令?,工作,系统,地址,信息,工具,位置,命令,设备,发行,首开,lin

    文件备份命令linux?

    文件备份命令linux?,网站,系统,设备,文件,软件,网络,工具,环境,数据,地址,lin

    linux遍历文件命令?

    linux遍历文件命令?,系统,数据,工具,文件,平台,信息,百度,位置,时间,适当,lin

    linux命令查看小文件?

    linux命令查看小文件?,系统,档案,文件夹,标准,软件,单位,文件,命令,大小,内

    linux文件中剪切命令?

    linux文件中剪切命令?,位置,系统,工作,命令,发行,连续,标准,终端,文件,目录,l

    linux存储文件命令?

    linux存储文件命令?,系统,地址,工作,命令,软件,电脑,标准,底部,信息,文件,lin

    linux保存命令文件?

    linux保存命令文件?,系统,状态,命令,文件,第一,管理,电脑,模式,编辑,终端,lin

    linux私有文件命令?

    linux私有文件命令?,系统,工作,工具,命令,设备,文件,目录,位置,不了,情况,Lin

    删除linux文件命令?

    删除linux文件命令?,名称,不了,文件夹,命令,文件,目录,方法,指令,子目录,选

    linux文件录入命令?

    linux文件录入命令?,系统,命令,网络,标准,时间,密码,名字,管理,文件,文件夹,L

    文件复制命令linux?

    文件复制命令linux?,系统,地址,文件,目录,位置,工具,命令,目标,文件名,源文

    linux命令移除文件夹?

    linux命令移除文件夹?,命令,文件夹,通用,不了,数据,名称,档案,系统,文件,目

    linux文件倒序命令?

    linux文件倒序命令?,地址,工作,管理,标准,命令,基础,系统,数据,最新,代码,lin

    在linux文件后加命令?

    在linux文件后加命令?,系统,工作,命令,工具,电脑,基础,管理,情况,第一,简介,L

    linux命令删除文件夹?

    linux命令删除文件夹?,系统,名称,环境,文件夹,不了,命令,文件,数据,档案,目

    linux命令安全策略?

    linux命令安全策略?,系统,服务,网络,信息,异常,基础,电话,情况,企业,人员,如

    linux命令看文件编码?

    linux命令看文件编码?,状态,系统,文件,工具,名称,数据,命令,格式,汉字,以下,L

    linux编辑文件的命令?

    linux编辑文件的命令?,系统,地址,工作,状态,命令,电脑,信息,管理,目录,终端,l

    linux编辑文件命令是?

    linux编辑文件命令是?,系统,工作,设备,命令,基础,信息,状态,文件,代码,网络,l