移动光标

  1. h,j,k,l 上,下,左,右
  2. ctrl-e 移动页面
  3. ctrl-f 上翻一页
  4. ctrl-b 下翻一页
  5. ctrl-u 上翻半页
  6. ctrl-d 下翻半页
  7. w 跳到下一个字首,按标点或单词分割
  8. W 跳到下一个字首,长跳,如end-of-line被认为是一个字
  9. e 跳到下一个字尾
  10. E 跳到下一个字尾,长跳
  11. b 跳到上一个字
  12. B 跳到上一个字,长跳
  13. 0 跳至行首,不管有无缩进,就是跳到第0个字符
  14. ^ 跳至行首的第一个字符
  15. $ 跳至行尾
  16. gg 跳至文首
  17. G 调至文尾
  18. 5gg/5G 调至第5行
  19. gd 跳至当前光标所在的变量的声明处
  20. fx 在当前行中找x字符,找到了就跳转至
  21. ; 重复上一个f命令,而不用重复的输入fx
  22. * 查找光标所在处的单词,向下查找
  23. # 查找光标所在处的单词,向上查找

删除复制

  1. dd 删除光标所在行
  2. dw 删除一个字(word)
  3. d/D删除到行末x删除当前字符X删除前一个字符yy复制一行yw复制一个字y/Y 复制到行末
  4. p 粘贴粘贴板的内容到当前行的下面
  5. P 粘贴粘贴板的内容到当前行的上面

插入模式

  1. i 从当前光标处进入插入模式
  2. I 进入插入模式,并置光标于行首
  3. a 追加模式,置光标于当前光标之后
  4. A 追加模式,置光标于行末
  5. o 在当前行之下新加一行,并进入插入模式
  6. O 在当前行之上新加一行,并进入插入模式
  7. Esc 退出插入模式

编辑

  1. J 将下一行和当前行连接为一行
  2. cc 删除当前行并进入编辑模式
  3. cw 删除当前字,并进入编辑模式
  4. c$ 擦除从当前位置至行末的内容,并进入编辑模式
  5. s 删除当前字符并进入编辑模式
  6. S 删除光标所在行并进入编辑模式
  7. xp 交换当前字符和下一个字符
  8. u 撤销
  9. ctrl+r 重做
  10. ~ 切换大小写,当前字符
  11. >> 将当前行右移一个单位
  12. << 将当前行左移一个单位(一个tab符)
  13. == 自动缩进当前行

查找替换

  1. /pattern 向后搜索字符串pattern
  2. ?pattern 向前搜索字符串pattern
  3. "\c" 忽略大小写
  4. "\C" 大小写敏感
  5. n 下一个匹配(如果是/搜索,则是向下的下一个,?搜索则是向上的下一个)
  6. N 上一个匹配(同上)
  7. :%s/old/new/g 搜索整个文件,将所有的old替换为new
  8. :%s/old/new/gc 搜索整个文件,将所有的old替换为new,每次都要你确认是否替换

退出编辑器

  1. :w 将缓冲区写入文件,即保存修改
  2. :wq 保存修改并退出
  3. :x 保存修改并退出
  4. :q 退出,如果对缓冲区进行过修改,则会提示
  5. :q! 强制退出,放弃修改

多文件编辑

  1. vim file1.. 同时打开多个文件
  2. :args 显示当前编辑文件
  3. :next 切换到下个文件
  4. :prev 切换到前个文件
  5. :next! 不保存当前编辑文件并切换到下个文件
  6. :prev! 不保存当前编辑文件并切换到上个文件
  7. :wnext 保存当前编辑文件并切换到下个文件
  8. :wprev 保存当前编辑文件并切换到上个文件
  9. :first 定位首文件
  10. :last 定位尾文件
  11. ctrl+^ 快速在最近打开的两个文件间切换
  12. :split[sp] 把当前文件水平分割
  13. :split file 把当前窗口水平分割, file
  14. :vsplit[vsp] file 把当前窗口垂直分割, file
  15. :new file 同split file
  16. :close 关闭当前窗口
  17. :only 只显示当前窗口, 关闭所有其他的窗口
  18. :all 打开所有的窗口
  19. :vertical all 打开所有的窗口, 垂直打开
  20. :qall 对所有窗口执行:q操作
  21. :qall! 对所有窗口执行:q!操作
  22. :wall 对所有窗口执行:w操作
  23. :wqall 对所有窗口执行:wq操作
  24. ctrl-w h 跳转到左边的窗口
  25. ctrl-w j 跳转到下面的窗口
  26. ctrl-w k 跳转到上面的窗口
  27. ctrl-w l 跳转到右边的窗口
  28. ctrl-w t 跳转到最顶上的窗口
  29. ctrl-w b 跳转到最底下的窗口

