本篇介绍vim的基础操作,各种编辑模式的切换,光标的移动,删除,撤销/重做,保存,查找等基础命令:

基础操作

编辑文件

vim  [options] [file ...]

模式

打开文件后进入vim的普通模式,可以用各种命令操作文本

按下字母i,进入Insert模式,此模式下所有键盘按键都为普通字符,插入到文本当中。按ESC退出,进入普通模式

按下字母v,进入Visual模式,此模式下可以选择文本,然后进行命令操作。按ESC退出,进入普通模式

按下字母R,进入修改模式,此模式下可以修改光标所在位置字符

进入Insert模式的几种不同方式

i ---- 在光标所在位置插入

a --- 在光标后插入

I --- 在当前行开头插入

A --- 在当前末尾插入

o ---- 在当前行的下一行插入

O --- 在当前行的上一行插入

s ---- 删除当前字符,并在当前字符处插入

S ---- 删除当前行插入

c[光标移动操作命令]  ----  删除到移动光标操作命令后的位置,并进入插入状态

光标移动(Noraml model)

h --> 左移光标

j  -->下移动光标

k --> 上移光标

l  --> 右移光标

w -->光标移动到下一个单词的开头

e --> 光标移动到下个单词的结尾

0 --> 光标移动到本行的开头

$ --> 光标移动到本行的结尾

b --> 光标移动到前一个单词的开头,假如光标所不在当前单词的开头,光标移动该单词的开头

gg --> 移动光标到文件的开头

G ----- 移动光标到文件的结尾

[number]g ---移动光标到[number]所指定行的开头

[number]% --- 移动光标到百分之[number]行的开头

+/-  --- 移动光标到后一行/前一行的开头

删除操作

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

dw ---- 删除光标所在单词,如果光标在单词中间,则删除当前位置到单词结尾

d0 ---- 删除光标所在位置到本行开斗

d$ ---- 删除光标所在位置到本行结尾

dd ---- 删除本行

撤销/重做

u ---- 撤销前一次 操作/undo

U ----  撤销本行到初始状态

CTRL-r 撤销前一个撤销的操作/redo

修改

r ---- 修改当前光标所在位置的字符

R --- 进入Replace模式,可以从当前位置开始修改,按ESC退出

cc  --- 删除本行,进入插入模式(修改本行内容)

~  ---  当前字符大小写切换

复制/粘帖

复制:在普通模式下,按v进入Visual模式,用改变光标所在位置的命令操作选择的字符,按y复制选择的字符

粘帖:按p把上一次复制的内容或上一次删除的内容,粘帖在光标所在位置后面

P  --- 把复制的内容粘帖的光标所在行的上一行

yw ---- 复制光标所在位置的单词

yy ---- 复制当前行,不论光标的位置在哪里

保存/退出

:w  --- 保存

:q  --- 退出

:wq  --- 保存并退出

:q! --- 强制退出,不保存

:w [filename] --- 保存到给定文件中

查找/替换

%   --- 定位匹配的括号【小括号,中括号,大括号】

/[charaters]   --- 查找charaters给定的字符

?/[charaters]  --- 反向查找charater给定的字符

n  ---- 重复执行上次的查找

N  ---  重复执行上次的查找 ,反向查找

:s/old/new ---- 替换当前行的第一个匹配项

:s/old/new/g --- 替换当前行的所有匹配项

:#,#s/old/new/g  ---- #,#为行好区域,替换指定区域内的所有匹配项

:%s/old/new/g   ----- 替换整个文件中的匹配项

:%s/old/new/gc  ----  查找整个文件中的匹配项,并提示是否需要替换

关于查找的几个命令

:set ic  ---- 设置查找过程忽略大小写

:set noic  ---- 设置查找过程区分大小写

:set hls is  ---- 设置查找结果高亮显示

:noh[lsearch] ---- 取消查找结果高度显示

重复执行上一次的命令 

.  ----  重复执行上次的命令

高级操作

一次输入多个相同的字符  [number][i,a,I,A][charater][ESC] 

例如:25i*ESC   在当前光标位置插入25个*

替换多个字符   [number]r[charater]

例如:把” || “ 替换成” && “ ---- 2r&

快速把下面一行移动到本行的后面  J

 

