基本功

Vim有三种模式:

  1. 导航(navigation)模式。 这时候,字母就是上下左右键。
  2. 输入模式。这时候,你按字母键,才会输入字母。
  3. 命令模式。需要先输入":" 冒号,才会进入。例如,你输入 :ls , 就相当于运行了 ls 命令。

三个模式的切换

默认的就是导航模式。 你在其他模式下,按"ESC"就回到了导航模式。

在导航模式下,输入 aio等,就可以进入到输入模式。

在导航模式下,输入 : 就可以进入到命令模式。

所以,在用Vim的时候,大家用ESC 会用的非常多。

(顺带提一句,用Vim的时候, 盲打是基础,所以,j,f, 左右ctrl, 都是你长在手上的眼睛。 务必熟悉它们的位置。)

上下左右

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

用这四个键的原因是: 所有人的右手食指都应该放在 j 上。 j 和 f 是最容易摸到的两个键了。所以,jhkl 就理所当然的成为 上下左右了。

下一个词,上一个词

  • w: 下一个词。 (word)
  • b: 上一个词。 (backword)

所以,大家要记住,按一下w 相当于按多下l.

向下一屏,向上一屏。

ctrl + f: 向下一屏(f = forward)
ctrl + b: 向上一屏(b = backward)

选择多行

shift + v, 然后上下移动。

搜索

搜索 some_thing: /some_thing
继续搜索下一个: n
搜索前一个: shift + n

在当前整个文件中,替换(也叫全局替换)

:%s/原来的字符串/新字符串/

(如果某个字符串在某一行出现了多次,希望对它所有出现的次数都替换的话,就在末尾加个g ,像这样: :%s/原来的字符串/新字符串/g )

局部替换

  1. 先 shift + v 选中若干行
  2. :s/原来的/新的字符串

代码补全

  • ctrl + n : 下一个候选
  • ctrl + p : 上一个候选

作者: 申思维 
链接:http://www.imooc.com/article/13269
来源:慕课网
vi常用命令

1进入输入模式

i:在当前光标所在处钱插入文本

I:将光标移动到当前行行首,并在行首插入文本

a:在当前光标所在处之后插入文本

A:将光标移动到当前行的行末,并在行末之后插入文本

o:在光标所在行的下面新插入一行,并将光标移动到新行的行首插入文本

O:在光标所在行的上面新插入一行,并将光标移动到新行的行首插入文本

2光标移动

h:向左移动一格

j:向下移动一格

k:向上移动一格

l:向右移动一格

0或^:移动光标到当前行的行首

$:移动光标倒当前行行末

w:移动光标倒下个字开头

e:移动光标倒下个字字尾

b:移动光标回到上个字的开头

nl:在当前行中向右移动n个字符

ctrl+b:屏幕向上翻一页

ctrl+f:屏幕向下翻一页

ctrl+u:屏幕向上翻半页

ctrl+d:屏幕向下翻半页

1G:移动光标到文件第一行

G:移动光标到文件最后一行

3文本编辑

r:替换光标所在处的字符

R:替换光标所到之处的字符,知道按下esc为止

J:把光标所处行的下一行内容接到当前行的行末

x:删除光标所在位置的字符

nx:删除光标所在位置之开始的n个字符

X:删除光标所在位置的前一个字符

nX:删除光标所在位置的前n个字符

dw:删除光标所处位置的单词

ndw:删除光标所处位置的开始的n个单词

db:删除光标所在位置之前的一个单词

ndb:删除光标所在位置之前的n个单词

dd:删除光标所在行

ndd:删除光标所在行开始的n行

d0:删除光标所在行的第一个字符到光标所在位置前一个字符之间的内容

d$:删除光标所在位置到光标所在行的最后一个字符之间的内容

d1G:删除文件第一行到光标所在行之间的内容

dG:删除由光标所在行到文件最后一行之间的内容

u:撤销更改的内容

ctrl+u:撤销在输入模式下输入的内容

4复制粘贴

yw:复制光标所在位置倒单词末尾之间的字符

nyw:复制光标所在位置之后的n个单词

yy:复制光标所在行

nyy:复制由光标所在行开始的n行

p:将复制内容粘贴到光标所在位置

5查找替换

/str:从光标位置开始往文件末尾查找str,n下一个,N上一个

?str:从光标位置开始往文件开头查找str,n下一个,N上一个

:s/p1/p2/g:将光标所在行中所有p1用p2替换

:n1,n2s/p1/p2/g:将n1-n2行中所有p1用p2替换

:g/p1/s/p2/g:将文件中所有p1用p2替换

6末行模式命令

w:保存当前文件

w!:强制保存

w file:将当前编辑内容写到文件file中

q:退出vi

q!:不保存退出vi

e file:打开并编辑文件file,文件不存在则创建