多标签编辑

  1. :tabedit file 在新标签中打开文件file
  2. :tab split file 在新标签中打开文件file
  3. :tabp 切换到前一个标签
  4. :tabn 切换到后一个标签
  5. :tabc 关闭当前标签
  6. :tabo 关闭其他标签
  7. gt 到下一个tab
  8. gT 到上一个tab
  9. 0gt 跳到第一个tab
  10. 5gt 跳到第五个tab

执行shell命令

  1. 在命令模式下输入":sh",可以运行相当于在字符模式下,到输入结束想回到VIM编辑器中用exit,ctrl+D返回VIM编辑器
  2. 可以"!command",运行结束后自动回到VIM编辑器中
  3. 用“Ctrl+Z“回到shell,用fg返回编辑
  4. :!make -> 直接在当前目录下运行make指令

VIM启动项

  1. -o[n] 以水平分屏的方式打开多个文件
  2. -O[n] 以垂直分屏的方式打开多个文件

自动排版

在粘贴了一些代码之后,vim变得比较乱,只要执行gg=G就能搞定

如何在vim中编译程序

  1. 在vim中可以完成make,而且可以将编译的结果也显示在vim里,先执行 :copen 命令,将结果输出的窗口打开,然后执行 :make
  2. 编译后的结果就显示在了copen打开的小窗口里了,而且用鼠标双击错误信息,就会跳转到发生错误的行。

buffer操作

  1. buffer状态

      • (非活动的缓冲区)
    1. a (当前被激活缓冲区)
    2. h (隐藏的缓冲区)
    3. % (当前的缓冲区)
    4. # (交换缓冲区)
    5. = (只读缓冲区)
    6. + (已经更改的缓冲区)

VIM 操作目录

  1. 打开目录

    1. vim .
    2. vim a-path/
  2. 以下操作在操作目录时生效
    p,P,t,u,U,x,v,o,r,s

  3. c 使当前打开的目录成为当前目录
  4. d 创建目录
  5. % 创建文件
  6. D 删除文件/目录
  7. - 转到上层目录
  8. gb 转到上一个 bookmarked directory
  9. i 改变目录文件列表方式
  10. ^l 刷新当前打开的目录
  11. mf - 标记文件
  12. mu - unmark all marked files
  13. mz - Compress/decompress marked files
  14. gh 显示/不显示隐藏文件( dot-files)
  15. ^h 编辑隐藏文件列表
  16. a 转换显示模式, all - hide - unhide
  17. qf diplay infomation about file
  18. qb list the bookmarked directories and directory traversal history
  19. gi Display information on file
  20. md - 将标记的文件(mf标记文件)使用 diff 模式
  21. me - 编辑标记的文件,只显示一个,其余放入 buffer 中
  22. mm - move marked files to marked-file target directory
  23. mc - copy

vim 中复制/移动文件

  1. mt - 移动到的目录
  2. mf - 标记要移动的文件
  3. mc - 移动/复制
  4. R 移动文件

打开当前编辑文件的目录

  1. :Explore
  2. :Hexplore
  3. :Nexplore
  4. :Pexplore
  5. :Sexplore
  6. :Texplore
  7. :Vexplore

本文转自:VIM常用快捷键
如需转载,请注明出处:https://www.cnblogs.com/zhuchenglin/p/10058811.html

