模式介绍:

Vim具备6种基本模式和5中派生模式。

普通模式

启动后的默认模式,用于:移动光标、删除文本等待,常用命令:

  • dd:删除当前行。
  • [number]dd:连续执行number对应次数的dd命令,如:2dd等于连续执行两次dd。
  • d[移动命令]:删除当前行到移动命令移动范围之间的所有行,如:dj等于2dd。

按a(append)或i(insert)进入插入模式。

插入模式

键盘的输入会向文本缓冲区中插入文本。按ESC键回到普通模式。

可视模式

为了便于选择文本,Vim引入了可视模式。在普通模式下按v进入可视模式。该模式下移动命 令会扩大高亮的文本区域。当执行一个非移动命令时,命令会被作用到这块高亮的文本区域 上,然后Vim回到普通模式。

选择模式

命令模式

执行命令(:键)、搜索(/和?键)、过滤(!),执行命令后,Vim返回命令模式之前的模 式,通常是普通模式。

Ex模式

进入Vim

vim note.txt

如果先使用vim,然后进入命令模式输入:: note.txt,同样可以打开相应的文件。

光标移动

  • h 左
  • l 右
  • j 下
  • k 上
  • w 下一个单词
  • b 上一个单词

进入插入模式

  • i 在光标处进行编辑
  • I 在行首进行编辑
  • a 在光标后进行编辑
  • A 在行尾进行编辑
  • o 在当前行后插入一个新行
  • O 在当前行前插入一个新行
  • cw 替换从光标到一个单词结尾的字符

退出Vim

  • q!:强制退出,不保存。
  • q:退出
  • wq!:强制保存并退出
  • w [文件路径]: 另存为
  • saveas 文件路径:另存为
  • x:保存并退出
  • wq:保存并退出
  • SHIFT+zz:保存并退出

普通模式下删除文本

  • x:删除游标所在字符
  • X:删除游标所在前一个字符
    Delete:同x
    dd:删除正行
    dw:删除一个单词(不适用中文)
    d$或D:删除至行尾
    d^:删除至行首
    dG:删除至文档结尾处
    dgg:删除至文档首部

Vim重复命令

  • 在普通模式下,.表示重复上一次的命令操作。
  • 在普通模式下,N[command],N表示重复后面的命令的次数。

游标的快速跳转

  • gg:跳转到第一行
  • G:跳转到最后一行
  • nG:跳转到第n行,如果没有显示行号,先使用:set nu显示行号。
  • CTRL+o:跳转到之前的位置
  • w:跳转到下一个单词的开头
  • e:跳转到下一个单词的结尾
  • b:跳转到前一个单词的开头
  • ge:跳转到前一个单词的结尾
  • ^:跳转到行头
  • $:跳转到行尾
  • f[字母]:向后搜索字母并跳转到第一个匹配的位置
  • F[字母]:向前搜素字母并跳转到第一个匹配的位置

复制、粘贴、剪切

普通模式中使用y复制,yy表示复制所在的行,3yy表示复制3行,y后面可以跟随光标移动命 令,代表复制的范围,如:y^、yw、y2w、yG等。

普通模式中p粘贴,p代表粘贴在吧、光标后,P代表粘贴在光标前。

dd删除命令就是剪切。

替换

  • r + [待替换字符]:将游标所在字符替换为指定字符
  • R:连续替换,直到按下ESC。
  • cc:替换整行,即:删除游标所在行,进入插入模式。
  • C:替换游标以后至行尾
  • c + [移动命令]:替换移动命令包含的文本,即:删除移动命令包含的文本,进入插入模 式。
  • ~:翻转游标所在字符的大小写

撤销

  • u + n:撤销一次或n次
  • U:撤销当前行的所有修改
  • CTRL + r:撤销undo的操作

调整文本位置

  • :向右缩进

  • <<:向左缩进
  • 进入命令模式输入shiftwidth值可以控制缩进字符数

搜索

  • / + 搜索内容:正向搜索
  • ? + 搜索内容:反向搜索
  • n:继续查找
  • N:反向继续查找
  • *:正向搜索光标处的单词
  • #:反向搜索光标处的单词

多文件编辑

可以使用vim同时打开多个文件,在使用:n编辑下一个文件,使用:n!强制切换下一个文件。 使用:N编辑前一个文件,使用:N!强制编辑前一个文件。

打开新文件的方式有:

  • :e file:打开指定文件
  • :e#:回到前一个文件
  • :e! file:打卡指定的文件,放弃正在编辑的文件的修改。
  • :ls:列出之前编辑过的文件
  • :f:显示正在编辑的文件名
  • :f file:重命名在编辑的文件名字
  • :b file:可以直接进入文件编辑

可视模式

在普通模式下输入v、SHIFT+v、CTRL+v进入选择模式,再按同样的键退出选择模式。输入d 删除选择区的内容,输入y复制选择区的内容。

