Vim 居中光标所在行与大小写切换

经常忘记了,记录一下 😉

居中光标所在行
曾经用Emacs的时候发现那个Ctrl-L特别好用,看到光标在下面了按一下就把那行提到屏幕中间来了,于是想在vim中找类似的功能,想想也该有嘛,所以就找到了,而且有三条~

zz: 将当前行置于屏幕中间(不是转载…)
zt: 将当前行置于屏幕顶端(不是猪头~)
zb:底端啦~

还有一条就是移动光标所在行的位置,就是说,比如我光标在第10行,我想光标不动,但是所在行向上移,ctrl-e啦,然后向下的话,ctrl-y~

大小写切换
在vim中,通过v选中的文字可以用u切换到小写,U切换到大写,~在大小写之间切换,但是如果需要对选定的词做大小写操作,就需要用到%s中的\u,\U,\l和\L,\u是把后续的字符串第一个字符转成大写而\U是把后续的都转成大写(upper case),\l和\L是转成小写(lower case)

例如如果要把所有行首的单词首字母大写后面的所有字母都小写,可以这么折腾:

:%s/^\(\w\)\(.*\)/\u\1\L\2/g

需要注意的一点是,如果\L和\U后面跟有别的字符串,也会被弄成大写,如对字符串abcdefg运行 %s/abcd/\Uefgh/g 的结果就是 EFGHefg,这一点在使用反向引用\1, \2等的时候比较麻烦,例如我\1取到的是一个单词,我需要把它们都大写化了,然后后面的\2也会被变成大写。刚好下午试的是给变量改名字,在需要变大写的单词后面有一条下划线,于是就这么用了:

:%s/_\([a-z]\)_\(.*\)/_\U\1\l_\2/g

\l 对下划线没影响,刚好用来抵消 \U 的作用,满好,至于别的情况,暂时没想法……

Over!

From: http://www.hzmangel.info/blog/archives/490 http://www.hzmangel.info/blog/archives/491

Linux 系统使用 Sierra Wireless MC7750 连接 EVDO

最近买了一部联想的 ThinkPad T430s,之所以买它,很大的一个原因是它可以安装内置的移动网络数据模块,但是该死的联想公司竟然在 BIOS 中限制用户自由选择硬件模块(真想 FUCK 它),导致手头上现有的华为 EM660 不能用,额外花了 ¥600 买了一个 Sierra Wireless MC7750。

Sierra Wireless MC7750 支持 GSM/EGDE/UMTS/HSDAP CDMA/1X/EVDO LTE 等网络制式,在 Arch Linux 系统中使用 NetworkManager + ModemManager 连接 EVDO 可以获得 IP 地址(wwan0 网络接口),但 ping 任何一个外网 IP 地址都是 Timeout。经过分析后发现在 Linux (kernel 3.x) 系统中将会使用 qcserial 和 qmi-wwan 驱动。而应用程序 ModemManager (0.7.99) 默认的行为是在有 QMI 的情况下优化使用。但 QMI 接口可能是内核中还存在着 Bug 吧?只能使用传统的 PPP 模式。

详细配置
1. 禁用 qmi-wwan 驱动

echo "blacklist qmi-wwan" | sudo tee /etc/modprobe.d/qmi-wwan.conf

2. 配置 NetworkManager 网络连接
Number: #777
Username: ctnet@mycdma.cn
Password: vnet.mobi
Authication method: PAP

至此,就可以直接使用 NetworkManager 连接 EVDO 啦。

Over!