在 OpenWrt 中配置使用 vim 代码高亮和文件比较编辑

安装使用开源路由器固件 OpenWrt 最舒服的感觉是平常使用 Linux 的经验可以借用了。OpenWrt 上默认安装的是精简版本的 vim(其实就是 vi,301kB)。但是软件库中是有 vim-full(831kB)甚至 vim-fuller(2741kB)的。这列举的软件包的大小都是当前值,仅仅用作大概的比较。而依赖包都是一样的,包括 libc 和 libncurses。考虑到路由器上磁盘还有不少剩余,就果断安装了 vim-fuller 以方便使用代码高亮和文件比较功能。

更新vim-fuller安装后的 /overlay/upper/usr/share/vim有 10+MB,搞得后面再安装别的应用很困难,所以还是用 vim-full 吧,安装后的 /overlay/upper/usr/share/vim只有 4.0KB。不过就没有代码高亮了。

安装当然是很简单了,

opkg update && opkg install vim-full diffutils

实际上安装过程还带来了 terminfo 这个包。虽然不用,但是也不嫌它占地儿,反正才 6kB 大小 :p 。

安装了完全版本的,那么代码高亮已经默认启用了,下面就是开启行号显示和启用文件比较编辑功能了。等等,如果试了发现没有代码高亮,不要急,再试试这个 /usr/bin/vim 指令。如果没有问题,那就说明在路由器重启之后就会正常了。

然后 vim 的配置文件是 /usr/share/vim/vimrc,如果需要就去编辑它吧。我的感觉是不需要编辑,默认的已经够了。但是为了后面使用文件比较的时候更方便,还是打开其行号显示功能更好。编辑那个配置文件,将最后两行前面的 " 去掉(就是取消注释)。如下所示,

" Uncomment out for line and/or relative numberig
"set number
"set rnu

改成,

" Uncomment out for line and/or relative numberig
set number
set rnu

当然可以直接用下面的 sed 指令来完成这种简单任务,

sed -i 's/"\?set number/set number/' /usr/share/vim/vimrc
sed -i 's/"\?set rnu/set rnu/' /usr/share/vim/vimrc

启用文件比较编辑就比较简单了。先看看是否有 vimdiff 这个指令,

which vimdiff

如果没有咱就给创建一个。这个小窍门是我从 OpenWrt 的 Issue 列表上学来的。虽然系统已经具有了这样的功能,但是还差了个可执行文件。只要建立一个 vimdiff 的软连接就可以了,

ln -s /usr/bin/vim /usr/bin/vimdiff

比如升级软件包之后比较配置文件是否需要修改,

vimdiff /etc/config/luci /etc/config/luci-okg

如果 vimdiff 不能进行比较编辑的话,提示找不到 diff 命令,就就是 diffutils 软件包每安装好。参考这里

最后,可以将文件 /usr/share/vim/vimrc/usr/bin/vimdiff 加入到系统升级不被删列表里面(Web 界面,System,Backup / Flash Firmware,Configuration)。这样在升级系统的时候就会被保留了。当然导出配置文件的时候这些也会被导出。©

本文发表于水景一页。永久链接:<http://cnzhx.net/blog/setup-vim-in-openwrt/>。转载请保留此信息及相应链接。

2 条关于 “在 OpenWrt 中配置使用 vim 代码高亮和文件比较编辑” 的评论

  1. 引用通告: 升级路由器固件 OpenWRT 18.06.5 到 19.07.0(更新 19.07.3) | 水景一页

  2. 引用通告: 路由器更新 OpenWrt 固件一般步骤 | 水景一页

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)