在linux下操作文件,通常会用到vi命令,现对其常用命令进行总结。

基本上vi/vim共分为三种模式,分别是命令模式、输入模式和底线命令模式,三者之间的关系如图所示。

一、移动光标的方法

(1)上下左右键(或者hjkl),(向下移动30行,使用30下或30j)

(2)Page Down,屏幕向下移动一页

(3)Page Up,屏幕向上移动一页

(4)n <space>,光标向右移动这一行的n个字符

(5)0或者Home,移动到这一行最前面的字符处

(6)$或End,移动到这一行最后字符处

(7)G,移动到文件的最后一行

(8)gg,移动到文件的第一行

(9)nG,移动到文件的第n行

(10)n<Enter>,光标向下移动n行

二、搜索和替换

(1)/word 向光标之下寻找一个名称为word的字符串

(2)?word向光标之上寻找一个名称为word的字符串

(3)n,N 代表重复前一个搜寻动作,如进行(1)操作后,按下n,自动向下寻找名为word的字符串,N自动向上寻找

(4):n1,n2s/word1/word2/g 在n1和n2行之间寻找word1这个字符串,并将该字符串取代为word2

(5):1,$s/word1/word2/g 或:%s/word1/word2/g 在第一行到最后一行寻找word1的字符,并将其替换为word2

(6):1,$s/word1/word2/gc 或:%s/word1/word2/gc 在第一行到最后一行寻找word1的字符,并将其替换为word2,且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!

三、删除、复制与粘贴

(1)x,X 在一行字中,x为向后删除一个字符,X为向前删除一个字符,10x为向后删除10个字符

(2)dd,删除光标所在的那一整行

(3)ndd,删除光标所在的向下n行(包含游标所在行)

(4)d1G,删除游标所在行到第一行的所有数据

(5)dG,删除游标所在行到最后一行的所有数据

(6)d$,删除游标所在位置到该行最后一个字符

(7)d0,删除游标所在位置到改行最前面一个字符

(8)yy,复制游标所在的那一行,nyy复制游标所在的向下n行

(9)y1G,复制游标所在行到第一行的所有数据

(10)yG,复制游标所在行到最后一行的所有数据

(11)y0,y$,复制游标所在字符到改行行首和行尾的所有数据

(12)p,P p为将已复制的数据在光标的下一行粘贴,P则为粘贴在游标的上一行

(13)J 将光标坐在行与下一行的数据结合成同一行

(14)u 复原前一个动作

(15)ctrl+r 重复前一个动作

(16)万能的.重复前一个动作

四、命令模式切换到可编辑模式

(1)i,I 进入输入模式,i为从目标光标所在处输入,I为目前所在行的第一个非空格符处开始输入。

(2)a,A 进入输入模式,a为从目前光标所在的下一个字符处开始输入, A 为从光标所在行的最后一个字符处开始输入。

(3)o,O 进入输入模式,o为从目前光标所在的下一行处输入新的一行,O为在目前所在处的上一行输入新的一行。

(4)r,R 进入取代模式,r只会取代光标所在的那一个字符一次,R会一直取代光标所在的文字,指导按下ESC为止。

五、文件保存和退出

(1):w 保存但不退出vi

(2):wq 保存文件并退出

(3):q 离开vi

(4):q! 强制离开vi,不保存

(5):w filename 将文件另存为

(6):n1,n2 w filename 将n1到n2行内容存储成filename

(7):r filename 在编辑的数据中读入另一个文件,将filename的内容加到游标后面

 六、vim环境变更

(1):set nu 每行前打印行号

(2):set nonu 取消每行前打印行号

(3):= 打印文件中的行数

(4):.= 打印当前行的行号

六、多文件编辑和窗口切换

(1)vim filename1 filename2 filename3 打开文件1,文件2,文件3

(2):n 进入下一个被vi打开的文件 :N进入上一个被vi打开的文件

(3):files 列出vi打开的所有文件

(4):sp filename 水平分割窗口,在已打开文件窗口页面,切换到另一个文件

(5):vsp filename 垂直分割窗口,在已打开文件窗口页面,切换到另一个文件

