Depoly your flask app into Heroku Fix shit IE code manually ISBN to Book Category by Scraping DangDang A Generic Makefile for C/C++ Program Configure Raspberry pi Remove watermark with PyPDF2 tips for docker Anaconda+TensorFlow+CUDA Snippets Configure Remote Mathematica Kernel Build your own ngrok server Access Array SSL VPN 使用Rstudio制作html5幻灯片 tips for Mac OS X system Tips for ipython notebook 配置Ubuntu server + Openbox (Obuntu) tips for Vimperator tips for Vim 安装CUDA My First Jekyll Blog rsync常见选项 在Linux中读取Ipod touch的文件 tip for texmacs 在VPS上建站的一些tip Gnuplot绘图札记 Samba系统和autofs自动挂载 Linux中alsamixer声卡无法录音 搭建自己的RSS订阅器——Tiny Tiny RSS Grub2引导安装Ubuntu awk tips 将Ubuntu系统装入U盘 The Great Rtorrent 编译GCC 再这样剁手!!!该死的libgd 使用ulimit进行资源限制 使用SSH代理上IPV6 使用RCurl抓取网页数据 修复Ubuntu Grub记 openbox中的文件关联 在Ubuntu 12.04下编译qtiplot 处理BCM4312网卡驱动纪实 配置我的Ubuntu Server记 Cygwin杂记 Linux 使普通用户具有以超级权限执行脚本 让firefox自定义地处理文件类型 WordPress优秀主题及插件 在phpcloud上搭建wordpress UBUNTU下用pptpd做VPN server ubuntu升级内核过后的一些问题 安装telnet服务 kubuntu札记 64位kubuntu札记 统计软件R virtualbox stardict星际译王 Ubuntu重装windows系统后的grub引导修复 SSH服务及花生壳域名解析 采用cbp2make工具由code::blocks工程创建makefile文件 UBUNTU 札记

tips for Vim

2015年08月11日

  1. 利用vim转换文件编码set fileencoding=utf-8

  2. set list就是 Tab 的地方会以 ^I 显示,而行尾之 EOL 會显示成 $。可以让你知道 Tab 在哪里,换行是不是真的。

  3. 块插入

    首先ctrl+v进入块选择模式,然后shift+i进行插入,插入完成后按两次<ESC>退出。

  4. 选中上次使用的区域gv

  5. 缩进gg=G;使用外部程序(gq采用astyle)格式化gggqG

  6. 将光标所在行切换到窗口中间zz

  7. 翻页ctrl+f/b

  8. 删除指定行

    删除包含特定字符的行g/pattern/d 删除不包含指定字符的行v/pattern/dorg!/pattern/d

  9. 切换显示TAB键以及空格等set list!

  10. 使用宏

    qa开始录制宏,宏的名字为a;然后进行中间的操作;再按q宏录制结束。 按@a,执行一次宏,或按下6@a 就执行了6次等。

  11. 生成帮助索引helptags $VIMRUNTIME/doc

  12. 查看某快捷键是否被定义过,只需要在命令行中输入定义该快捷键的命令,而不输入被定义的命令即可。还可只输入快捷键的前面一部分,就会显示所有类似快捷键的被定义命令。

  13. 正则表达式:vim的正则表达式不是很清楚使用的是哪个版本的实现,有些语法上有点不一样,:help pattern即可查询到一些细节。比如非贪婪匹配用\{-}

  14. 使用命令:qa!可以强制退出所有文件,:xa可以保存所有文件并退出。

  15. 多行匹配,使用\_.可匹配换行,可结合非贪婪使用,如\_.\{-}

  16. 在每一行前面添加一个序号:let i=1 | g /^/ s//\=i.". "/ | let i+=1

  17. 批量操作文件

    VIM 中实现对文件的批量是通过同时打开多个文件实现的,即对 args 的操作。有以下的方式:

     vim a.txt b.txt c.txt
     :args *.txt
    

    之后,可以通过:ls:args:buffers来查看当前的 buffers 列表。 现在,要同时处理这些 buffers 中的各个文件,使用 argdo 就可以了。

     :argdo %s/teh/the/ge | update
    

    argdo 后面跟命令就可以了,它的作用就是把后面的命令应用到 arg list 中的各个文件上。 e 这个 flag 是表示忽略错误,遇到意外时不停止处理过程。 update 这个命令是当文件发化变化时保存文件,就和 write 一样。

  18. 匹配任意中文字符[^\x00-\xff], 匹配非中文字符[\x00-\xff]

  19. 阅读源代码时可以用<leader>gf打开光标所在处的文件,如被包含的头文件,意为’go to file’.使用前需要设置path变量

     set path+=/path/to/include
    
  20. 使用:verbose map <所要查找的快捷键>可以查看快捷键的具体命令及定义位置