仅记录一些自己最经常使用的vim操作。随时更新

文本操作

  • d 剪切。双击剪切一行
  • y 复制,双击复制一行
  • p 粘贴

  • x 删除当前光标下字符

  • r 替换当前光标字符。后面接替换的字符

  • :s/old/new/g 全局替换old为new

移动

  • 0 移动到开头
  • $ 移动到结尾
  • w 移动到下一个单词开头
  • e 移动到下一个单词结尾

  • fx 移动到本行之后第一个出现x字母的位置

  • tx 移动到本行之后第一个出现x字母的前一个位置

  • gg 跳到文件首

  • G 跳到文件尾
  • NG 移动到第N行,或者用:N也可

  • { 上一段。}下一段

  • % 跳到匹配的括号处

  • ctrl+o 上一个位置

  • ctrl+i 下一个位置

文本移动和操作相互配合使用。比方d$+enter删除到行末,dw删除至下一个单词,2dd删除接下来两行

也能够和数字相互使用,比方y+enter5,复制下面5行,:1,20d+enter删除1~20行

模式切换

插入模式

  • i 进入插入模式。当前插入光标位置插入
  • a 进入插入模式,下一个光标位置插入
  • o 进入插入模式,在当前行下一行插入
  • O 进入插入模式。在当前行上一行插入

可配置vim成鼠标光标定位模式

可视化模式

  • :v 进入可视化模式

替换模式

  • :R 进入替换模式

使用外部命令

  • :! 在!后加入外部命令

查找

  • :/ 在/后加入要查找的内容

进入查找时。按n查找下一个,N查找上一个

文件操作

保存文件

  • :w 保存
  • :saveas filename 另存为

退出

  • :q

保存退出vim

vim中保存退出:x和:wq的差别。例如以下:

:wq和ZZ 强制性写入文件并退出(存盘并退出 write%quite)。即使文件没有被改动也强制写入。并更新文件的改动时间。

:x 写入文件并退出。仅当文件被改动时才写入,并更新文件改动时间。否则不会更新文件改动时间。

这两者普通情况下没什么不一样,可是在编程方面,对编辑源文件可能会产生重要影响。由于文件即使没有改动,”:wq”强制更新文件的改动时间。这样会让make编译整个项目时以为文件被改动过了。然后就得又一次编译链接生成可运行文件。

这可能会产生让人误解的后果。当然也产生了不必要的系统资源花销。

操作回退和重做

  • u 撤销上一个改动
  • U 撤销本行所做的改动过
  • ctrl+r 重做操作

其它

  • ctrl+g 显示当前文件信息
  • ctrl+d 补全命令

參考资料:

vim学习笔记(1)——vim操作的更多相关文章

  1. vim学习笔记(2)——vim配置

    记录vim的配置,随时更新 MacVim 安装: homebrew,安装位置:/usr/local/Cellar brew linkapps macvim--将macvim.app加入到Applica ...

  2. IOS学习笔记25—HTTP操作之ASIHTTPRequest

    IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...

  3. java学习笔记07--日期操作类

    java学习笔记07--日期操作类   一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. public class T { public ...

  4. jQuery学习笔记之DOM操作、事件绑定(2)

    jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...

  5. tensorflow学习笔记——使用TensorFlow操作MNIST数据(2)

    tensorflow学习笔记——使用TensorFlow操作MNIST数据(1) 一:神经网络知识点整理 1.1,多层:使用多层权重,例如多层全连接方式 以下定义了三个隐藏层的全连接方式的神经网络样例 ...

  6. tensorflow学习笔记——使用TensorFlow操作MNIST数据(1)

    续集请点击我:tensorflow学习笔记——使用TensorFlow操作MNIST数据(2) 本节开始学习使用tensorflow教程,当然从最简单的MNIST开始.这怎么说呢,就好比编程入门有He ...

  7. linux学习笔记:vim程序编辑器—vim的使用

    注:以下是学习<鸟哥的linux私房菜>(第三版)的学习笔记,纯属个人学习记录. 2018-11-19 一.学习vim的原因 很多软件的编辑接口都会主动调用vi 二.vim的使用 (1)v ...

  8. vim学习笔记(一)—— vim安装方法

    一.完全卸载vim的方法 sudo apt-get remove --purge vim (--purge 是完全删除,会连配置文件一起删除) 二.Vim前言——————“世界上只有三种编辑器,EMA ...

  9. vim学习笔记(10):vim命令大全

    进入vim的命令: vim filename :打开或新建文件,并将光标置于第一行首 vim +n filename :打开文件,并将光标置于第n行首 vim + filename :打开文件,并将光 ...

随机推荐

  1. Farseer.net轻量级开源框架 入门篇:添加数据详解

    导航 目   录:Farseer.net轻量级开源框架 目录 上一篇:Farseer.net轻量级开源框架 入门篇: 分类逻辑层 下一篇:Farseer.net轻量级开源框架 入门篇: 修改数据详解 ...

  2. 携程transform放大效果

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. [Windows Server 2008] MySQL单数据库迁移方法

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com ★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:MySQL ...

  4. MyBatis 之一 简介

    什么是 MyBatis ? MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis ...

  5. My-Eclipse 快捷键大全

    Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) Alt+ ...

  6. discuz x3论坛搬家换虚拟主机完美使用教程 亲测可行 附操作步骤

    第一步:备份网站数据进入后台—站长—数据库—备份,数据备份类型选择“Discuz!和 UCenter数据”,备份成功以后,数据自动保存在data文件夹下. 第二步:网站文件下载 把整个网站文件打包(虚 ...

  7. wpf mvvm模式下 在ViewModel关闭view

    本文只是博主用来记录笔记,误喷 使用到到了MVVM中消息通知功能 第一步:在需要关闭窗体中注册消息 public UserView() { this.DataContext = new UserVie ...

  8. php第二十五节课

    详情删除 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  9. acm学习指引

    acm学习心得及书籍推荐   一般要做到50行以内的程序不用调试.100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上. 下面给个计划练练: 第 ...

  10. POJ2454——Jersey Politics

    POJ2454——Jersey Politics 题目大意: 在泽西奶牛和荷斯坦奶牛的最新普查中,威斯康星奶牛在谷仓中获得了三个档位. 泽西奶牛目前控制着国家重新分配委员会. 他们想将国家分为三个相当 ...