我已经使用VIM超过10年了,但从未真正使用VIM脚本(总是主观地认为这是VIM弱于Emacs的一个领域)。
最近,实现“在VIM脚本中,我可以执行正常模式命令”让我的思绪变成了“a-ha”,并突然开始意识到为什么VIM脚本的部分就是这样。
normal ma10jd'a20kp
比
更优雅Marker m = currentLocation();
advanceLines(10);
Buffer b = delete(currentLocation(), m);
advanceLines(-20);
insertBuffer(b);
现在的问题是 - 学习vim脚本的好资源是什么?
谢谢!
答案 0 :(得分:56)
我能给出的最好建议是:
:help usr_41.txt
这将为您提供基本知识的良好概述。然后找一些你想要做的事情并为它们创建功能。当你这样做时,请大量使用:
:help function-list
了解所有内置函数的含义。其中大部分内容与其他脚本语言非常相似(虽然语法更为严厉),因此您在python中使用文本操作的任何经验都将是有用的。
另外,请查看vim scripts page和Google以获取现有脚本的示例,以帮助扩展您的知识。
最后(也许最重要的是),不要害怕在stackoverflow或Vim mailing list上提出问题,并且会对您遇到的任何问题提供足够的支持。
答案 1 :(得分:34)
学习Vimscript艰难之路也值得一试。
答案 2 :(得分:14)
我处于类似情况。它仍在我的“阅读”列表中,但我今天刚刚找到Scripting the Vim editor。来自IBM DeveloperWorks的文章通常非常好,所以可能值得一试。
答案 3 :(得分:14)
Al给了你一个good answer。我还要添加vim.wikia,其中包含一些与您的问题相关的提示。
旁注。
我不会说ma10jd'a20kp
更优雅。我看到以下问题:
:normal!
的方式修复,<esc>
),