vi/vim使用指北 ---- Sample Editing的更多相关文章

  1. vi/vim使用指北 ---- Learning the vi and Vim Editors 读书 笔记

    vi/vim作为liux系统下最强大,最流行的文本编辑器之一.边看<Learning the vi and vim Editor>边学习vim,顺便做写简单的笔记,供以后查询. 没看这本书 ...

  2. vim使用指北 ---- Advanced Editing

    本节介绍vi和ex的一些高级功能. 配置vi 配置文件.exrc可以保存在你的主目录下,在vi启动的时候执行这个配置文件.但在当前工作目录下可以放置一个配置文件,对当前目录做一个自定义配置. :set ...

  3. vi/vim使用指北 ---- Introducting the ex Editor

    本章介绍ex编辑器,为什么要介绍这样一个新的编辑器呢:其实ex编辑器不能算是一个新的编辑器,vi只是它的visual model,它已经是一个更普遍,基于行的编辑器.ex提供更大机动和范围的编辑命令. ...

  4. vi/vim使用指北 ---- Beyond the Basic

    更多的组合命令 [number]-[command]-[test object] number:   数字 comand:  c,d,y  (修改,删除,复制) test object: 移动光标的命 ...

  5. vi/vim使用指北 ---- Moving Around in a Hurry

    上一篇文章中,简单列出了一些基本的Vim操作,也列出了很多的光标移动命令,本章主要是有哪些命令可以更快的移动光标. vim的编辑操作,用得最多就是移动光标,对于很少行的文件来说,基本的命令就够用了,但 ...

  6. vim使用指北 ---- Multiple Windows in Vim

    多窗口打开多个文件 vim -o file1 file2 ... ---- 默认上下分割窗口 vim -0n file1 file2 ... ---- vim默认会上下等分n个窗口 分割窗口 :[v] ...

  7. vim使用指北 ---- Global Replacement

    一般替换 s/old/new   --- 替换当前行的第一个匹配项 s/old/new/g ---- 替换当前行所有的匹配项 number1,number2-s/old/new/g  ---- 替换从 ...

  8. 【转载】vi/vim使用进阶: 指随意动,移动如飞 (二)

    本节所用命令的帮助入口: :help usr_03.txt :help motion.txt :help usr_29.txt :help scroll.txt :help folding 上一篇文章 ...

  9. 【转载】vi/vim使用进阶: 指随意动,移动如飞 (一)

    vi/vim使用进阶: 指随意动,移动如飞 (一) << 返回vim使用进阶: 目录 本节所用命令的帮助入口: :help usr_03.txt :help motion.txt :hel ...

随机推荐

  1. linux网络子系统内核分析

    1.选择路由 若要将数据包发至PC2,则linux系统通过查询路由表可知168.1.1.10(目的地址)的网关地址为192.168.1.1,此时linux系统选择网卡1发送数据包. 2.邻居子系统(通 ...

  2. python解析页面上json字段

    一般来说,当我们从一个网页上拿下来数据,就是一个字符串,比如: url_data = urllib2.urlopen(url).readline() 当我们这样得到页面数据,url_data是全部页面 ...

  3. 菜鸟学习Spring——初识Spring

    一.概念. Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Develop ...

  4. MIFARE系列1《MIFARE简介》

    随着社会的发展,智能卡在很多领域得到了广泛的应用.特别是非接触卡,由于使用方便以及功能强大的特点,在管理.公交.工作证.身份识别等领域得到了快速的普及和推广. 非接触卡已经逐步发展成为一个独立的跨学科 ...

  5. 使用Git和远程代码库

    git是个了不起但却复杂的源代码管理系统.它能支持复杂的任务,却因此经常被认为太过复杂而不适用于简单的日常工作.让我们诚实一记吧:Git是复杂的,我们不要装作它不是.但我仍然会试图教会你用(我的)基本 ...

  6. 关于SVN 目录结构,使用教程

    SVN使用教程:http://www.cnblogs.com/armyfai/p/3985660.html Subversion有一个很标准的目录结构,是这样的.比如项目是proj,svn地址为svn ...

  7. VHDL----基础知识1

    摘要: 打算分几篇,来理清VHDL的基础知识 ----------------------------------------------------------------------------- ...

  8. MATLAB GUI程序设计中ListBox控件在运行期间消失的原因及解决方法

    在运行期间,ListBox控件突然消失,同时给出如下错误提示: Warning: single-selection listbox control requires that Value be an ...

  9. Microsoft Dynamics CRM 2013 安装过程图解及安装序列号

    Microsoft Dynamics CRM 2013 安装过程 图解   在安装前,先持一下SQL配置管理,将相关的服务打开.(由于在虚拟机里,许多服务需要时才会打开,像Reporting Serv ...

  10. Understanding Convolutions【转】

    Understanding Convolutions In a previous post, we built up an understanding of convolutional neural ...