参考书籍《Linux 从入门到精通》第二版(刘忆智 等编著)

Vim编辑器

背景:Vim的设计哲学就是让使用者能够在主键盘区完成所有工作。

vim是vi的增强版本,vim分为插入和命令两种模式

插入模式下可以输入字符

命令模式下可执行除了输入字符之外的所有操作,包括保存、搜索、移动光标等。

1.编辑和保存

启动vim时自动处于命令模式

编辑一个文件:

  可以在命令行下输入vim file(如果file不存在,那么vim会自动新建一个名为file的文件),启动vim时自动处于命令模式,按i键可以进入插入模式(防坑:按键之前请确保当前输入法是英文), 此命令用于在当前光标所在处插入字符。vim会在左下角提示用户此时所处的模式。

示例:

vim test.py进入文件内,此时为命令模式

输入i后,进入插入模式:

输入想要输入的内容后,按Esc键回到命令模式,此时左下角的“-- 插入 --”提示消失,告诉用户正处于命令模式下。

保存文件:

下一步,需要保存这个文件。需要使用 “:” 命令在底部打开一个命令行,此时光标闪烁,等待用户输入命令

:q     简单退出,如果有修改的话,vim会拒绝退出并在底部显示提示信息

:q!    强制退出

:w    保存不退出

:wq  保存并退出

:wq  newfilename  保存退出并另存为新文件名,如果newfilename已存在,可加 ! 强制覆盖。

2.搜索

/string   向前查找(从光标开始的地方“朝向文件尾”)

?string   向后查找(从光标开始的地方“朝向文件头”)

这里的“前”指的是“朝向文件尾”,“后”指的是朝向文件头,跟常见理解的意义不太一样,可以稍稍留意下,通常常用的也就是/string。那么查找到字符串之后,想跳转到下一个出现string的位置如何是好呢。

在首次回车查找之后,按下“n”跳转到下一个出现string的地方,按下“N”跳转到上一个出现string的地方。示例:

3.替换

整体格式 :{作用范围}s/{目标}/{替换成}/{替换标志}

先看一个示例,稍后一一来解释

示例::%s/prints/print/g

回车之后显示如图,所有prints已经被替换成了print

3.1 首先,作用范围

  1,4表示从第1行到第4行

  n,$s表示从第n行到最后一行

  1,$s表示从第一行到最后一行,也可用%s来表示

  s的话就表示当前行

3.2 /{目标}/{替换成}

  简单来说就是想要把{目标}替换成{替换成},数入想要的内容即可

3.3 {替换标志}

  c 每次替换前询问

  e 不显示错误信息

  g 替换一行中所有的匹配项(此选项通常需要使用)

  i 不区分大小写

4.常用配置

vim的配置文件叫vimrc

linux下通常位置etc/vim目录下,修改此配置文件需要root权限,如果没有特殊需要的话,不要那么做。用户可以在自己的主目录下新建一个名为“.vimrc”的文件,然后把配置信息写在里面。

windows电脑下如果安装也会在目录中有一个vimrc文件。如果有一些个性化的配置,可以在此文件更改

比如说自动缩进:set autoindent

5.常用命令表