r file:把文件file的内容添加到当前文件

n:移动光标到第n行

!command:执行shell命令command

r!command:将命令command的输出结果添加到当前行

vim学习记录(转)的更多相关文章

  1. vim 学习记录

    VIM中PHP代码使用tab键自动完成 更新于 2013-01-18 05:47:55UEANER 目录结构 $ tree -C ~/.vim | grep -v ".cnx" | ...

  2. vim 学习记录2

    当前行进行替换:s/XXX/YYY/gXXX是需要替换的字符串,YYY是替换后的字符串. 全局替换:% s/XXX/YYY/g. 对指定部分进行替换用V进入visual模式,再进行:s/XXX/YYY ...

  3. 在Ubuntu Server下搭建LAMP环境学习记录

    更新于2015/6/16日,因图片地址失效,请在此地址查看:http://note.youdao.com/share/?id=1c249ae6dc6150cbf692adec67b23a33& ...

  4. vim学习、各类插件配置与安装

    vim学习.各类插件配置与安装 vim 插件 配置 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶书籍<vim实用技巧>.注:进阶书籍可以在 ...

  5. vim学习、各类插件配置与安装【转】

    转自:https://www.cnblogs.com/forest-wow/p/6916531.html 1. vim学习 vim基础学习:根据网上流行基础文章<简明Vim练级攻略>,进阶 ...

  6. ansible 学习记录

    Ansible 的重新学习记录 这里我的Ansible的宿主机是centos 7.2系统,这里我通过yum 安装Ansible 1.配置epel源 sudo yum -y install epel-r ...

  7. 菜鸟vimer成长记——第0章、我眼中的vim学习

    这是一系统总结vim的学习文章,记录我自己学习vim的过程和感悟.与此同时也想分享出来给大家,欢迎大家互相讨论和学习. 在这里假设你们对vim已经有了一些基本的认识或者说已经使用过几个月的vim.该系 ...

  8. SVN教程 -- 基于自己学习记录

    SVN教程 -- 基于自己学习记录 1. 概述 a. 什么是SVN? Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统.相较于 git ,svn 是集中式版本控 ...

  9. Git 教程 -- 基于自己学习记录

    Git 教程 -- 基于自己学习记录 1. 引言 由于学校布置了一项熟悉 git 和 svn 操作的实验,所以自己重新温习了下 git,记录过程在这. 2. 注册登录 GitHub. 3. 选择一个仓 ...

随机推荐

  1. 数据库——初始mysql语句(2)

    sql语句 #1. 操作文件夹(库) 增:create database db1 charset utf8; 查:show create database db1; show databases; 改 ...

  2. psql 工具详细使用介绍

    psql 介绍 psql 是 PostgreSQL 中的一个命令行交互式客户端工具, 它允许你交互地键入 SQL 命令,然后把它们发送给 PostgreSQL 服务器,再显示 SQL 或命令的结果. ...

  3. Struts2请求流程

    1. 一个请求在Struts2框架中的处理步骤: a) 客户端初始化一个指向Servlet容器的请求: b) 根据Web.xml配置,请求首先经过ActionContextCleanUp过滤器,其为可 ...

  4. Java之implements

    转自:https://blog.csdn.net/android_lover2014/article/details/52176814 JAVA中extends 与implements有啥区别?1. ...

  5. 【bzoj3435】[Wc2014]紫荆花之恋 替罪点分树套SBT

    题目描述 强强和萌萌是一对好朋友.有一天他们在外面闲逛,突然看到前方有一棵紫荆树.这已经是紫荆花飞舞的季节了,无数的花瓣以肉眼可见的速度从紫荆树上长了出来.仔细看看的话,这个大树实际上是一个带权树.每 ...

  6. 转:mysql 索引

    转:mysql 索引 文章归属:http://feiyan.info/16.html,我想自己去写了,但是发现此君总结的非常详细.直接搬过来了 关于MySQL索引的好处,如果正确合理设计并且使用索引的 ...

  7. Javascript&Ajax-深入浅出JSONP--解决ajax跨域问题

    Javascript&Ajax-深入浅出JSONP--解决ajax跨域问题 原理讲解: 链接地址:http://www.cnblogs.com/chopper/archive/2012/03/ ...

  8. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---17

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  9. 【转载】Word2010编号列表&多级列表

    1.引用场景         对于一份标准.漂亮的word文档,编号列表和多级列表的设置时必不可少的,正因为有它们,文档看起来才更专业,使用起来才更加的方便.如下面截图一般,这是十分常见的多级列表设置 ...

  10. (2)WCF客户端调用

    一.visual studion引用生成代理 引入服务端发布元数据的地址(并不是服务的地址) 用服务端是控制台程序 例子1 服务端的配置 <system.serviceModel> < ...