VIM技巧汇总

旧站原贴:http://www.ai7.org/wp/html/177.html

2017年4月25日:

  • 查找相同的两行: /^\(.*\)$\n\1

2017年3月11日:

  • 按数字排序: :sort n
  • 倒序: :sort!
  • 使用 / 开始搜索后,按 [I 可以得到关键词所在行的列表。

2016年7月30日:

  • vim的sort没有直接按第几列排序的选项,但是可以指定跳过的内容,所以可以用类似这样:sort /^.*t/的命令对以tab分割的第二列排序。

2016年7月23日:

  • 查看所有快捷键定义: :map
  • 查看快捷键定义所在文件: :verbose map <C-j>

参考链接: vim查看映射定义的文件

2015年7月28日:

  • 查找非ASCII字符: /[^\x00-\x7f]

2015年6月6日:

  • Mac+iTerm2下用VIM时,如果方向键在插入模式工作不正常, 出现A,B,C,D之类的乱码,可以调整iTerm2的终端设置, 也可以重定义按键,要看具体的情况。 详细的解决方法见 这个页面

2015年5月2日:

  • VIM 7以上的版本内置了拼写检查,但是默认没有开启。 :set spell 开启, :set nospell 关闭。 ]s 下一处错误, [s 上一处错误。
  • 也可以使用 engspchk 这个插件。
  • gqap 当前段自动换行。当前段是指以空行分隔的文字。按 textwidth 个字符换行,默认是80字符。对中文无效。
  • = 是自动格式化代码指令。比如 gg=G 会将光标移动到文档 首,再对全篇文档格式化,主要是自动缩进。

pdfnup-拼接多页PDF为一页

按页处理PDF文件的工具比较多,比如 pdftk ,可以按页合并、抽取、旋转PDF文件等。但是把多个PDF文件拼接为同一页的软件比较少。 imagemagick 虽然可以很灵活的拼接图片,但是不能保持PDF文件的矢量性,本质上是先转成图片,再拼接。最终找到了 pdfnup

pdfnup 可以将多页PDF文件拼接为一页,可以是来自不同的PDF文件,也可以是来自同一文件的不同页。它的本意是把普通PDF文件多页拼接为一页,打印的时候省纸,最常见的应用场合是打印幻灯片。当然,也可以把它当作合并PDF图片的工具。

pdfnup --nup 2x1 --suffix '2x1' myfile1.pdf myfile2.pdf

以上命令将两个文件中的页面,依次两页并排拼接为一页。如果再增加 --batch 参数,则两个文件分别拼接。

更多参数请 man pdfnup

pdfnup 其实是软件包 PDFjam 中的一个工具,而 PDFjam 实现了LaTeX包 pdfpages 的全部功能。所以,这些工具理论上都需要pdflatex支持。如果已经装了TeXLive,则已经包含这些工具。不知道有没有独立的版本。

最后如果还想裁一下白边,用 pdfcrop

H2O 电话卡

与国内不同,美国的电话运营商比较多,而且除了ATT这种有自己硬件网络的大运营商之外,还有很多小公司,租用大公司的线路,提供更灵活的资费套餐。

关于几个大运营商的介绍已经很多了,这里要介绍的是H2O这家公司的服务。这是一家租用ATT线路的二级运营商。

主要特点:

  • 资费较低,有数据流量。最低一档Pay As You Go套餐,90天的最低消费为$10,电话每分钟$0.05(注意,双向收费,接、打资费一致),短信每条$0.05(双向收费),国际短信每条$0.10,数据$0.10/MB。国际电话资费是一样的,但是不能直接拨,需要先打到一个美国的号码上,再转接,我试过两次,没有成功过。虽然美国WIFI的覆盖率还可以,但是免费的也不多,如果是出去玩,手机有数据流量,关键时刻看个地图,查个电话还是很有用的。其他大公司的低端套餐往往不包括流量。
  • 计费灵活,续费后余额可以保留。在90天到期之前,如果还有余额,续费之后,余额可以保留,并且新的90天有效期是从原来的到期日开始计算。
  • 使用方便。无合约,不需要SSN,无手续费、税、押金等其他费用。只有SIM卡需要单独购买,官方网站是$10,但是在Amazon和Ebay上都能找到$0.05以下(最低$0.01)免运费的卖家。购买的时候注意大、小卡。据说ATT的号码可以携号转网,这样就不用再买SIM卡了。SIM卡到了之后,在 Callingmart 购买充值卡,网上开通、激活、充值即可。但是只能指定区号,不能选号,随机生成。每次使用后,马上会有计费和余额提示,平时可以拨*777#查询余额,但是不能查详单(好象美国都不能查)。
  • ATT线路,信号不错。因为是租用的ATT的线路,因此理论上与ATT的网络覆盖范围和信号质量完全一致。而且可以直接使用ATT的有锁机,不需要解锁。但是因为是租用,有可能在线路繁忙的时候,接通的优先级降低。

总的来说,价格便宜、信号不错、使用方便,适合在美国呆半年一年说长不长说短不短电话不多没有还不行的朋友使用。主要缺点:一是不能选号,二是包运费的卖家,一般配送使用的是USPS的平信,要一周左右才能拿到手。

/images/h2o.png

参考链接:

Command Line Tips

最后更新时间:2017-09-28 12:03.

以下记录仅作提示,请自行man。

  • Exif信息管理工具:exiftool,需要单独安装。特别的,移除Exif信息可以使用如下命令:

    exiftool -all= *.jpg

  • 查看两个文件相同的行:comm。与之相关的命令是diff。比如显示两个文件共同的行:

    comm -12 file1.txt file2.txt

    显示只在第一个文件中出现的行:

    comm -23 file1.txt file2.txt

  • 按列合并两个文件:paste。即,内容添加到对应行的行尾,而不是添加到文件尾。

  • 生成序列:seq。

  • 将当前多个子目录下的pdf文件移动到同一个目录下:

    for i in find . -iname "*.pdf";do mv $i pdf/.;done

  • copy当前路径到剪贴板:

    pwd | pbcopy

    当然,有了pbcopy,很多东西都可以copy到剪贴板。

  • 生成随机数:

    echo $(openssl rand 4 | od -DAn)

    来源

  • 文件以英文逗号分列,先按第一列排序,再第二列按数字倒序:

    sort -t , -k1,1 -k2nr,2 file.txt

  • 解压缩多个zip文件,指定编码字符集,按主文件名新建目录

    for i in *.zip;do unar -d -e GBK $i;done

  • 解压缩多个rar文件,按主文件名新建目录

    for i in *.rar;do unrar x -ad $i;done

    注意,以上两个命令,一个是unar,一个是unrar。

Imagemagick Tips

更新时间:2014-03-17

  • 横向合并多个文件

    convert a.png b.png +append out.png

  • 纵向合并多个文件

    convert a.png b.png -append out.png

  • 剪裁用crop,自动剪裁用trim

  • 纵向合并多个文件,并且要求居中对齐

    convert a.png b.png -gravity center -append out.png