vim学习小结的更多相关文章

  1. Vim 学习指南

    作者:耀耀 出处:http://www.linuxeden.com/html/news/20130820/142667.html Vim 学习指南 来源:开源中国社区 作者:耀耀 关注我们:   你想 ...

  2. flex学习小结

    接触到flex一个多月了,今天做一个学习小结.如果有知识错误或者意见不同的地方.欢迎交流指教. 画外音:先说一下,我是怎么接触到flex布局的.对于正在学习的童鞋们,我建议大家没事可以逛逛网站,看看人 ...

  3. Python 学习小结

    python 学习小结 python 简明教程 1.python 文件 #!/etc/bin/python #coding=utf-8 2.main()函数 if __name__ == '__mai ...

  4. react学习小结(生命周期- 实例化时期 - 存在期- 销毁时期)

    react学习小结   本文是我学习react的阶段性小结,如果看官你是react资深玩家,那么还请就此打住移步他处,如果你想给一些建议和指导,那么还请轻拍~ 目前团队内对react的使用非常普遍,之 ...

  5. objective-c基础教程——学习小结

    objective-c基础教程——学习小结   提纲: 简介 与C语言相比要注意的地方 objective-c高级特性 开发工具介绍(cocoa 工具包的功能,框架,源文件组织:XCode使用介绍) ...

  6. pthread多线程编程的学习小结

    pthread多线程编程的学习小结  pthread 同步3种方法: 1 mutex 2 条件变量 3 读写锁:支持多个线程同时读,或者一个线程写     程序员必上的开发者服务平台 —— DevSt ...

  7. ExtJs学习笔记之学习小结LoginDemo

    ExtJs学习小结LoginDemo 1.示例:(登录界面) <!DOCTYPE html> <html> <head> <meta charset=&quo ...

  8. Linux学习系列之Linux入门(二)Vim学习

    第二篇 Vim学习 主要内容: 基本命令: 插件扩展: 参考资料: vim是一个命令控制的文本编辑器,可以完成几乎我们想要做的所有工作,除了Emacs几乎没有其他的工具能和它匹敌.官方网站是:http ...

  9. Vi/VIM键盘图, Vi/vim学习图

    Vi/vim学习图 引用: Vi键盘图片可视化教程 http://www.cnblogs.com/me115/archive/2010/11/16/1878295.html 网上的文章易流失.感谢分享 ...

  10. 点滴的积累---J2SE学习小结

    点滴的积累---J2SE学习小结 什么是J2SE J2SE就是Java2的标准版,主要用于桌面应用软件的编程:包括那些构成Java语言核心的类.比方:数据库连接.接口定义.输入/输出.网络编程. 学习 ...

随机推荐

  1. MySQL8.0性能优化(实践)

    一台几年前的旧笔记本电脑的虚拟系统运行环境,作为本次实践的运行工具,仅供参考. 案例环境:Linux.Docker.MySQLCommunity8.0.31.InnoDB. 过早的MySQL版本不一定 ...

  2. 如何通过Zabbix Docker配置HTTPS访问系统?

    概述 前面文章曾介绍过如果使用docker-compose快速部署一个Zabbix系统,但是部署的Zabbix系统是使用http协议进行访问的.有时候为了保证安全.我们需要配置使用https协议进行访 ...

  3. 使用VMware Converter Standalone P2V(物理机转换虚拟机)

    使用VMware Converter Standalone P2V(物理机转换虚拟机) 环境说明: 1.P2V软件:VMware-converter-en-6.3.0-20575345  下载地址:v ...

  4. 【CTO变形记】驱动力的选择

    前言:每个人做事,都有着各种动机在里面,有时候看似不可理解的行为或者选择,初一看,可能是'认知',其实深层次实际是内在驱动力使然.例如,当一个人找我们问各种问题的时候,我们往往会先问'你的意图'是什么 ...

  5. sqlmap 简单使用

    sqlmap 简单使用 环境:phpstudy:MySQL5.4.7 介绍 sqlmap是一个开源的渗透测试工具,它可以自动化检测和利用SQL注入缺陷以及接管数据库服务器的过程.它有一个强大的检测引擎 ...

  6. JZOJ 2114. 【GDKOI2011】反恐任务

    \(\text{Problem}\) 给定一张无向图,\(q\) 次询问,删去一个点或一条相邻两点间的边,问两点是否连通 询问独立 \(\text{Solution}\) 明显的用圆方树把图变成树 然 ...

  7. 「CEOI2019」魔法树

    \(\text{Solution}\) 设 \(f_{x,i}\) 表示以 \(x\) 为根的子树 \(i\) 天后的最大收益 那么 \(f_{x,i} = \max(f_{x,i-1},w_x [d ...

  8. Hexo系列(三):Hexo主题

    作者:独笔孤行 官网:​​ ​http://anyamaze.com​​ 公众号:云实战 Hexo支持更换主题,支持多种主题模式,也支持自定义主题. Hexo主题地址1:https://hexo.io ...

  9. EMBARK研究: 依那西普治疗早期nr-axSpA达48周的临床和MRI疗效

    关键词: 放射学阴性中轴型SpA; TNF拮抗剂; 磁共振影像 EMBARK研究48周结果: 依那西普治疗早期放射学阴性中轴型SpA患者的临床与MRI疗效 电邮发布日期:2016年1月25日 文献: ...

  10. 记一次 .NET某家装ERP系统 内存暴涨分析

    一:背景 1. 讲故事 前段时间微信上有一位老朋友找到我,说他的程序跑着跑着内存会突然爆高,有时候会下去,有什么会下不去,怀疑是不是某些情况下存在内存泄露,让我帮忙分析一下,其实内存泄露方面的问题还是 ...