简介

基本概念

vi编辑器是所有Unix及Linux系统下标准的编辑器。而vim包含了vi的所有功能,而且做了很多改进,功能更加强大。简单来说,vi适合文本编辑,而vim更适合codeing。这里只是简单地介绍一下它常用的一部分指令。

三种模式

基本上vi/vim可以分为三种状态:
- 命令模式(command mode)
- 插入模式(insert mode)
- 和底行模式(last line mode)。

命令行模式(command mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

插入模式(Insert mode)

只有在Insert mode下,才可以做文字输入,按ESC键可回到命令行模式。

底行模式(last line mode)

将文件保存或退出vi/vim,也可以设置编辑环境,如寻找字符串、列出行号……等。

不过一般我们在使用时把vi/vim简化成两个模式,就是将底行模式(last line mode)也算入命令行模式command mode)。

命令

常用命令

首先打开命令行界面,在目录下新建一个测试文件test.txt

vi test.txt

进入vi

单文件编辑

vi test.txt

多文件编辑

在使用vi/vim的时候,可能会碰到你需要复制一个文件中的某段到另外一个文件中,而vi/vim不能够在关闭的时候,把这段保留住。或者是用其它的方法复制。这时,就需要使用多文件编辑。

vim file1 file2

在底行模式下

  • n:编辑下一个文件
  • N:编辑上一个文件
  • files:列出目前这个vi/vim编辑的所有文件
多窗口功能
  • sp filename:开启一个新窗口,如果有加 filename, 表示在新窗口开启一个新文件,否则表示两个窗口为同一个文件内容(同步显示)。
  • ctrl+w+j:按键的按法是:先按下 【ctrl】 不放, 再按下 w 后放开所有的按键,然后再按下 j (或向下箭头键),则光标可移动到下方的窗口。
  • ctrl+w+↓:同上
  • ctrl+w+k:同上,不过光标移动到上面的窗口。
  • ctrl+w+↑:同上

进入vi/vim之后,是处于「命令行模式(command mode)」。

命令行模式常用命令

移动光标

  • 利用键盘的↑,↓,←,→键
  • ctrl+b:屏幕往后移动一页
  • ctrl+f:屏幕往前移动一页
  • ctrl+u:屏幕往后移动半页
  • ctrl+d:屏幕往前移动半页
  • shift+g: 就可以到这一页的结尾了.
  • gg:移动到文章的开头.
  • $:将光标移动到行尾
  • ^:将光标移到行头
  • w:将光标移到下一行头
  • b:跟w相反.移到上一行行头
  • e:将光标移到下一行尾.

块选择

  • v:字符选择,会将光标经过的地方反白选择
  • V :行选择,会将光标经过的行反白选择
  • Ctrl+v: 块选择,可以用长方形的方式选择资料 (提制竖列)

删除

在命令行下使用backplace键是不可以删除内容的。

  • x:每按一次,删除光标所在位置的“后面”一个字符。
  • delete:删除选中内容。
  • d:删除选中内容
  • #x:例如,6x表示删除光标所在位置的“后面”6个字符。
  • X:删除光标所在位置的“前面”一个字符。
  • #X:例如,20X表示删除光标所在位置的“前面”20个字
  • dd:删除光标所在行。
  • #dd:从光标所在行开始删除#行
  • d1G :删除光标所在行到第一行的所有数据
  • dG :删除光标所在到最后一行的所有数据
  • d$:删除光标所在处,到该行的最后一个字符
  • d0 :删除光标所在处,到该行的最前一个字符

复制粘贴

  • yw:将光标所在之处到字尾的字符复制到缓冲区中
  • yy:复制光标所在行到缓冲区
  • #yy:复制光标所在的向下n列
  • y1G:复制光标所在行到第一行的所有数据
  • yG :复制光标所在行到最后一行的所有数据
  • y0:复制光标所在的那个字符到该行行首的所有数据
  • y$复制光标所在的那个字符到该行行尾的所有数据
  • p:将缓冲区内的字符贴到光标所在位置。注意:所有与y有关的复制命令都必须与”p”配合才能完成复制与粘贴功能
  • p将已复制的数据在光标下一行粘贴上
  • P 则为贴在光标的上一行

替换

  • r:替换光标所在处的字符。
  • R:替换光标所到之处的字符,直到按下ESC键为止。

undo

  • u:如果误执行一个命令,可以马上按下u,撤消上一个操作。按多次u可以执行多次撤消。

redo

  • ctrl+r:重做上一个操作

