配置文件设置

  • set number (设置行号)
  • set nocompatible (设置不兼容vi模式,不设置会导致许多vim特性被禁用)
  • set clipboard=unnamed (设置普通的复制粘贴的内容和vim复制的内容相互使用)

打开、编辑,查找文件

  • vim + 任意文件名,如vim file.txt, 直接编辑文件, 不存在则创建文件
  • 已经打开了vim的情况,使用:edit + 文件名编辑其他文件, :edit file.txt
  • :edit *.txt<tab> 查找当前目录以txt结尾的文件,使用tab补全提示,左右切换选择文件
  • :edit **/*.txt<tab> 查找当前项目 (多个目录)的所有带txt后缀的文件
  • :edit ./ 列出当前目录所有的文件,edit后传目录名参数
  • :find *.txt 同样是查找以txt结尾的文件

保存、退出

  • :w (保存文件)
  • :w file.txt (vim直接进入的终端,新建的文件保存,给出文件名)
  • :wq (保存并退出vim)
  • :q! (不保存强行退出)

移动命令

  • h (左)
  • j (下)
  • k (上)
  • l (右)

复制、粘贴、剪切/删除、撤销、取消撤销

  • y (复制)

    • yw (向右复制一个单词)
    • yb (向左复制一个单词,不包含自身)
    • vy (复制当前游标对应的字母)
    • y$ (复制当前字符到行尾)
    • y^ (复制当前字符到行首 )
    • yG (从当前位置复制到文件结尾)
    • yf+(任意字符), (从当前字符复制到任意字符)
    • yy (复制当前一整行)
  • p (粘贴)
    • p (粘贴到游标所在行的下方)
    • shift + p 或者叫大写的P (粘贴到游标所在行的上方)
  • d (剪切/删除)
    • vd/x (删除当前游标所在的字符)
    • dw (删除游标右边的单词)
    • db (删除游标左边的单词)
    • d$ (删除从当前游标到行尾)
    • d^ (删除当前游标到行首)
    • dG (删除从当前行到文件结尾)
    • df+(任意字符) 或 vf+(任意字符)+d (删除从当前字符到任意字符)
    • diw/daw (游标在单词任意位置时,可以删除完整单词)
    • dd (删除当前一整行)
    • d操作后,按p,就是剪切
  • u (撤销)
    • u (相当于ctrl + z)
    • ctrl + r (取消撤销,相当于ctrl + y)

选中

  • v (选中当前游标的字符)
  • ctrl + v (选中多列/垂直选取)
  • shift + v (选中多行/水平选取)
  • viw (选中当前游标位置的整个单词)
  • viw + d / y (选中之后可以删除、复制)

跳转

  • w (向右跳转一个单词)
  • b (向左跳转一个单词)
  • ^ (跳到行首的非空字符)
  • 0 (跳到行首的第一个字符)
  • $ (跳到行尾)
  • gg (跳到文件最顶部)
  • shift + g 或者叫 G (跳到文件最底部),引申的命令:ggvG (全选)-解释:选中最顶部到最底部,即全选
  • nG (n表示行号,例:16G,表示跳到16行)
  • 50% (跳到文件的中间位置)
  • n% (跳到文件的对应的比例位置)
  • ctrl + f (向下翻页)
  • ctrl + b (向上翻页)
  • ctrl + d (向下翻半页)
  • ctrl + u (向上翻半页)

行内搜索

  • f + (任意字符), 向右搜索,(游标会跳到搜索到的第一个字符)
  • shift + f + (任意字符), 向左搜索,(游标会跳到搜索到的第一个字符)
  • f + (任意字符) + ; (;表示在同一行向后重复搜索匹配的字符)
  • f + (任意字符) + , (,表示在同一行向前重复搜索匹配的字符)

换行

  • o (向下换行)
  • shift + o 或者叫O (向上换行)

插入模式

  • i (光标在游标字符的前面)
  • a (光标在游标字符的后面)

大小写转换

  • gU + 任何位置,如:$、w、G、f + 任何字符,当前选中的单词转换为大写
  • gu + 任何位置,如:$、w、G、f + 任何字符,当前选中的单词转换为小写

文件内搜索

  • / + 任何字符, 从前往后搜索, (游标会停留在第一个匹配的字符,按n匹配下一个,shift + n 匹配上一个)
  • ? + 任何字符, 从后往前搜索, (游标会停留在第一个匹配的字符,按n匹配下一个,shift + n 匹配上一个)
  • / 和 ? 两者是相反的操作

括号匹配

  • % (当有多对括号时,会跳到对应的左括号/右括号, 适用于:(), [], {}, <>)

综合应用

  • 如v + f + (任意字符) + d / y:表示先选中当前字符,再通过f + 搜索任意字符, 此时,游标会跳到匹配的字符, 按d删除,或按y复制
  • v + i + ( 会选中小括号的内容,右括号也可以
  • v + i + [ 会选中中括号的内容,右括号也可以
  • v + i + { 会选中花括号的内容,右括号也可以
  • di( 删除括号中的内容, 右括号也可以
  • da( 删除选中的内容并且包括括号本身, 右括号也可以

退出插入模式

  • ESC

Vim基础用法,最常用、最实用的命令介绍(保姆级教程)的更多相关文章

  1. Linux运维常用的几个命令介绍【转】

    Linux运维常用的几个命令介绍 1. 查看系统内核版本​ [root@funsion geekxa]# cat /etc/issue CentOS release 6.5 (Final) Kerne ...

  2. Go语言基础二:常用的Go工具命令

    常用的Go工具命令 Go附带了一下有用的命令,这些命令可以简化开发的过程.命令通常包含的IDE中,从而使工具在整个开发环境中保持一致. go run 命令 go run命令实在开发过程中执行的最常见的 ...

  3. Vim使用技巧:常用光标跳转命令

    Vim中的命令多如牛毛,按需学习才是唯一出路.这里总结了几个常用的光标跳转命令. 基本移动: h(往左) j(往下) k(往上) l(小写字母l,往右) 行间移动: 快速跳至文件末行:G(大写字母G) ...

  4. Vim 实用技术,第 1 部分: 实用技巧(转)

    原文链接:http://blog.jobbole.com/20604/ 0. Vim 简介 作为开源世界最重要的编辑器之一(另一个是 Emacs),Vim 以其强大的功能和可定制能力被众多开发者所喜爱 ...

  5. Python3.x:bs4解析html基础用法

    Python3.x:bs4解析html基础用法 代码: import urllib.request from bs4 import BeautifulSoup import re url = r'ht ...

  6. PropertyGrid控件由浅入深(二):基础用法

    目录 PropertyGrid控件由浅入深(一):文章大纲 PropertyGrid控件由浅入深(二):基础用法 控件的外观构成 控件的外观构成如下图所示: PropertyGrid控件包含以下几个要 ...

  7. Smarty基础用法

    一.Smarty基础用法: 1.基础用法如下 include './smarty/Smarty.class.php';//引入smarty类 $smarty = new Smarty();//实例化s ...

  8. 前端自动化测试神器-Katalon的基础用法

    前言 最近由于在工作中需要通过Web端的功能进行一次大批量的操作,数据量大概在5000左右,如果手动处理, 完成一条数据的操作用时在20秒左右的话,大概需要4-5个人/天的工作量(假设一天8小时的工作 ...

  9. Linux基础 - 系统优化及常用命令

    目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...

随机推荐

  1. unity---判断物体碰撞的对象

    脚本效果 trrn对象为地面,排除这个选项

  2. 给小白的 PostgreSQL 容器化部署教程(上)

    作者:王志斌 编辑:钟华龙 本文来自社区小伙伴 王志斌 的投稿.从小白的角度,带你一步步实现将 RadonDB PostgreSQL 集群部署到 Kubernetes 上.文章分为上下两部分,第一部分 ...

  3. 以字节跳动内部 Data Catalog 架构升级为例聊业务系统的性能优化

    背景 字节跳动 Data Catalog 产品早期,是基于 LinkedIn Wherehows 进行二次改造,产品早期只支持 Hive 一种数据源.后续为了支持业务发展,做了很多修修补补的工作,系统 ...

  4. 【lora无线数传通信模块】亿佰特E22串口模块用于物联网地震预警传感通信方案

    物联网地震预警项目介绍: 地震,俗称地动.它像平常的刮风下雨一样,是一种常见的自然现象,是地壳运动的一种表现,即地球内部缓慢积累的能量突然释放而引起的地球表层的振动.据统计,5级以上地震就能够造成破坏 ...

  5. Kubernetes将弃用Docker!与 containerd容器引擎

    时间戳:2022-06-07 20:32:19 星期二 撰写文档参考:(阿良-腾讯课堂)Kubernetes将弃用Docker 参考博客k8s入坑之路(3)containerd容器 container ...

  6. SRE,了解一下?35+岁程序员新选择

    摘要:随着云业务的发展,今后会有越来越多的工程师深入到SRE领域. 本文分享自华为云社区<浅谈SRE角色认知>,作者: SRE确定性运维. 一.什么是SRE? SRE(Site Relia ...

  7. LVGL库入门教程04-样式

    LVGL样式 LVGL样式概述 创建样式 在 LVGL 中,样式都是以对象的方式存在,一个对象可以描述一种样式.每个控件都可以独立添加样式,创建的样式之间互不影响. 可以使用 lv_style_t 类 ...

  8. 安装ImageMagick7.1库以及php的Imagick扩展

    由于ImageMagick7以下不支持heic等图片格式,所以重新安装了ImageMagick7.1版本支持heic格式,并写此文章记录一下. 如果安装过程中遇到一些未知的错误,https://ima ...

  9. hadoop MapReduce运营商案例关于用户基站停留数据统计

    注 如果需要文件和代码的话可评论区留言邮箱,我给你发源代码 本文来自博客园,作者:Arway,转载请注明原文链接:https://www.cnblogs.com/cenjw/p/hadoop-mapR ...

  10. Moriis神级遍历!

    Moriis 遍历 Morris 遍历是二叉树遍历的一种方式,传统的递归和非递归遍历的时间复杂的都是O(N),空间复杂度都是O(h)(h为树的高度),而 Morris 遍历可以做到时间复杂的依然为 O ...