vi/vim使用指北 ---- Sample Editing
本篇介绍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的更多相关文章
- vi/vim使用指北 ---- Learning the vi and Vim Editors 读书 笔记
vi/vim作为liux系统下最强大,最流行的文本编辑器之一.边看<Learning the vi and vim Editor>边学习vim,顺便做写简单的笔记,供以后查询. 没看这本书 ...
- vim使用指北 ---- Advanced Editing
本节介绍vi和ex的一些高级功能. 配置vi 配置文件.exrc可以保存在你的主目录下,在vi启动的时候执行这个配置文件.但在当前工作目录下可以放置一个配置文件,对当前目录做一个自定义配置. :set ...
- vi/vim使用指北 ---- Introducting the ex Editor
本章介绍ex编辑器,为什么要介绍这样一个新的编辑器呢:其实ex编辑器不能算是一个新的编辑器,vi只是它的visual model,它已经是一个更普遍,基于行的编辑器.ex提供更大机动和范围的编辑命令. ...
- vi/vim使用指北 ---- Beyond the Basic
更多的组合命令 [number]-[command]-[test object] number: 数字 comand: c,d,y (修改,删除,复制) test object: 移动光标的命 ...
- vi/vim使用指北 ---- Moving Around in a Hurry
上一篇文章中,简单列出了一些基本的Vim操作,也列出了很多的光标移动命令,本章主要是有哪些命令可以更快的移动光标. vim的编辑操作,用得最多就是移动光标,对于很少行的文件来说,基本的命令就够用了,但 ...
- vim使用指北 ---- Multiple Windows in Vim
多窗口打开多个文件 vim -o file1 file2 ... ---- 默认上下分割窗口 vim -0n file1 file2 ... ---- vim默认会上下等分n个窗口 分割窗口 :[v] ...
- vim使用指北 ---- Global Replacement
一般替换 s/old/new --- 替换当前行的第一个匹配项 s/old/new/g ---- 替换当前行所有的匹配项 number1,number2-s/old/new/g ---- 替换从 ...
- 【转载】vi/vim使用进阶: 指随意动,移动如飞 (二)
本节所用命令的帮助入口: :help usr_03.txt :help motion.txt :help usr_29.txt :help scroll.txt :help folding 上一篇文章 ...
- 【转载】vi/vim使用进阶: 指随意动,移动如飞 (一)
vi/vim使用进阶: 指随意动,移动如飞 (一) << 返回vim使用进阶: 目录 本节所用命令的帮助入口: :help usr_03.txt :help motion.txt :hel ...
随机推荐
- Python超简单的HTTP服务器
Python超简单的HTTP服务器 安装了python就可以 python -m SimpleHTTPServer 执行这一个命令即可实现一个HTTP服务器,将当前目录设为HTTP服务目录,可以通过h ...
- Bash美化
首先声明下,这些美化方式都不是我自己想的,而是多个牛人的方法. 第一:简单点 这个方法来自于:http://www.vimer.cn/?p=1554 没有美化前是这样,鼠标光标在很右边: 在.bash ...
- Github上LeakCanary编译报错CreateProcess error=2的解决方法
现象说明: 从github上拉下LeakCanary编译时报错 CreateProcess error=2, ϵͳÕҲ»µ½ָ¶ 原因分析: 该现象是由于Windows中Gradle调用命令未加cmd ...
- JavaWeb之Servlet:请求 与 响应
1 引入 浏览器和服务器的种类都有很多,要在它们之间通讯,必定要遵循一定的准则,而http协议就是这样的一个"准则". Http协议:规定了 浏览器 和 服务器 数据传输的一种格式 ...
- IBM MQ扩大队列最大消息长度
要设置MQ的最大消息长度,需要考虑同时设置队列管理,队列以及通道的最大消息长度. 具体操作如下: runmqsc 队列管理器名称 alter qmgr maxmsgl(10000000) 1 : al ...
- 调试mvc 源码【转:http://www.cnblogs.com/wucj/archive/2013/06/09/3128698.html】
最近在研究asp.net mvc的源码,于是在想,既然提供了源码,那我们如何进入源码调试了?在网上找了一些调试的方法,试了几个都不行,于是折腾了一上午,终于弄出来了,下面看看我的操作步骤. 一:准 ...
- UITabelView 高级(自定义Cell)
自定义一个Cell 当我们要显示复杂数据的时候,例如要做一个扣扣聊天界面,或是新闻列表,系统的行已经不能满足我们的要求,这个时候我们可以通过自定义这个行,让他显示更多复杂结构的样式. 自定义cell就 ...
- Objective-C 内存管理原则
内存管理方针 用于内存管理的基本模型采用引用计数的环境之中提供的组合方法中定义在NSObject协议和标准方法的命名约定.NSObject类也定义了一个方法:dealloc,当调用一个对象时自动回收, ...
- linux下操作
一.没有正确安装GNOME电源管理器的默认配置 二.oracle启停 1. linux下启动oraclesu - oraclesqlplus /nologconn /as sysdbastartupe ...
- Sharepoint 2010 RBS 的安装和配置
基本上按照微软官方的配置方法配置就行了. 给下地址:微软官方 涂大神 找RBS的安装文件也是个问题,微软的链接好像失效了.我使用的是RBS下载.这里也有. 我的环境是数据库两台故障群集转移,微 ...