多视窗

  • sp file 新建横向视图
  • vsp file 新建纵向视图
  • ctrl+w+s 将当前视图分割成两个横向的视图
  • ctrl+w+v 将当前视图分割成两个纵向的视图
  • ctrl+w+q 关闭当前视图
  • ctrl+w+o 打开一个视图并关闭之前的所有视图

Linux:Vim的更多相关文章

  1. Linux : Vim 使用与配置 (附 GitHub 自动化配置脚本)

    由于经常使用 vim 编辑配置文件,有时候也会进行使用vim 编写一些脚本和c/c++ 程序,所以配置一个常用的 vim 是很是必要的.这篇博文主要是记录vim使用和配置相关的一些知识点. 关于vim ...

  2. Linux:VIM编辑器的使用

    打开vim编辑器 命令格式: vim 文件路径 vim编辑器的工作模式 进入编辑器后 默认为命令模式 进入输入模式 a 在光标后插入 o 换行插入 i 在光标前插入 返回命令模式 esc 键 进入末行 ...

  3. Linux :vim 模式下的常用命令

    [参考文章]:vim 复制一整行 复制多行 1. 查找命令 ?text    查找text,按n健查找下一个,按N健查找前一个 /text     反向查找text,按n健查找下一个,按N健查找前一个 ...

  4. Linux:VIM简单入手

    现在的Linux系统一般都会默认安装VIM编辑器,如果没有安装VIM编辑器,也默认一定会有VI编辑器,VI编辑器产生的时间比鼠标来的更早,虽然功能很强大,但我建议安装VIM工具,安装了VIM之后,VI ...

  5. linux:vim中全选复制

    全选(高亮显示):按esc后,然后ggvG或者ggVG 全部复制:按esc后,然后ggyG 全部删除:按esc后,然后dG 解析: gg:是让光标移到首行,在vim才有效,vi中无效 v : 是进入V ...

  6. Linux:vim环境设置

    vim环境设置 vim的环境设置在/etc/vimrc的这个文件中,不过不建议直接修改该配置文件.但是可以修改~/.vimrc文件,默认是不存在的,要手动创建并写入设置值. set hlsearch ...

  7. linux命令学习之:vim

    1. 关于Vim vim是我最喜欢的编辑器,也是linux下第二强大的编辑器. 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效. 如果是初学vi,运行一下vimtu ...

  8. 吴裕雄--天生自然Linux操作系统:Linux vi/vim

    Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主 ...

  9. Linux:Day6(下) vim编辑器

    vim编辑器 简介: vi:Visual Interface,文本编辑器 文本:ASCII,Unicode 文本编辑种类: 行编辑器:sed 全屏编辑器:nano,vi VIM - Vi IMprov ...

随机推荐

  1. __new__

    [__new__] object.__new__(cls[, ...]) Called to create a new instance of class cls. 用于创建类对象cls的实例. __ ...

  2. 一个前辈对FPGA的理解

    接下来对比一下我原来和现在对于FPG A的认识:原来从单片机转型到FPG A时,并没有摸清这趟河水的深浅,而在不知深浅的情况下,我已经开始下水了.当时我认为FPG A和单片机一样,它是由一个超级经典的 ...

  3. Groovy basic

    1. print println "Hello Groovy!" you can use java in Groovy System.out.println("Hello ...

  4. Jquery Mobile 动态添加元素然后刷新 转

    Jquery Mobile 动态添加元素然后刷新 (2013-05-09 12:39:05) 转载▼ 标签: it 分类: Mobile jquery 表单元素每一个元素都有自己刷新的方法,每当改变它 ...

  5. spring中Bean的生命周期

    初始化方法:在Bean实例初始化后自动执行的方法 销毁方法:在Bean实例销毁前执行的方法 <bean id="bm" class="springTest.Car& ...

  6. (转) Lua使用心得一 LUA和VC整合

    这几天研究了一下lua,主要关注的是lua和vc之间的整合,把代码都写好放在VC宿主程序里,然后在lua里调用宿主程序的这些代码(或者叫接口.组件,随便你怎么叫),希望能用脚本来控制主程序的行为.这实 ...

  7. 连接Oracle的帮助类

    package util; import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedState ...

  8. eclipse编码格式设置教程、如何为eclipse设置编码格式?

    如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码.然而,EcliPSe工 作空间(workspace)的缺省字符编码是操作系统缺省的编码, ...

  9. 遇到的check the manual that corresponds to your MySQL server version for the right syntax错误

    遇到的check the manual that corresponds to your MySQL server version for the right syntax错误. 结果发现是SQL关键 ...

  10. IOS 导航栏

    系统状态栏改为白色:在Supporting Files文件的info.plist文件中添加 新的key,名字为View controller-based status bar appearance,并 ...