Linux基本命令 vim命令(一)
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命令(一)的更多相关文章
- Linux基本命令 vim命令(二)
Linux Vim显示行号 在命令模式下输入" : " 进入编辑模式后执行 set nu 命令 即可显示每一行的行号,如果想要取消行号,则再次输入":set nonu&q ...
- linux下vim命令具体解释
很具体的介绍linux中vim的操作命令. 高级一些的编辑器,都会包括宏功能,vim当然不能缺少了.在vim中使用宏是很方便的: :qx 開始记录宏.并将结果存入寄存器x q 退出记录 ...
- Linux基本命令 网络命令
概述 网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ...
- -Git Linux vi/vim 命令 按键 MD
目录 目录 Linux vi/vim 简介 vi/vim 的使用 命令模式 输入模式 底线命令模式 vi/vim 使用实例 使用 vi/vim 进入一般模式 按下 i 进入输入模式,开始编辑文字 按下 ...
- Linux vi/vim命令
转自:http://www.runoob.com/linux/linux-vim.html Linux vi/vim 所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一 ...
- Linux下vim命令总结
一.光标控制命令 命令 移动 k 向上移一行 j 向下移一行 h ...
- Linux 使用vim命令编辑文件内容
在终端可以使用vim命令来直接编辑文件内容. vim,也可以叫做vi. vim有三种模式:命令模式.输入模式.底线命令模式. 命令模式 vim 文件名 进入命令模式,vim也可以写成vi. 如果 ...
- linux下vim命令
进入vim的命令 vim filename :打开或新建文件,并将光标置于第一行首 vim +n filename :打开文件,并将光标置于第n行首 vim + filename :打开文件,并将光标 ...
- [转]linux中vim命令
在vi中按u可以撤销一次操作 u 撤销上一步的操作 ctrl+r 恢复上一步被撤销的操作 在vi中移动光标至: 行首:^或0 行尾:$ 页首:1G(或gg) 页尾:G(即shift+g) 显 ...
随机推荐
- va_list可变参数
可变参数函数实现 va_list,va_start,va_arg,va_end va可变参数意思,variable-argument. 1. 头文件及实现 linux中定义在gcc头文件中,stdar ...
- Web前端都学点儿啥?
Web开发如今是如日中天,热的发烫.但是Web开发相关的技术和知识却像N座大山一样,耸立在我们面前,连绵起伏,漫无边际.那么这些山头那些我们应该占领,那些我们应该绕开,很多人看着就蒙了,这不光是初学者 ...
- npm安装vue-cil出现错误
这个错误有点尴尬..... 之前全局安装过cil,然后在全局安装出现了这个错误,各种手册看了半天也没有头绪,猛然想起来之前安装过,试下直接初始化项目试一下,果然成功了 然后在 npm install ...
- 很easy的js双向绑定框架(二):控制器继承
初衷 上一篇已经实现了数据的双向绑定,但model的控制范围是整个文档.在实际project中必需要有作用范围,以便做ui模块的拆分. 这一篇,我们希望实现像angularjs一样的控制器继承: 1. ...
- Unity3D学习笔记——Android重力感应控制小球
一:准备资源 两张贴图:地图和小球贴图. 二:导入资源 在Assets下建立resources文件夹,然后将贴图导入. 三:建立场景游戏对象 1.建立灯光: 2.创建一个相机,配置默认. 3.建立一个 ...
- python3----转换大小写(upper lower capitalize and title)
和其他语言一样,Python为string对象提供了转换大小写的方法:upper() 和 lower().还不止这些,Python还为我们提供了首字母大写,其余小写的capitalize()方法,以及 ...
- 1249 Problem Q
问题 Q: 比大小 时间限制: 1 Sec 内存限制: 128 MB 提交: 159 解决: 66 [提交][状态][讨论版] 题目描述 给你两个很大的数,你能不能判断出他们两个数的大小呢? 比如 ...
- nyoj677 谍战
本题能够说是最小割入门级题目. 假设能想到是最小割问题.那么建图思路便是水到渠成的事了. 加入一个源点S和汇点T: 把S与每一个间谍相连.容量为无穷大: 把城市N(即飞机场的位置)与汇点T相连.容量为 ...
- 使用bbed编辑研究oracle数据块结构
bbed是随oracle软件公布的一款数据块查看和编辑工具,作为一款内部工具.bbed的功能很强大,可是假设使用不当可能给数据库造成无法挽回的损失.因此.我们建议在使用bbed改动数据块前备份被改动的 ...
- Android开发:《Gradle Recipes for Android》阅读笔记1.7——仓库配置
repositories块告诉gradle哪里去寻找依赖,默认的android studio使用jcenter或者mavenCentral.jcenter仓库位于https://jcenter.bin ...