【Linux学习】【第一节】【vi命令】的更多相关文章

  1. Linux学习笔记:vi常用命令

    在Linux系统中常用vi命令进行文本编辑. vi命令是UNIX操作系统和类UNIX操作系统中最通用的全屏幕纯文本编辑器.Linux中的vi编辑器叫vim,它是vi的增强版(vi Improved), ...

  2. Linux学习笔记(四) vi编辑器

    一.vi 编辑器 vi 编辑器 (Visual Interface) 是所有 Unix 及 Linux 系统下标准的编辑器,相当于 Windows 系统中的记事本 它有三种模式,分别是: Comman ...

  3. Linux学习之用户管理命令与用户组管理命令(十五)

    Linux学习之用户管理命令与用户组管理命令 目录 用户管理命令 用户添加命令useradd 修改用户密码passwd 修改用户信息usermod 修改用户密码状态chage 删除用户userdel ...

  4. Linux学习之Vim/Vi使用(十三)

    Linux学习之Vim/Vi使用 Vim/Vi简介 Vim/Vi工作模式 Vim/Vi基本使用 Vim/Vi应用技巧 Vim/Vi简介 Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UN ...

  5. MapServer Tutorial——MapServer7.2.1教程学习——第一节:MapServer的基本配置管理,静态地图应用以及MapFile文件

    MapServer Tutorial——MapServer7.2.1教程学习——第一节:MapServer的基本配置管理,静态地图应用以及MapFile文件 前言 万事开头难,有了<MapSer ...

  6. OpenNebula学习第一节OpenNebula Front-end Installation

    一.说说情怀 随着公司硬件开发资源的不足,构建一个云平台似乎重要了起来.当然,也不是这个平台搭建的主力,出于工作的需求和个人兴趣爱好,接下来就来学习一下OpenNebula相关的东西,这是第一节课,先 ...

  7. Linux学习之路--常用命令讲解

    Linux常用命令讲解 1.命令格式:命令 [-选项]  [参数] 超级用户的提示符是# 一般用户的提示符是$ 如:ls -la /usr说明: 大部分命令遵从该格式多个选项时,可以一起写 eg:ls ...

  8. Linux高级编程--01.vi命令

    VI是Linux/Unix下标配的一个纯字符界面的文本编辑器.由于不支持鼠标功能,也没有图形界面,相关的操作都要通过键盘指令来完成,需要记忆大量命令.因此很多人不大喜欢它,但同时由于键盘的方式往往比鼠 ...

  9. Linux学习《第二章命令》本章小结

    经过这一章的学习,了解了常用的命令.这是学习Linux系统最最基础的工作,必须努力掌握,个人觉得,并不是这个章节学习结束之后,命令的学习就结束了,而是刚刚开始,今后在每个知识点学习过程中,都会 学习到 ...

  10. 1001-MySQL学习-第一节自习课

    MySQL学习(第一节自习课) 一. 软件下载.安装 下载地址:https://dev.mysql.com/downloads/installer/ 位置:mysql->installer-&g ...

随机推荐

  1. pytorch Dataset数据集和Dataloader迭代数据集

    import torch from torch.utils.data import Dataset,DataLoader class SmsDataset(Dataset): def __init__ ...

  2. Mac home 目录下创建文件夹

    example:sudo vim /etc/auto_master before: # Automounter master map +auto_master # Use directory serv ...

  3. c++ 更新 performance counter 数据,错误码 87

    ERROR_INVALID_PARAMETER 87 (0x57) The parameter is incorrect. 很可能是该送 ULONG 的送了 ULONGLONG,vise versa

  4. Spring Boot中使用Swagger CodeGen生成REST client

    文章目录 什么是Open API规范定义文件呢? 生成Rest Client 在Spring Boot中使用 API Client 配置 使用Maven plugin 在线生成API Spring B ...

  5. 在 AutoLayout 和 Masonry 中使用动画

    动画是 iOS 中非常重要的一部分,它给用户展现出应用灵气的一面. 在动画块中修改 Frame 在原来使用 frame 布局时,在 UIView 的 animate block 中对 view 的布局 ...

  6. 数据库SQL语言从入门到精通--Part 1--SQL语言概述

    数据库从入门到精通合集(超详细,学习数据库必看) 一.SQL概述 关系数据库标准语言SQL(结构化查询语言). 结构化查询语言(Structured Query Language)简称SQL,是一种特 ...

  7. Codeforce 140C (贪心+优先队列)补题

    C. New Year Snowmen time limit per test2 seconds memory limit per test256 megabytes inputstandard in ...

  8. 网络流--最大流--HDU 3549 Flow Problem

    题目链接 Problem Description Network flow is a well-known difficult problem for ACMers. Given a graph, y ...

  9. centos7 安装高版本svn

    一.安装高版本svn 1.创建一个新的yum库文件,vim /etc/yum.repos.d/wandisco-svn.repo 内容如下 [WandiscoSVN] name=Wandisco SV ...

  10. django最全面的知识点,直接开发完整手机购物商城练手,

    带手机验证码登陆, 带全套购物车系统 带数据库 前后端分离开发 带定位用户功能 数据库代码为本地制作好了 带支付宝支付系统 带django开发服务器接口教程 地址: https://www.duans ...