在正式使用Vim之前,先来点开胃菜,学习下Vim中一些常用的命令,有了这些基本命令,才能让我们使用Vim更加得心应手,加快工作的效率~

注意:接下来将要介绍的命令主要是用在Vim的Normal模式下。

一 创建/修改文件

当需要对一个文件进行编辑时,首先这个文件得存在。你可以使用Vim创建或修改文件(假设文件名为hahaya.cc),在终端下执行 Vim hahaya.cc,这条命令会打开hahaya.cc文件,当hahaya.cc这个文件不存在时,Vim会创建这个文件并打开。

二 在Vim中打开/保存/退出/修改文件

(1) :e filename < - > 打开文件filename,注意filename包含文件路径

:e ~/hahaya.cc 打开主目录下的hahaya.cc文件

(2) saveas filename < - > 文件另存为,注意filename包含文件路径

(3) :w < - > 文件保存

(4) :q < - >  不保存退出,回到终端下

(5) :q! < - > 不保存强制退出

(6) :wq < - > 保存退出

(7) :wq!  < - > 强制保存退出

(8) :bn < - > 打开多个文件时,使用该命令切换到下一个文件

(9) :bp < - > 打开多个文件时,使用该命令切换到上一个文件

三 各种插入模式

前面说到过从Normal模式进入Insert模式有很多种方法,下面介绍几种常用的方法

(1) i < - > 在光标前插入,进入到Insert模式

(2) a < - > 在光标后插入,进入Insert模式

(3) o < - > 在当前行后插入一行,进入Insert模式

(4) O < - > 在当前行前插入一行,进入Insert模式

(5) cw < - > change word,替换光标当前所在位置到该单词结尾的字符,其实实际效果是删除,进入Insert模式

四 简单的光标移动

(1) h < - > 将光标向前移动一个字符

(2) j < - > 向下移动一行

(3) k < - > 向上移动一行

(4) l < - > 将光标向后移动一个字符

(5) 0 < - > 数字0,移动到光标所在行的行头

(6) ^ < - > 移动到本行第一个不是blank字符的位置(所谓blank字符就是空格、Tab、换行、回车等)

(7) $ < - > 移动到本行行尾

(8) g_ < - > 移动到本行最后一个不是blank字符的位置

(9) G < - > 移动到本文件的最后一行

(10) NG < - > 移动到本文件的第N行

(11) gg < - > 移动到本文件的第一行

五 拷贝/粘贴

(1) yy < - > 拷贝当前行

(2) Nyy < - > 拷贝从当前行开始的总共N行

(3) p < - > 小写p,粘贴拷贝的内容

(4)ggyG < - > 全选并复制

(5)dG < - > 删除全部

六 删除

(1) dd < - > 删除当前行,并把删除的行存放在剪切板中,所有可以使用p进行粘贴

(2) Ndd < - > 删除当前行开始的总共N行,并把删除的行存放在剪切板中,所有可以使用p进行粘贴

七 撤消

(1) u < - > 撤消上一次操作(vi的与此不同,多次撤销操作使用:数字u,表示要撤销的次数)

(2) Ctrl-r < - > 同时按下Ctrl和r键,对u的撤消

Vim中的命令确实比较多,所以记忆起来十分困难,就算记住了,然后不用,那么一段时间后还是会忘记,所以学习Vim命令最好的方法就是:多练,这样不知不觉中就会将Vim的命令牢牢的记住~

