模式介绍:

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. 邮件江湖群狼环伺 U-Mail邮件系统防狼有术

    小时候听过一首儿歌<小兔子乖乖>,里面说到有条恶狼,常常冒充小兔子的“妈妈”,要求小兔 子开门,但小兔子谨守妈妈的训诫,就是不开门,直到辨别出妈妈在窗外的声音,才打开房门.如果我们将一些似 ...

  2. html--第一章 基础知识总结

    1--<body bgcolor="red">背景颜色 2--<body backgroud="back-ground.gif">  背 ...

  3. js中数组

  4. (转)iOS sqlite :truncate/delete/drop区分

    转自:http://blog.sina.com.cn/s/blog_6755689f0101fofb.html 相同点: 1.truncate和不带where子句的delete.以及drop都会删除表 ...

  5. MySQL中如何插入反斜杠,反斜杠被吃掉,反斜杠转义

    问题描述:mysql中带有反斜杠的内容入库后,发现反斜杠无故失踪了(俗话说被吃掉了) 例:插入insert into tb('url') values('absc\eeee'); 结果数据库里的内容是 ...

  6. knockout.js $index 做列表索引小技巧

    我们都知道,在foreach binding中,使用$index可以得到基于0的索引序号,但在列表显示中,我们更希望这个索引是从1开始的,怎么处理呢? 这里,有个小技巧:使用$index() + 1, ...

  7. [转]Sql server2005中如何格式化时间日期

    ) -- mon dd yyyy hh:mmAM (or PM) ) -- mm/dd/yyyy - 10/02/2008 ) -- yyyy.mm.dd -- 2008.10.02 ) -- dd/ ...

  8. Java 读取Properties配置文件

    1.img_url.properties imgurl=http://10.1.19.65:8090 2.Test.java InputStream inputStream = this.getCla ...

  9. sublime txt 设置在浏览器预览

    1. 安装SideBarEnhancements插件 ctrl+shift+p —> Install Package —> 找到SideBarEnhancements 2. 配置预览快捷键 ...

  10. Infobright存储引擎的特点

    Infobright的优点: (1)高压缩比率 (2)快速响应复杂的分析查询语句 (3)随着数据库的逐渐增大,查询和装载性能基本保持稳定 (4)没有特殊的数据仓库模型(比如星状模型.雪花模型)要求 ( ...