Vim简易教程

1. 介绍:

Vim时Linux内置的一款可定制的文本编辑器,用户可以根据自己的需求对其进行功能的补充。

2. 使用:

vim的操作分为三种模式:一般模式,编辑模式,命令模式。

一般模式:

当使用vi打开一个文件时,vi编辑器就处于一般模式,在此模式中,用户只能进行简单的操作:使用方向键移动光标,删除字符,复制/粘贴内容等,不能直接对内容进行编辑。

编辑模式:

要对文本内容进行编辑,需要按下[i, I, o, O, a, A, r, R]这些键中的任意一个,此时vi编辑器将处于编辑状态,用户便可对文本进行需要的修改。下面对这个开启编辑模式的键进行简单的介绍:

命令 含义
i 进入编辑模式,从当前光标的前一个位置处进行插入
I 进入编辑模式,从行首进行插入
o 进入编辑模式,从光标所在段落的后一行行首进行插入
O 开启编辑模式后,从光标所在段落的前一行行首进行插入
a 进入追加模式,从当前位置进行追加
A 进入追加模式,从行末进行追加
r/R 进行替换模式,替换当前光标位置处的内容

命令模式:

在一般模式中,用户只要输入[:, /, ?]三个字符中的任意一个将进入命令模式,在命令模式中,用户可以使用一些命令对文本进行复制,粘贴,删除等操作。如果用户当期处于编辑模式,则需要按下ESC键退出到一般模式,然后再切换到命令模式中进行操作。

3. 快捷键

vim编辑器的快捷键非常方便,使用时用户可以完全脱离鼠标的操作,下面我们介绍一下常用的快捷键。

一般模式:

命令 含义
ESC 进入命令模式
~ 转换大小写
# 前一个高亮字符串
$ 跳转到行末
% 括号匹配
^ 跳转到行首
× 后一个高亮字符串
( 前一句句首
) 后一句句首
_ 前一行行首(注意:是下划线而不是减号)
+ 后一行行首
w W: 下一个单词
e E: 跳转到词尾
r/R 替换字符
Y 复制行
u/U 撤销修改
i/I 进入编辑模式
o/O 短前/段后一行插入
p/P 粘贴(光标前/后)
a/A 进入追加模式
s 删除字符并插入
S 删除行并插入
D 删除光标所在行
{ 跳转到段前
} 跳转到段尾
G 跳转到文件末尾
H 跳转到屏幕顶行
h 左方向键
J 合并两行
j 下方向键
K 帮助(可查看库函数的定义)
k 上方向键
l 右方向键
x 删除字符(相当于Delete)
X 退格(相当于Backspace)
C 删除光标到行末的内容
b/B 前一个单词
M 屏幕中间行
N 查找上一处
n 查找下一处
< 以Tab键反缩进
> 以Tab键缩进

命令模式:

命令 含义
:w 保存当前修改
:w! 若该文件为只读时,强行保存当前修改
:q 关闭vi
:q! 强行关闭vi
:wq 保存并退出
:w [filename] 另存为
:e [filename] 打开filename文件
:h 帮助
:r [filename] 将filename文件中的内容追加到光标所在位置的后面
:n1,n2 w [filename] 将n1到n2行之间的内容保存到filename文件中
:set nu 显示行号
:set nonu 取消行号

其他重要命令:

命令 含义
CTRL+r 重复
CTRL+f/b 上翻/下翻(以页为单位)
CTRL+e/y 上滚/下滚(以行为单位)
CTRL+r 重复上一个操作
ZZ 保存退出
ZQ 不保存退出
zt 移动光标至屏幕顶端
zm 移动光标至屏幕中间
zm 移动光标至屏幕底部
gg 移动光标至文件开始位置
gf 打开光标处的文件名(可查看头文件的内容)
dd 删除光标所在行
ndd 删除光标以下的n行
d1G 删除光标所在行到第一行的所有内容
dG 删除光标所在行到最后一行的所有内容
d$ 删除光标所在位置到行末之间的内容
d0 删除光标所在位置到行首之间的内容
yy 复制当前行
nyy 复制光标所在行以下的n行内容
y1G 复制光标所在行到第一行的所有内容
yG 复制光标所在行到最后一行的所有内容
y$ 复制光标所在位置到行末之间的内容
y0 复制光标所在位置到行首之间的内容
nG 跳转到第n行
nx 向后删除n个连续的字符
/word 在光标之后查找名为word的字符串
?word 在光标之前查找名为word的字符串

通过使用以上快捷键,我们就可以完全脱离鼠标,方便地进行文档的编辑了!

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 19:04:06

Vim简易教程的相关文章

BIND简易教程(1):安装及基本配置