VIM常用快捷键(转载)的更多相关文章

  1. [转贴] VIM 常用快捷键 --一直记不住

    vim 常用快捷键  原帖地址: https://www.cnblogs.com/tianyajuanke/archive/2012/04/25/2470002.html 1.vim ~/.vimrc ...

  2. [转帖]VIM常用快捷键

    VIM常用快捷键 https://www.cnblogs.com/markleaf/p/7808817.html 快捷键能够显著的提高工作效率 一.移动光标 h,j,k,l 上,下,左,右ctrl-e ...

  3. Linux系统下vim常用快捷键及功能

    1. 什么是vim Vim是一个类似于Vi的著名的功能强大.高度可定制的文本编辑器,在vi的基础上改进和增加了很多特性. vim编辑器是Linux系统下标准的编辑器,作用相当于windows系统中的记 ...

  4. SQLyog常用快捷键 - 转载

    SQLyog常用快捷键 1. SQL格式化 F12 格式化当前行所在的SQL Ctrl+F12    格式化选中的SQL 2. 窗口操作 Ctrl+T 打开一个新的查询窗口 Alt+L         ...

  5. vim常用快捷键总结一(光标移动命令)

    vim编辑器的工作模式分为3种即(命令模式,编辑模式和尾行模式),具体定义这里就不在赘述了,这里只简单介绍各工作模式下对应的操作和快捷方式. 通常来说三三种模式功能划分大致如下 命令模式:定位.翻页. ...

  6. Vim常用快捷键--正常的学习曲线

    vim可能对于初学者不太友好,学习曲线有点陡,特此整理了较为平滑的学习曲线的学习快捷键的方式,包含最常用的快捷键,让初学者领悟vim的优点,想要进阶学习请查找其它更好的教程 正常模式:可以使用快捷键命 ...

  7. VIM 常用快捷键

    一,光标移动 大家不要觉得光标移动不重要,其实它是基础,更好的光标移动,复制,粘贴,删除等才能更加的得心应手,进入了编辑器里面后,鼠标就不能用了. 光标移动 h 或 向左箭头键(←) 20h或者20( ...

  8. [Linux] VIM 常用快捷键2

    如何使用MacVim 1.在插入模式之外 基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面 VIM 就像一个“哑巴”编辑器一样.很多新手都会一直呆在插入模式里面,因为这样易于使用.但 ...

  9. VIM常用快捷键~网页上查找

    转自~木枫林 转自~鸟哥的私房菜 第十章.vim 程序编辑器 第十章.vim 程序编辑器 最近更新日期:2009/08/20 2. vi 的使用 2.1 简易执行范例 2.2 按键说明 2.3 一个案 ...

随机推荐

  1. [Kubernetes] CRI 的设计与工作原理

    咱们来看看,有了 CRI 之后, Kubernetes 的架构图: 我们可以看到, CRI 机制能够发挥作用的核心,在于每一个容器项目现在都可以自己实现一个 CRI shim ,自行对 CRI 请求进 ...

  2. vs2013、vs2015使用.net4.5框架智能提示英文转成中文

    安装完VS2013.VS2015使用.net framework 4.5框架时,代码补全中智能提示信息全是英文解决方案:关闭VS2013.VS2015:将zh-Hans 目录替换以下目录 C:\Pro ...

  3. 微信公众号替换title

    说明:项目使用 vue 开发 方法一: 单页应用里整个页面只会在第一次完全刷新,后面只会局部刷新(一般不包括head及里面的title),所以无法在服务器端控制title,只能在页面刷新的时候通过js ...

  4. Spring Tools4

    Spring Tools4是一个集成了STS插件的Eclipse,所以下载之后就不需要再下载eclipse. 访问 https://spring.io/tools/ 点击“Download STS4 ...

  5. Mongodb 安装错误汇总

    Failed to restart mongod.service: Unit mongod.service not found. 解决方法: Most probably unit mongodb.se ...

  6. Java定时清理过期文件

    项目中经常需要自动定时去清理一些过期文件,这个其实Java实现挺简单的,核心部分就2个,一个定时任务,一个递归删除文件,不过前提是你的文件放在以“2018-12-05”这样命名的文件夹下,下面直接上核 ...

  7. selenium+python编写自动化脚本时,定位frame中对象操作

    在web应用中经常会出现frame嵌套的应用,假设页面上有A,B两个frame,其中B在A内,那么定位B中的内容则需要先到A,再到B.switchTo().frame方法可以把当前定位的主题切换到fr ...

  8. jdbc连接数据库以及crud(简单易懂,本人亲测可用 有源代码和数据库)

    今天呢!重新整理了一边jdbc的相关操作:现在来说对于很多框架都使用mybatis和hibernate来操作数据库 ,也有很多使用自己简单封装的ssm或者是其他的一些框架来操作数据库,但是无论使用哪一 ...

  9. PHP实现url参数组合字符串与数组相互转换

    $data = array( 'name' => 'tom', 'sex' => 1, 'channel' => 'ty' ); 数组转url参数字符串 $queryStr = ht ...

  10. 《ServerSuperIO Designer IDE使用教程》-4.增加台达PLC驱动及使用教程,从0到1的改变。发布:v4.2.3版本

    v4.2.3 更新内容:1.优化数据存储部分,提高效率.2.修复数据库服务停止造成程序异常退出的现象.3.修复本机没有串口造成无法增加设备驱动的情况.4.增加编辑设备和监测点配置信息功能.5.增加台达 ...