进入Insert mode

  • i:从光标当前位置开始插入;
  • I: 从目前所在行的第一个非空格符处开始插入;
  • a:从目前光标所在位置的下一个位置开始插入;
  • A:从光标所在行的最后一个字符处开始插入;
  • o:在目前光标所在处的下一行插入新的一行;
  • O:在目前光标所在处的上一行插入新的一行;
  • s:进入插入模式后,是删除当前光标的下个文字,然后开始插入;
  • S:进入插入模式后,是删除当前光标的所在行,然后开始插入;
  • cc:进入插入模式后,是删除当前光标的所在行,然后开始插入;
  • C:进入插入模式后,是删除当前光标的所在行,然后开始插入;
  • cw:进入插入模式后,是删除当前光标的所在行,然后开始插入;

进入last line mode。

按:即可进入last line mode。

插入模式常用命令

移动光标

  • 利用键盘的↑,↓,←,→

删除

  • 使用backplace键。
  • 可以选中内容,按delete键删除选中内容。

复制

  • yw:将光标所在之处到字尾的字符复制到缓冲区中。
  • yy:复制光标所在行到缓冲区。
  • #yy:例如,6yy表示拷贝从光标所在的该行”往下数”6行文字
  • p:退出插入模式,将缓冲区内的字符贴到光标所在位置。注意:要退出插入模式后才能使用p命令

退出insert mode

按esc即可退出insert mode

进入last line mode。

先按esc退出insert mode。后按:即可进入last line mode。

底行模式常用命令

在使用last line mode之前,请记住先按ESC键确定您已经处于command mode下后,再按:冒号即可进入last line mode。

行号

  • set nu:输入set nu后,会在文件中的每一行前面列出行号。
  • set nonu: 与 set nu 相反,为取消行号显示

跳到文件中的某一行

  • ##号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了。

查找

  • /关键字:先按/键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按n向下查找,也可以按N向下查找。
  • ?关键字:先按?键,再输入您想寻找的字符,如果第一次找的关键字不是您想要的,可以一直按n向下查找,也可以按N向下查找。

替换

  • :n1,n2s/word1/word2/g :n1与n2为数字,在第n1与n2行之间查找word1 这个字符串,并将该字符串替换为word2
  • :1,$s/word1/word2/g :从第一行到最后一行查找word1字符串,并将该字符串替换为word2
  • :1,$s/word1/word2/gc :从第一行到最后一行查找word1字符串,并将该字符串替换为word2 ,且在替换前提示用户确认是否进行替换

保存

  • w:在冒号输入字母w就可以将文件保存起来。
  • w filename: 将编辑的数据保存成另一个文件(类似另存)
  • r filename: 在编辑的数据中,读入另一个文件的数据。即将filename这个文件的内容加到光标所在行后面。
  • n1,n2 w filename: 将n1到n2的内容保存成filename这个文件
  • ! command:暂时离开vi/vim 到命令行模式下执行command的显示结果!例如 【:! ls /home】即可在 vi/vim当中察看/home底下以ls输出的文件信息。

退出vi/vim

  • q:按q就是退出,如果无法离开vi/vim,可以在q后跟一个!强制离开vi/vim
  • qw:一般建议离开时,搭配w一起使用,这样在退出的时候还可以保存文件。

vim特性

环境设置

环境设置参数命令

  • :set nu 设置行号
  • :set nonu 取消行号
  • :set hlsearch 设置高亮度查找
  • :set nohlsearch 取消高亮度查找
  • :set backup 自动备份文件
  • :set ruler 开启右下角状态栏说明
  • :set showmode 显示左下角的INSERT之类的状态栏
  • :set backspace={0,1,2} 设置退格键功能。为2时可以删任意字符。为0或1时仅可以删除刚才输入的字符。
  • :set all 显示目前所有的环境参数值
  • :set 显示与系统默认值不同的参数值
  • :syntax on/off 是否开启依据相关程序语法显示不同的颜色
  • :set bg=dark/light 是否显示不同的颜色色调

没有必要每次使用vim都要重新设置各个参数值。我们可以通过配置文件来设置vim操作环境。vim的设置值一般是放在/etc/vimrc中的。一般不要修改这个文件。可以通过修改~/.vimrc这个文件,如果不存在,可以手动创建。然后将我们所希望的设置值写入。例如,我们可以这样写:

vim ~/.vimrc
set hlsearch
set nu  

创建并保存这个文件之后,当下次重新以vim编辑某个文件时,该文件的默认环境就是这么设置的。