首先,为什么说是简易教程呢?因为BIND的功能实在太多,全写出来的话要连载好久,我觉得我没有那么多精力去写:而我了解的仅仅是有限的一点点,不敢造次.百度上的文章也是一抓一大把呐!所以,教点基本使用方法,有需求的同学可以再翻翻BIND管理员手册.那么,还是直接开始说正题吧.本次还是像PowerDNS一样是一个连载,写三篇. 目录:BIND简易教程(1):安装及基本配置(本篇)BIND简易教程(2):BIND视图配置(待续)BIND简易教程(3):DNSSec配置(待续) 首先说说安装.安装是非常简

Emacs简易教程

Emacs简易教程阅读: 命令: $emacs 进入之后,输入: C-h t 这里,C-h表示按住[Ctrl]键的同时按h ####### 20090620 *退出: 输入“C-x C-c” *撤销: 输入"C-x u" 或输入"C-_" 这里,"C-_"比较好输入一些(好像C--也行),但是有的键盘上面没有"_"就只能输入“C-x u”了,撤销动作能进行20次. *向上翻页: 输入"M-v" 这里,右手的

[转]Vim简明教程

觉得是时候有一个比较专一的文本编辑器了,gedit用起来不是很顺心的感觉,而且又看到90%以上的coders都在喜欢使用vim,所以我也开始学习使用. 复制比较麻烦,有时间再整理过来. 先贴上传输门: http://blog.csdn.net/niushuai666/article/details/7275406 [转]Vim简明教程,布布扣,bubuko.com

CCS2.2基于软件仿真简易教程(汇编)

CCS2.2基于软件仿真简易教程(汇编) Rev 1.0 Writer Nirvana Silence 配置目标芯片 打开此图标 导入配置,生成gel文件,导入点击close 然后关闭 保存changes 启动工程软件 新建工程.asm文件,添加到工程 新建文件 保存为汇编格式 添加到工程 编写程序,编译程序,load程序 在新建的ASM文件中输入以下程序,查看运行后(1030H).(1040H).*AR3,AR4的值 记得助记符前面至少要有一个空格 编译 没有问题,load .out文件 打开

getopts简易教程(Small getopts tutorial)译文(未完成)

getopts简易教程 当你想用一种专业的方式解析命令行参数时,getopts就是要选择的工具.和它的旧版本兄弟命令getopt不同(注意没有s!),getopts是shell内置命令.高级地方表现在 你不需要通过一个外部命令传递参数 getopts可以很容易的设置一些你能用于解析参数的变量(对于一个外部程序来说这是不可能的!) 你不必再处理过去一些使用getopt时的一些bug实现(空格, -) getopts已经在POSIX?定义 一些其他解析位置参数的其他方法(不用getopt(s))在这

Android实战简易教程-第四十枪(窃听风云之短信监听)

近期在做监听验证码短信自己主动填入的功能,无意间想到了一个短信监听的办法. 免责声明:短信监听本身是一种违法行为,这里仅仅是技术描写叙述.请大家学习技术就可以.(哈哈) 本实例是基于bmob提供的后台服务,将监听到的短信自己主动上传到bmob数据库中. 一.代码实现: 1.首先实现javabean对象. package com.example.messagecut; import cn.bmob.v3.BmobObject; public class MsgContent extends Bmo

移动开发之【微信小程序】的原理与权限问题以及相关的简易教程

这几天圈子里到处都在传播着这样一个东西,微信公众平台提供了一种新的开放能力,开发者可以快速开发一个小程序,取名曰:微信公众平台-小程序 据说取代移动开发安卓和苹果,那这个东东究竟是干吗用的?但很多人觉得是网页版应用. 有的人很鸡冻,但是--最后文章会提及具体的权限开放问题,所以,还是保持一颗冷静的?比较好. 那我们先来看看组件和API开放了哪些服务: 视图容器:视图(View).滚动视图.Swiper 基础内容:图标.文本.进度条 表单组件:按钮.表单等等 操作反馈 导航 媒体组建:音频.图片.

BIND简易教程(2):BIND视图配置

目录:BIND简易教程(1):安装及基本配置BIND简易教程(2):BIND视图配置(本篇)BIND简易教程(3):DNSSec配置 上文书说到,我们把aaa.apple.tree解析到192.168.4.100.那么世界上任何一个人在请求aaa.apple.tree的时候,解析到的都是这个IP地址,之后,再访问这个域名(当然这个IP地址只是实验的,而且我域名也没注册,除了我内网之外,世界上任何一个人都访问不到).那么问题来了,两个人一个在电信,一个在联通,都想访问这个域名的话,我的服务器要放在

BIND简易教程(3):DNSSec配置

目录:BIND简易教程(1):安装及基本配置BIND简易教程(2):BIND视图配置BIND简易教程(3):DNSSec配置 (本篇) DNSSec,有个半英半中的名字叫DNS安全扩展.说的好听一点,它是对域名进行签名认证,保证域名的完整性和正确性,不会被修改.DNSSec不能防御对DNS服务器的攻击,也不会对请求和应答的数据进行加密,甚至如果你不知道DNSSec这个东西的话,域名是不是完整正确的你也不知道. 实际上,给我的感觉就是,DNSSec是在花很大的力气去配置一个不怎么有用的东西.然并卵