Vim基础操作的更多相关文章

  1. 项目实战12.1—企业级监控工具应用实战-zabbix安装与基础操作

    无监控,不运维.好了,废话不多说,下面都是干货. 警告:流量党勿入,图片太多!!! 项目实战系列,总架构图 http://www.cnblogs.com/along21/p/8000812.html ...

  2. 【Linux 操作系统】Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用

    . : 关机, 如果将Linux默认运行等级设置为0, 系统将无法启动; -- : 多用户模式, 允许使用网络文件系统, 一般不使用图形界面登陆就是这种模式; -- : 多用户图形界面模式, 该模式下 ...

  3. SLAM+语音机器人DIY系列:(一)Linux基础——3.Linux命令行基础操作

    摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以后续的章节中都会使用ROS来组织构建代码:而ROS又是安装在Linux发行版ubuntu系统之上的, ...

  4. Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用

    . : 关机, 如果将Linux默认运行等级设置为0, 系统将无法启动; -- : 多用户模式, 允许使用网络文件系统, 一般不使用图形界面登陆就是这种模式; -- : 多用户图形界面模式, 该模式下 ...

  5. 01 | VIM基础攻略

    启动 vim 后,vim 处于 normal 模式. Step One: "i" -> insert 模式, ESC -> normal 模式: "x&quo ...

  6. Mysql数据库基础操作

    Mysql数据库基础操作 在mysql数据库中开启使用tab键补全功能 1)修改主配置文件/etc/mysql/my.cnf(mysql和mariadb目录有些不同) vim /etc/mysql/m ...

  7. CentOS7安装MongoDB及基础操作

    安装环境说明 系统环境说明 [root@master ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@ma ...

  8. Linux基于Hadoop2.8.0集群安装配置Hive2.1.1及基础操作

    前言 安装Apache Hive前提是要先安装hadoop集群,并且hive只需要在hadoop的namenode节点集群里安装即可,安装前需保证Hadoop已启(动文中用到了hadoop的hdfs命 ...

  9. CentOS7搭建Flume与Kafka整合及基础操作与测试

    前提 已完成Kafka的搭建,具体步骤参照CentOS7搭建Kafka单机环境及基础操作 Flume安装 下载 wget http://mirrors.tuna.tsinghua.edu.cn/apa ...

随机推荐

  1. jquery表格动态增删改及取数据绑定数据完整方案

    一 前言 上一篇Jquery遮罩插件,想罩哪就罩哪! 结尾的预告终于来了. 近期参与了一个针对内部员工个人信息收集的系统,其中有一个需求是在填写各个相关信息时,需要能动态的增加行当时公司有自己的解决方 ...

  2. UML类图关系(泛化 、继承、实现、依赖、关联、聚合、组合)

    UML类图关系(泛化 .继承.实现.依赖.关联.聚合.组合) 继承.实现.依赖.关联.聚合.组合的联系与区别 分别介绍这几种关系: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父 ...

  3. Hadoop之倒排索引

    前言: 从IT跨度到DT,如今的数据每天都在海量的增长.面对如此巨大的数据,如何能让搜索引擎更好的工作呢?本文作为Hadoop系列的第二篇,将介绍分布式情况下搜索引擎的基础实现,即“倒排索引”. 1. ...

  4. Leetcode 144. Binary Tree Preorder Traversal

    参考例子:[8,3,1,6,4,7,10,14,13] 8,3,1 和 6,4 说明从root开始,沿着左臂向下寻找leaf 的过程中应该逐个将node.val push入ans. class Sol ...

  5. cinnamon桌面安装在其他目录下

    cinnamon桌面还不错,不过默认只能安装在/usr目录下 有很多脚本中写死了是/usr目录 编译时如下模块需要打补丁: 1.cinnamon中,需要执行 sed -i 's|usr/share|u ...

  6. C# 调用WebService的3种方式 :直接调用、根据wsdl生成webservice的.cs文件及生成dll调用、动态调用

    1.直接调用 已知webservice路径,则可以直接 添加服务引用--高级--添加web引用 直接输入webservice URL.这个比较常见也很简单 即有完整的webservice文件目录如下图 ...

  7. golang笔记——流程控制

    条件语句 if ... else if ... else 语句,如: { fmt.Println(">100") } < num { fmt.Println(" ...

  8. hashicorp/consul

    https://github.com/hashicorp/consul/tree/master/vendor/github.com/boltdb/bolt

  9. druid 配置

    连接池配置,以及相关配置 <bean id="logFilter" class="com.alibaba.druid.filter.logging.Slf4jLog ...

  10. 升级到 PHP-7 遇到的坑 及 经验分享

    注意:上面这张图是QQ群网友分享的,图中提到的“被移除的函数”,call_user_func 和 call_user_func_array 在 PHP-7.0 的正式版中是可用的,也许是当时的 测试版 ...