vim的三种工作模式

命令模式、输入模式和编辑模式的相互转换,如图

命令模式:使用 Vim 编辑文件时,默认处于命令模式。在此模式下,可以使用上、下、左、右键或者 k、j、h、l 命令进行光标移动,还可以对文件内容进行复制、粘贴、替换、删除等操作。

输入模式:在输入模式下可以对文件执行写操作。进入输入模式的方法是输入 i、a、o 等插入命令,编写完成后按 Esc 键即可返回命令模式。

编辑模式:如果要保存、查找或者替换一些内容等,就需要进入编辑模式。编辑模式的进入方法为:在命令模式下按" :"键,Vim 窗口的左下方会出现一个" :"符号后,这时就可以输入相关的指令进行操作了。操作完按Enter键执行,指令执行后会自动返回命令模式。

使用Vim打开文件

为了避免误操作我们将/etc下的profile复制到/tmp下进行操作,命令如下:

[root@localhost /]# cp /etc/profile  /tmp/profile.vim

使用vim 进入profile文件的命令模式

操作 功能描述
vim profile.vim 只是打开文件
vim +20 /tmp/profile.vim

打开文件后,直接定位指定行数处 ,

例如,打开 /tmp/profile.vim文件时直接进入第 20 行

vim +/future /tmp/profile.vim

打开文件后,直接定位指定行数处 ,

例如,打开 /tmp/profile.vim文件时直接定位到"future"字符串所在行

打开文件后,接下来开始对文件进行操作。

进入输入命令模式

从命令模式进入输入模式可以按下 I、i、A、a 、O、o、等键来完成,不同的键只是光标所处的位置不同而已。当进入输入模式后,在 Vim 编辑窗口的左下角会出现"INSERT"标志,这就代表我们可行写入操作了,在vim中光标是停留在字符上的,例如在光标后面插入就是指在光标所在的字符的后面插入;

操作 功能描述
i

在当前光标所在位置插入输入的文本,光标后的文本相应向右移动

I 在光标所在行的行首插入输入的文本,行首是该行的第一个非空白字符,相当于光标移动到行首执行 i 命令
a

在当前光标所在位置之后插入输入的文本

A

在光标所在行的行尾插入输入的文本,相当于光标移动到行尾再执行 a 命令

o

在光标所在行的下面插入新的一行。光标停在空的行首,等待输入文本

O

在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本

光标移动命令

在由命令模式中 Vim 提供了大量的光标移动命令,这些命令需要在命令模式下执行。

以字符为单位移动

在Vim中通过上、下、左、右方向键来移动光标,除此之外还可以通过以下按键来移动。

操作 功能描述
h 左移一个位置
j 往下一行
k 往上一行
l 右移一个位置

以单词为单位移动

操作 功能描述
w 移动光标到下一个单词的单词首
b 移动光标到上一个单词的单词首
e 移动光标到下一个单词的单词尾

移动到行尾或者行首

操作 功能描述
$ 将光标移至行尾
0 或 ^ 将光标移至行首
n$ 将光标移至当前光标所在行的之后 n 行的行尾

移动到一行的指定字符处

操作 功能描述
fp 光标定位到字符 p 处。f 命令有一个使用条件,即光标需在指定字符前

移动到匹配的括号处(%命令)

