我已经使用了VIM 10年以上,但从未真正使用过VIM脚本(总是主观地认为这是VIM弱于Emacs的一个领域).
最近,实现"在VIM脚本中,我可以执行正常模式命令"让我的思绪变成了"a-ha",突然开始意识到为什么VIM脚本的部分就是这样.
normal ma10jd'a20kp
Run Code Online (Sandbox Code Playgroud)
比它更优雅
Marker m = currentLocation();
advanceLines(10);
Buffer b = delete(currentLocation(), m);
advanceLines(-20);
insertBuffer(b);
Run Code Online (Sandbox Code Playgroud)
现在的问题是 - 学习vim脚本的好资源是什么?
谢谢!
DrA*_*rAl 57
我能给出的最好建议是你读到:
:help usr_41.txt
Run Code Online (Sandbox Code Playgroud)
这将为您提供基本知识的良好概述.然后找一些你想要做的事情并为它们创建功能.当你这样做时,大量使用:
:help function-list
Run Code Online (Sandbox Code Playgroud)
了解所有内置函数是什么.其中大部分与其他脚本语言非常相似(尽管语法更为严厉),因此您在python中使用文本操作的任何经验都将是有用的.
另外,请查看vim脚本页面和Google以获取现有脚本的示例,以帮助扩展您的知识.
最后(也许最重要的是),不要害怕在stackoverflow或Vim邮件列表上询问,并且会对你可能遇到的任何问题提供足够的支持.
Epe*_*eli 35
学习Vimscript艰难之路也值得一试.
http://learnvimscriptthehardway.stevelosh.com/
Luc*_*tte 15
艾尔给了你一个很好的答案.我还要添加vim.wikia,其中包含一些与您的问题相关的提示.
在旁注.
我不会说那ma10jd'a20kp更优雅.我看到以下问题:
:normal!),<esc>当光标在第一列时),Wal*_*ter 14
我处于类似的情况.它仍然在我的"阅读"列表中,但我今天刚刚发现了脚本编写Vim编辑器.来自IBM DeveloperWorks的文章通常非常好,所以可能值得一试.