Linux-vi/vim常用命令手册相关推荐

  1. vi/vim常用命令 zz

    http://blog.sina.com.cn/s/blog_492101c70100o10c.html 最近整理的vi/vim常用命令,有需要的童鞋拿去用吧 (本来是在excel中的,但是没有地方上 ...

  2. 【Linux】vim常用命令

    [Linux]vim常用操作命令 文章目录 [Linux]vim常用操作命令 前言 一.一般命令模式 1.1 光标移动 1.2 查找与替换字符串 1.3 复制.删除.粘贴 1.4 其它小技巧 二.编辑 ...

  3. 【文档资料】Linux、Vi/Vim常用命令

    一.Linux 1.系统信息[左1] 查看磁盘空间使用情况:df+参数 查看当前指定文件或目录的大小:du 查看不同硬件信息:cat/proc/xxx 查看系统和空闲内存:free +参数 SSH退出 ...

  4. Linux 和 Vim 常用命令整理

    Sftp常用命令: lcd f: 本地切换到 F盘 lpwd 本地 当前目录 lls 本地 文件列表 put 本地 上传文件到服务器(put输入后,回车会有弹窗,选择上传文件) get 下载文件到本地 ...

  5. vi (vim) 常用命令

    最近在做linux相关学习,记录vi常用命令如下: 1. 光标移动 * w 光标移动到下一个文字的开始 * b 光标移动到上一个文字的开始 * e 光标移动到下一个文字的结束 * n + <sp ...

  6. vi/vim常用命令总结参考图

    vi/vim编辑工具常用命令参考:

  7. 解决linux vi/vim或命令行出现方向键、删除出现乱码

    解决linux环境vi/vim出现方向键.删除出现乱码的问题 按如下步骤操作 使用root权限打开文件vimrc.tiny,命令如下: sudo vi /etc/vim/vimrc.tiny 解决方向 ...

  8. vi / vim——常用命令

    一.重复次数 在命令模式下,先输入一个数字,再跟上一个命令,可以让该命令重复执行指定次数 二.移动和选择 vi之所以快,关键在于能够快速定位到要编辑的代码行 移动命令能够和编辑操作命令组合使用 方向键 ...

  9. 【Linux】vim常用命令(多行注释、字符替换,命令模式、底行模式常用命令)

    文章目录 编辑器 - vim vim 的基本概念 vim 的基本操作 vim 在命令模式中的命令集 (

最新文章

  1. 初级版python登录验证,上传下载文件加MD5文件校验
  2. 基于ATT和CK™框架的开放式方法评估网络安全产品
  3. 以太坊搭建,不能使用puppeth 创建初始块,报错Fatal: Failed to write genesis block: unsupported fork ordering: eip15
  4. javascript 事件知识集锦
  5. 华为matebook14会不会用鸿蒙,2020年用什么笔记本上网课?浅析华为MateBook 14 2020款...
  6. 25岁php,“最好的语言“ 25 岁了,PHP说要走向安全和开放!
  7. (5)ES6解构赋值-函数篇
  8. 什么叫做蓝牙技术(转贴)
  9. php使用自定义ip,PHP跨平台获取服务器IP地址自定义函数分享
  10. LM324运放作为比较器输出不稳定问题的探讨
  11. 2012安装oracle11g教程,Windows Server 2012 安装oracle11g(图文教程)
  12. word一打字就有下划线_word打字自带下划线 为什么WORD打字时总带有下划线,如何解决?...
  13. irr java_Java版的IRR(内部收益率)实现
  14. 联发科mt8516价格_揭秘联发科MT8516单颗芯片破千万背后的故事
  15. 中国通胀真相:美国向全球转嫁经济调整成本
  16. 个人见解:什么是WBS?
  17. 学生成绩管理系统 easyx库(半成品
  18. 12-搜索前端开发-按分类搜索
  19. Toefl-Speaking
  20. 九轴传感器姿态----AHRS算法开源项目推荐

热门文章

  1. 低代码平台有哪些?值得推荐的低代码公司?
  2. AVS2解码图像管理
  3. CodeForces 954A Diagonal Walking
  4. 罗永浩和锤子手机:对不起,我被你打动了
  5. 阿里云添加域名解析设置
  6. 数据分析中的数据处理以及特征分析
  7. umi 约定式路由 关于 history.goBack() 的奇奇怪怪问题
  8. A40i使用笔记:QT使用alsa采集音频pcm信息
  9. 机器人理论(3)DH表达法:解析关节轴之间的关系
  10. 7个最佳WordPress视频库插件