vim是由vi发展而来,具有语法高亮显示,多视图编辑,代码折叠,支持插件等功能,vim成为了linux发行版本的标配.

1. vim工作模式

    1. 普通模式:实现基本的光标移动和大量的快捷操作
2. 插入模式:实现文本的基本编辑功能
3. 命令模式:输入特定的指令完成特定的功能
默认进入的是普通模式,输入a,A,i,I,o,O都可以进入插入模式,按下esc返回普通模式,在普通模式下按下:进入命令行模式.

2. vim光标操作

所有的快捷方式均在普通模式下使用

    h    光标向左移动一行    <--
j 光标向下移动一行 down
k 光标向上移动一行 up
l 光标向右移动一行 -->
gg 移动光标至首行行首
G 移动光标到末尾行首
nG 移动光标至第n行行首
^ 光标移到当前行的首字符
$ 光标移到当前行的尾字符
fx 光标移到下一个x字符处
Fx 光标移到上一个x字符处
w 光标向右移动一个单词
nw 光标向右移动n个单词
b 光标向左移动一个单词
nb 光标向左移动n个单词

3. vim编辑文档

    1. 进入插入模式进行操作
2. 普通模式快捷操作
x 删除光标当前字符
dd 删除一行
nd 删除n行
d$ 删除光标至结尾的内容
J 删除换行符,合并为一行
u 撤销上一步操作
rx 将光标当前字符替换为x
yy 复制当前行
p 粘贴至当前杭行后
P 粘贴至当前行前

4. vim查找和替换

    1. 输入 /关键词  实现自上而下的查找功能,n跳到下一个,N调到上一个
2.输入 ?关键字 同上 在普通模式输入:进入命令行模式完成替换
:s/root/admin 将光标当前行第一个出现的root替换成admin
:s/root/admin/g 将光标当前行的所有root替换为admin
:3,5 s/sbin/bin/g 将第三行到第五行之间所有的sbin替换为bin
:% s/sbin/bin/g 将所有行的sbin替换成bin

5. vim保存和退出

    :q!    不保存退出
:wq 保存并退出
:x 保存并退出
:w 保存
:w b.txt 另存为b.txt
在普通模式输入ZZ实现保存并退出

6. vim小技巧

    1. 显示行号
:set number 或者 :set nu
2. 忽略大小写
:set ignorecase
3. 多窗口编辑
:split 打开一个新的窗口
:close 关闭多窗口
:split test.txt 打开的另外一个窗口为test.txt文件
4. 执行shell命令
:!ls 查看当前目录下的内容,执行完之后按 enter返回vim编辑器
5. 自动补齐
ctrl+n 自动补齐以前输过的内容

linux学习系列二的更多相关文章

  1. Linux学习系列八:操作网口

    一些相对高性能的单片机会带以太网接口,网口在MCU里算是比较复杂的外设了,因为它涉及到网络协议栈,通常情况下网络协议栈会运行在一个RTOS中,所以对普通单片机开发者来说网口使用起来相对难度较大一些.在 ...

  2. MyBatis学习系列二——增删改查

    目录 MyBatis学习系列一之环境搭建 MyBatis学习系列二——增删改查 MyBatis学习系列三——结合Spring 数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改, ...

  3. Maven学习系列二(1-5)

    Maven学习系列二(1-5) 本文转自 QuantSeven 博客,讲解精炼易懂,适合入门,链接及截图如下 http://www.cnblogs.com/quanyongan/category/47 ...

  4. scrapy爬虫学习系列二:scrapy简单爬虫样例学习

    系列文章列表: scrapy爬虫学习系列一:scrapy爬虫环境的准备:      http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_python_00 ...

  5. DocX开源WORD操作组件的学习系列二

    DocX学习系列 DocX开源WORD操作组件的学习系列一 : http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_sharp_001_docx1.htm ...

  6. [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参

    [转]ASP.NET MVC学习系列(二)-WebAPI请求 传参 本文转自:http://www.cnblogs.com/babycool/p/3922738.html ASP.NET MVC学习系 ...

  7. RabbitMQ学习系列二-C#代码发送消息

    RabbitMQ学习系列二:.net 环境下 C#代码使用 RabbitMQ 消息队列 http://www.80iter.com/blog/1437455520862503 上一篇已经讲了Rabbi ...

  8. Linux学习之二-Linux系统的目录结构

    Linux学习之二-Linux系统的目录结构 在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目 ...

  9. Linux学习笔记(二) 文件管理

    了解 Linux 系统基本的文件管理命令可以帮助我们更好的使用 Linux 系统,以下介绍几个常用的文件管理命令 1.pwd pwd 是 Print Working Directory 的简写,用于显 ...

随机推荐

  1. angularjs中的路由介绍详解 ui-route

    这篇文章主要介绍了Angularjs中UI Router全攻略,涉及到angularjs ui router的基本用法,需要的朋友参考下吧   首先给大家介绍angular-ui-router的基本用 ...

  2. 170621 - Android ADB forward端口映射和reverse反向代理 使用笔记

    个人理解 forward:端口映射 将本地PC指定Port端口,映射到设备手机指定Port端口上.以便解决 PC -> Phone 的访问问题PC 作为Client客户端 可以任意访问 Phon ...

  3. SpringBoot项目的云服务器部署

    1.场景还原 springboot配置相当简单,人人皆知.怎么把springboot工程部署到云服务器上呢?可能有人会说,博主你前篇不是讲了java工程的云部署把:但是我想澄清一点的是,我前篇的工程都 ...

  4. Nginx 配置指令的执行顺序

    在一个 location 中使用 content 阶段指令时,通常情况下就是对应的 Nginx 模块注册该 location 中的“内容处理程序”.那么当一个 location 中未使用任何 cont ...

  5. php跨域共享session

    . $gb_DBHOSTname = "127.0.0.1"; //主机的名称或是IP地址 02 $gb_DBname = "dbname"; //数据库名称 ...

  6. Live555 中的客户端openRTSP 保存H264文件

    http://amitapba.blog.163.com/blog/static/20361020720140189239762/ http://amitapba.blog.163.com/blog/ ...

  7. hihoCoder#1037 : 数字三角形(DP)

    [题目链接]:click here~~ 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 问题描写叙述 小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他 ...

  8. Django模板系统(非常详细)(后台数据如何展示在前台)

    前面的章节我们看到如何在视图中返回HTML,但是HTML是硬编码在Python代码中的这会导致几个问题:1,显然,任何页面的改动会牵扯到Python代码的改动网站的设计改动会比Python代码改动更频 ...

  9. phpcms的基础知识和配置

    一.设置界面 1.站点设置:相当于服务器上的站点 (1)站点修改:“关键词”和“描述”的修改,便于网络优化和搜索引擎对本网站的搜索. (2)点击站点后边的修改,模板的修改,引用自己模板 2.基本设置: ...

  10. Delphi Property详解

    http://anony3721.blog.163.com/blog/static/51197420107105132120/?ignoreua Property Keyword Defines co ...