摘要:一、脚本 和大部分Unix工具一样,vim也提供了内置的脚本功能,通过脚本可以完成定制化设置。脚本的优点在于正如它名字所暗示的:可以存储在文件中。而文件可以持久化,也就是下次打开的时候依然存在。脚本中通常还可以定制函数以实现复用。例如,在常用的CtrlP插件中,大部分功能都是使用vim内置命令完成的
阅读全文
摘要:一、问题 明显的,在normal模式下,通过hjkl四个按键进行移动,但是之类的问题是vim如何移动光标而不是用户怎么移动光标。在bash界面中,我们通过通过方向键来移动光标位置。在vim中,vim是完全控制了当前终端,假设你获得了终端的控制权,你将如何控制光标在整个终端的任意位置进行移动呢? 二、
阅读全文
摘要:一、command模式下命令如何匹配 在command模式下,输入:h默认执行的是help,但事实上,还有字典序更靠前的hardcopy命令,那为什么这个h匹配的不是hardcopy而是help呢?在代码中其实已经做了说明ex_cmds.h: /* * This array maps ex comm
阅读全文
摘要:一、问题 在vim的编辑模式下,我之前一直以为只能进行字符的插入操作,但是意外看到可以在编辑模式下通过ctrl-w来前向删除一个单词,并且可以通过ctrl-h来前向删除一个字符。根据通常的ASCII码内置控制方法,通过ctrl-h对应的是ASCII码的BS(backspace)字符,所以通过ctrl
阅读全文
摘要:一、问题 在新的C++标准中,auto的应用范围越来越广,但是比较常用的典型场景在于使用一个auto接收一个函数的返回值。问题是对于一个函数的auto返回值,这个返回值是如何确定的?特别是一个函数有多个返回值的时候。直观上的理解是当一个函数体(function body)解析(parse)完成之后,
阅读全文