Vim 简介

vim是什么?听说它是编辑器之神!
神一样的存在,而我却经常用上下左右箭头来移动光标,实在是有点对不起它,所以想着稍微学学一点神的技能吧!

一. vim的三种模式

    • Nomal mode:默认模式,因为使用该模式场景最多,所有定为默认模式
    • Insert mode :插入模式,少用,尽量不要停留在找个模式下,操作完成之后,推荐返回默认模式
    • Visual mode:可视模式,一般在需要选中的时候使用

三种模式之间的转换:

    • 在插入或者可视模式下,按Esc键返回到默认模式
    • 在默认模式下,按i,a,o进入插入模式
    • 在默认模式下,按v,V进入可视模式

二. vim的操作

2.1 vim中的快捷键

    • 移动:h(左)、l(右)、j(上)、k(下)
    • 操作:d(delete)、i(insert)、a(append)、c(change)、y(copy)、p(paste)
    • 缩写:w(word)、s(sentence)

2.2 vim中的正则表达式

    • ^:行首
    • $:行尾

2.3 vim中的命令模式

    • :set nu,显示行号
    • :syntax on,语法高亮
    • :set autoindent,自动缩进
    • :set fileencoding,显示文件编码
    • :set fileencoding=utf-8,以utf-8的编码显示文件(然后w可以保存)

三. vim的神操作

3.1 移动、定位

    • h:光标向左移动
    • j:光标向下移动
    • k:光标向上移动
    • l:光标向右移动
      可以在字母前面加上「数量」就可以移动多行了,比如向上移动 10 行,就是10k
    • w:光标往前移动一个词
    • b:光标向后移动一个词
    • 0:移动光标到当前行首
    • ^:移动光标到当前行的第一个字母位置(注意与 0 的区别)
    • $:移动光标到行尾
    • ):移动光标到下一个句子
    • ( :移动光标到上一个句子
    • {:移动光标到上一段
    • }:移动光标到下一段
    • [n]gg : 光标移动到第 n 行
    • gg: 光标移动到文件首部
    • G:移动到文件尾部

3.2 快速编辑

    • i:在光标处插入(insert首字母小写)
    • I:在行首插入(insert首字母大写)
    • a:在光标处后一个字符插入(append首字母小写)
    • A:在行尾插入(append首字母大写)
    • o:在上一行插入
    • O:在下一行插入
    • s:清除当前字符并进入插入模式
    • cc/S:清除当前行并进入插入模式
    • cw: 清除当前单词并进入插入模式

3.3 复制、黏贴、剪切

    • d[n]w:剪切光标单词及后面单词的内容(共n个单词),dw 是剪切当前单词
    • [n]dd:剪切光标行及后面行的内容(共n行),dd 为剪切当前行
    • D/d$:剪切光标后到行尾的内容
    • d0:删除光标至当前行首
    • dG:删除光标行至文档结尾
    • dgg:删除光标至文档开头
    • yy/Y:复制当前行的内容
    • p:粘贴到光标后
    • P:粘贴到光标前

3.4 撤销、查找、替换

    • u:撤回上次操作
    • /aaa:表示在整篇文档中搜索匹配aaa的字符串, / 表示向下查找
    • ?aaa: 表示在整篇文档中搜索匹配aaa的字符串,?表示向上查找
      其中aaa可以是正规表达式。查找到以后,再输入 n 查找下一个匹配处,输入 N 反方向查找。
    • :%s/old/new:检索第一个“old”字符串并将其替换成 “new”
    • :%s/old/new/g:检索并将所有的 “old” 替换为 “new”
    • :%s/old/new/gc:检索出所有的 “old” 字符串,但在替换成 “new” 前,先询问是否替换

3.5 把vim暂时放置于后台

    • Ctrl+z: 把vim暂时放置于后台
    • fg : 调回之前放置于后台的vim,继续编辑

vim(vi)的常用快捷键的更多相关文章

  1. Linux下VIM配置以及常用快捷键

    一.VIM配置 在目录 /etc/vim下面,有个名为vimrc的文件,这是系统中公共的vim设置文件,对所有用户都有效.而在每个用户的主目录下,都能自己建立私有的设置文件,命名为:“.vimrc”. ...

  2. vi 编辑器常用快捷键

    vi 编辑器 vim 编辑器算是vi的进阶版本 所有的unix like 系统都会内建vi编辑器 vi三种模式分别为: 1.一般模式(默认模式或指令模式) 上下左右方向键 移动光标 pageUp pa ...

  3. Vim编辑器的常用快捷键.

    Linux中的文本操作离不开Vim编辑器的使用. Vim编辑器的使用相对门槛较高.需要挺长一段时间的适应. 总结一些Vim使用过程中常用的命令(这些命令基本上都是在vim的命令模式下使用) 1.跳转到 ...

  4. 编辑器之神vim的一些常用快捷键整理

    yy:复制 光标所在的这一行 4yy:复制 光标所在行开始向下的4行 p:粘贴 dd:剪切(删除) 光标所在的这一行 4dd:剪切(删除) 光标所在行向下的4行 D:从当前的光标开始向后剪切,一直到行 ...

  5. Vim/Vi常用操作(第二版)

    周围同事不是用vim就是Emacs,你要是用一ultraedit,你都不好意思跟人家打招呼;什么插件呀,语法高亮呀,拼写检查呀,能给它开的都给它开着,就是一个字儿:酷. 你说这么牛B一东西,怎么着学会 ...

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

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

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

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

  8. VIM常用快捷键(转载)

    移动光标 h,j,k,l 上,下,左,右 ctrl-e 移动页面 ctrl-f 上翻一页 ctrl-b 下翻一页 ctrl-u 上翻半页 ctrl-d 下翻半页 w 跳到下一个字首,按标点或单词分割 ...

  9. vi/vim 文字处理器常用命令

    目录 vi 与vim vi 的三种模式 vi 光标移动 vi 搜索与替换 vi 删除 vi 复制 vi 粘贴 vi 其他 vi 进入编辑模式 vi 命令行命令 vim 附加功能 vi 与vim vi是 ...

  10. vi常用快捷键

    vi常用快捷键 1)移动光标 h :光标左移一个字符k :光标上移一个字符j :光标下移一个字符l :光标右移一个字符 0 :光标移至行首$ :光标移至行尾 H :光标移至屏幕首行M :光标移至屏幕中 ...