操作 功能描述
 %   将光标移动到与一个"("匹配的")"(对于 [] 和 {} 也是一样的处,需要将光标先定位在要匹配的符号处

移动到指定行处(nG 或 :n 命令)

操作 功能描述

nG

将光标快速地定位到指定行的行首

:n

将光标快速地定位到指定行的行首

 査找指定字符串

操作 功能描述

命令模式中输入"/ 要査找的字符串", 再按一下回车键

从光标所在行开始向下査找指定的字符串

命令模式中输入"?要査找的字符串", 再按一下回车键

从光标所在行开始向上査找指定的字符串

/^Path

要査找一个以Path 为行首的行
Path$ 要査找一个以 Path 为行尾的行

说明:如果匹配的字符串有多个,则可以按"n"键向下继续匹配査找,按"N"键向上继续匹配査找。如果在文件中并没有找到所要査找的字符串,则在文件底部会出现"Pattern not found"提示.,在査找过程中需要注意的是,要査找的字符串是严格区分大小写的,如果想忽略大小写,则输入命令 ":set ic";调整回来输入":set noic"。如果在字符串中出现特殊符号,则需要加上转义字符"\"。常见的特殊符号有 \、*、?、\ $ 等。如果出现这些字符,例如,要査找字符串"10$",则需要在命令模式中输入"/10\$"。

使用Vim进行替换

操作 功能
x 删除光标位置指定的字符
dd 删除光标所在的行
u 撤销最近的修改
U 撤销对当前行上做的所有修改
r 替换光标位置上的一个字符
R 替换从光标位置开始的字符,同时改变vi到文本输入模式
.(点) 重复上一次的修改
%s/源字符串/替换的字符串/g 替换整篇文档的字符串,例如: %s/root/liudehua/g  全文査找"root",然后替换成"liudehua"
替换起始处,替换结束处 s/源字符串/替换的字符串/g 替换范围内的字符串,例如:10,20 s/root/liudehua/g  只替换从第 10 行到第 20 行的"root"

说明:按下"R"键替换后,Vim 编辑文件左下角会显示"REPLACE",进入替换状态。直到按 Esc 键才会退出替换;否则将一直处于替换状态。

 使用 Vim 进行删除、粘贴、复制

操作 功能
d 删除指定位置的文本,并存到临时的缓冲区中。可以使用put操作符(p或P键)访问这个缓冲区
dd 删除整行,通过在前面加上数字来删除当前光标所在行下的多行
dG 删除从光标所在行一直到文件末尾的全部内容
起始行,终止行d 删除指定范围的行,例如:删除第 1~3 行,则输入":1, 3d",会提示"3 fewer lines"
y 将指定位置的文本复制到临时缓冲区。可以使用put操作符访问这个缓冲区
yy 复制单行,通过在前面加上数字来复制当前光标所在行下的多行
P 将指定缓冲区的内容放到当前光标的位置之上
p 将指定缓冲区的内容放到当前光标的位置之下
J 将两行进行连接,使其成为一行

说明:在使用d删除时,此时被删除的内容并没有真正删除,都临时放在了内存中。将光标移动到指定位置处,按下"p"键,就可以将刚才删除的内容又粘贴到此处。在软件开发中可能需要将连续两行进行互换,就可以将上面的一行过"dd"键删除,再将光标移动到下面,通过"p"键将其重新粘贴,这样就能够达到两行互换位置的目的。

 保存退出命令

操作 功能描述
:wq 保存文件,退出vi编辑器
:w 保存文件,但不退出vi编辑器
:q 退出vi编辑器
:q! 不保存文件,退出vi编辑器 
ZZ 保存文件,退出vi编辑器

说明:在对文件没有写权限的时候(显示 readonly)需要在命令后面加!表示强制退出,例如:"w!"或"wq!"就意味着强制保存或强制保存退出,但如果你是文件的所有者或者 root 用户,就可以强制执行;在保存时,如果要保留源文件,而另存为其他的文件,可以用"w新文件名",如"w /tmp/shadow.vi"。

Linux基本命令 vim命令(一)的更多相关文章

  1. Linux基本命令 vim命令(二)

    Linux Vim显示行号 在命令模式下输入" : " 进入编辑模式后执行 set nu 命令 即可显示每一行的行号,如果想要取消行号,则再次输入":set nonu&q ...

  2. linux下vim命令具体解释

    很具体的介绍linux中vim的操作命令. 高级一些的编辑器,都会包括宏功能,vim当然不能缺少了.在vim中使用宏是很方便的: :qx     開始记录宏.并将结果存入寄存器x q     退出记录 ...

  3. Linux基本命令 网络命令

    概述 网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ...

  4. -Git Linux vi/vim 命令 按键 MD

    目录 目录 Linux vi/vim 简介 vi/vim 的使用 命令模式 输入模式 底线命令模式 vi/vim 使用实例 使用 vi/vim 进入一般模式 按下 i 进入输入模式,开始编辑文字 按下 ...

  5. Linux vi/vim命令

    转自:http://www.runoob.com/linux/linux-vim.html Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一 ...

  6. Linux下vim命令总结

    一.光标控制命令   命令                   移动    k                   向上移一行    j                   向下移一行    h    ...

  7. Linux 使用vim命令编辑文件内容

    在终端可以使用vim命令来直接编辑文件内容. vim,也可以叫做vi. vim有三种模式:命令模式.输入模式.底线命令模式. 命令模式 vim  文件名   进入命令模式,vim也可以写成vi. 如果 ...

  8. linux下vim命令

    进入vim的命令 vim filename :打开或新建文件,并将光标置于第一行首 vim +n filename :打开文件,并将光标置于第n行首 vim + filename :打开文件,并将光标 ...

  9. [转]linux中vim命令

    在vi中按u可以撤销一次操作 u      撤销上一步的操作 ctrl+r 恢复上一步被撤销的操作 在vi中移动光标至: 行首:^或0 行尾:$ 页首:1G(或gg) 页尾:G(即shift+g) 显 ...

随机推荐

  1. LeetCode447. Number of Boomerangs

    Description Given n points in the plane that are all pairwise distinct, a "boomerang" is a ...

  2. hdu5800 To My Girlfriend dp 需要比较扎实的dp基础。

    To My Girlfriend Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) ...

  3. Linux中解压缩命令gzip和unzip的一点说明

    inux中解压缩命令gzip和unzip的一点说明 转载 2014年10月29日 20:37:35 20741   Linux 常用的压缩命令有 gzip 和 zip,两种压缩包的结尾不同:zip 压 ...

  4. win10实现移动热点共享WIFI

    电脑有线上网有WIFI网卡,想共享WIFI给手机还在为下载猎豹WIFI.360WIFI.WIFI共享精灵?担心密码泄露?担心网络安全?现在一切都不用烦恼.windows10系统自带热点共享 工具/原料 ...

  5. repaint和reflow的相关知识

    一个页面由两部分组成: DOM:描述该页面的结构 render渲染:描述 DOM 节点 (nodes) 在页面上如何呈现 repaint重绘: 当 DOM 元素的属性发生变化 (如 color) 时, ...

  6. Spring MVC 分离了控制器、模型对象、过滤器以及处理程序对象的角色

    通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如 JavaServer Pages(JSP)技术.Velocity.Tiles.iText和POI.Spring MVC 框架 ...

  7. git Staging Deleted files

    Use git rm foo to stage the file for deletion. (This will also delete the file from the file system, ...

  8. cocos2dx-3.0(前言)

    说了好久,告诉自己要開始学cocos2dx(在心理里告诉了好久),然后养成良好习惯,记录自己学习cocos2dx的过程.一个是怕自己忘记.还有一个是更加让自己理解透彻(或许哪天我写的好了,组合一下出一 ...

  9. Rightscale & Amazon

    原先一直以为Rightscale是Amazno旗下的一个产品,今天才知道是Amazon partner - -||,实在汗颜. Rightscale也是一个很强大的公司,提供跨云解决方案...(呃,原 ...

  10. Linux重启与关机命令

    重启命令 reboot shutdown -r now 立即重启 shutdown -r 10   十分钟后重启 shutdown -r 17:00 在17:00重启 关机命令 halt 立即关机 p ...