《SQL基础教程》简要总结 《设计师要懂心理学》读书笔记 MySQL与MariaDB学习笔记 WDT (Folly) 安装指南 -- CentOS 7 [solved]Page build failed(Jekyll) 数据包过滤及分析实例 tshark tcpdump Scala Tour 学习总结 “Docker容器和容器云”读书笔记(1) “Docker Practice”读书笔记 “图解基础设施设计模式”小结 “图解服务器端网络架构”小结 Python网络安全编程 数据包解析笔记 华为挑战赛(1) DDoS攻击防御与云服务 基于网络回溯分析技术的异常行为分析 “Linux程序设计”小结(进程间通信) C语言编程规范(华为软件精英挑战赛) 2017阿里在线编程题--单源最短路径问题 2017年阿里在线编程题-- 数串分组 Uinx/Linux上的帮助查询命令 你懂C,所以C++不在话下 一篇特别长的总结(C专家编程) 程序员面试金典--笔记(精华篇) C陷阱与缺陷--笔记 半小时搭建电子商务网站--opencart linux网络知识和工具(持续更新) 网卡参数查询及设置工具ethtool 高性能流量生成工具trafgen(DDoS模拟) Linux流量控制工具TC 流量控制工具TC详细说明 tcpdump过滤数据包,结果不对? Lecture 网络攻击与防御技术笔记 gotgit-git权威指南 高效使用MacOS所要知道的 shell内置字符串处理 配置ntp(知其所以然) 360黑客攻防技术分享会--记录 中毒U盘恢复--快捷键病毒 Tor--anonymity network介绍(PPT) IBM bluemix 再读《Linux Shell脚本攻略》 linux shell 学习摘记(9) linux shell 学习摘记(8) linux shell 学习摘记(7) linux shell 学习摘记(6) linux shell 学习摘记(5) linux shell 学习摘记(4) linux shell 学习摘记(3) linux shell 学习摘记(2) linux shell 学习摘记(1) firefox vim 插件 vimperator A Byte of Vim 笔记 windows注册表小知识 安全测试工具篇(开源&商业) 安全及性能测试工具(网站收集) 性能测试工具 屡试不爽的“3个”iPad使用技巧 Shell Shortcuts(和Tab键一样实用) vim--自动添加jekyll post信息头 vim 自动给文件添加头部信息 GitHub Tips (很实用,值得收藏) Linux路由、防火墙、NAT命令

实用的 vim 技巧

2016年09月11日

命令部分

分屏 Ctrl+w

  • 启动窗口:vim O2 filename1 filename2 垂直分屏打开两个文件; vim o3 filename1 filename2 filename3 水平分屏打开三个文件
  • 关闭窗口:Ctrl+w c 关闭当前窗口,如果是最后一个了,则不关闭; Ctrl+w q 如果是最后一个,则直接关闭vim
  • 屏间移动光标:Ctrl+w后再按h/j/k/lCtrl+w w
  • 移动分屏位置:Ctrl+w后再按H/J/K/L这也可以让分屏在垂直显示和水平显示之间相互切换,具体可:help opening-window
  • 修改分屏尺寸:Ctrl+w后再按=/+/- 设置全部一样的高度/增加高度/减少高度;Ctrl+w后再按>/<设置增加/减少宽度
  • 分屏转化为标签: CTRL+w t

多标签 tab

  • 打开多个文件(多标签):vim -p file1 file2; :tabe file1

窗口调节

  • 设置vim默认打开窗口最大化的方式: windows下在vimrc中添加au GUIEnter * simalt ~x; linux下vimrc添加如下代码(其他详细配置参考链接)
    if has("gui_running")
        set lines=999 columns=999
    else
        if esixts("+lines")
            set lines=50
        endif
    endif

专家命令

  • 删除连续的空白行 :%s/^\(.*\)\n\1$/\1/g
  • 在每行前添加两空行 :g/^/norm 2o
  • 在新分屏中打开本文档所在的目录::H!
  • 同时在打开的多个标签文件中执行命令: :tabdo XXX

有趣的命令

基本概念

  • buffer 缓冲区 –> :b :buffers
  • register 寄存器 –> "(存入或取出)
  • marcro 宏 qa(记录在寄存器a中) –> @a(执行寄存器里面的命令)
  • mark 标记 ma –> 'ag'a
  • g#(匹配的是word) #(匹配的是\<word\>单个词) g* *
  • vim中输入:h! :h 42

知识共享许可协议
SWF's Hacking Dreamonephone 创作,采用 知识共享 署名-非商业性使用 4.0 国际 许可协议进行许可。
© 2011-2017. All rights reserved by onephone. Powerd by Jekyll.