随机推荐

  1. response没有实现跳转,而是提示浏览器下载文件

    问题简述: web项目中,response没能实现重定向跳转网页,而是通知浏览器下载文件. 代码如下: response.getWriter().write("<h1 style='c ...

  2. 基于TextRank算法的文本摘要

    本文介绍TextRank算法及其在多篇单领域文本数据中抽取句子组成摘要中的应用. TextRank 算法是一种用于文本的基于图的排序算法,通过把文本分割成若干组成单元(句子),构建节点连接图,用句子之 ...

  3. 负载均衡服务之HAProxy基础配置(四)

    前文我们聊了haproxy的状态页配置,状态页中显示各参数的含义,以及基于cookie做会话保持的配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12776 ...

  4. 文件读取的时候要留意 -- 序列化serialize()与反序列化unserialize():

    原文:https://blog.csdn.net/little_rabbit_baby/article/details/53840543 序列化serialize()与反序列化unserialize( ...

  5. Task Scheduler Error Message: 80041318

    Using the error lookup tool that comes with VC++ (errlook.exe, or "Error Lookup" on the To ...

  6. [Inno Setup] 退出安装程序的两种方式

    1. 完全静默的退出 procedure ExitProcess(exitCode:integer); external 'ExitProcess@kernel32.dll stdcall'; ... ...

  7. Imagelab-0-QT label显示 opencv 图像

    Imagelab-0-QT label显示 opencv 图像 opencvc++qtimagelab 开始之前 这其实也是opencv 处理图像的系列, 只是想我们在进一步复杂化我们的代码之前, 每 ...

  8. 模块sys,os

    Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持,以后的课程中会深入讲解常用到的各种库,现在,我们先来象征性的学2个简单的. 在Pyt ...

  9. golang 线上项目部署折腾之一

    最近自己使用golang折腾了一点东西,可是需要部署到线上才好玩,那么服务器使用了aws,然后使用了docker和没有使用docker部署了一次.简单记录一下过程 aws服务器 为什么使用aws呢,说 ...

  10. JavaScript实现选择排序

    一.选择排序简介 **冒泡排序.插入排序.选择排序合称为简单排序.**下面是选择排序的思想: 假设有一个数组a,我们想象成有一个班级名叫a班,现在全班随意排成一排,排头的位置是a[0],排尾的位置是a ...