linux杂记(⑨)?vi使用说明

基本上vi共分为三种模式,分别是【一般模式】】、【编辑模式】与【指令列命令模式】。
这三种模式的作用是:

  • 一般模式:以vi处理一个档案的时候,一进来该档案就是一般模式。在这个模式中,你可以使用【上下左右】按键来移动光标,你可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制】粘贴】来处理你的文件数据
  • 编辑模式:在一般模式中可以处理删除、复制、粘贴等等的动作,但却无法编辑。要等你按下[i、I、o、O、a、A、r、R]等字母之后才会进入编辑模式。通常在linux中,按下上述的字母时,在画面的左下方会出现[INSERT或REPLACE]的字样,才可以输入任何字来输入的你的档案中。而如果要回到一般模式,则要按下[Esc]这个按键即可退出编辑模式。
  • 指令列命令模式:在一般模式中,输入[:或/或?]就可以将光标移动到最底下那行,在这个模式当中,可以提供给你【搜寻资料】的动作,而读取、存盘、大量取代字符、离开vi、显示行号等等的动作则是在此模式中达成的!

首先先来一个简易执行范例

  1.使用vi进入一般模式

[[email protected] ~]# vi test.txt

直接输入【vi 档名】即可进入vi。如上所示,左下角会显示这个档案目前的状态。如果是新建档案会显示[New File],如果是已经存在的档案,则会显示目前的文件名、行数与字符数,例如:["/etc/man.config"145L,4614C]

  2.按下i进入编辑模式

在一般模式中,只要按下I,o,a等字符,就可以进入编辑模式。在编辑模式下,你可以发现左下角会出现-- INSERT --的提示符。如下图,

在这个时候,键盘上除了[Esc]按键之外,其它按键都可以视为一般的输入按钮。(注:在vi里面,[tab]这个按钮所得到的结果与空格符所得到的结果是不同的!)

  3.按下[Esc]回到一般模式

  4.在一般模式中按下:wq储存后离开vi

输入[:wq]即可存档离开。(注意,按下:该光标就会移动到最底下一行。)这是你在提示符后面输入[ls -l]即可看到我们刚刚建立的test.txt档案。

如此一来,test.txt已经建立起来了。需要注意的是,如果档案权限不对,例如是-r--r--r--时,那么可能无法写入。可是这时候可以使用[:wq!]强制写入的方式。不过要特别注意的是,那个是在[你的权限可以改变]的情况下才能成立。

一般模式:移动光标的方法
h 或←(方向键) 光标向左移动一个字符
j 或↓(方向键) 光标向下移动一个字符
k 或↑(方向键) 光标向上移动一个字符
l 或→(方向键) 光标向右移动一个字符
如果想要进行多次移动,例如向下移动30行,可以使用"30j"或"30↓"的组合按键
[Ctrl]+[f] 屏幕【向下】移动一页,相当于[Page Down]按键
[Ctrl]+[b] 屏幕【向上】移动一页,相当于[Page Up]按键
[Ctrl]+[d] 屏幕【向下】移动半页
[Ctrl]+[u] 屏幕【向上】移动半页
+ 光标移动到非空格符的下一列
- 光标移动到非空格符的上一列
n<space> 那个n表示【数字】,按下数字后再按空格,光标会向右移动这一行的n个字符
0 这是数字[0]:移动到这行最前面字符处
$ 移动到这个屏幕最后面字符处
H 移动到这个屏幕最上方那一行
M 移动到这个屏幕的中央那行
L 移动到这个屏幕的最下方那一行
G 移动到这个档案的最后一行
nG n为数字。移动到这个档案的第n行。(可配合:set nu)
gg 移动到这个档案的第一行,相当于1G
n<Enter> n为数字。光标向下移动n行
一般模式:搜寻与取代
/word 向光标之下寻找一个字符串名称为word
?word 向光标之上寻找一个字符串名为word
n 英文按键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 同上,另在取代前显示提示字符给user确认(conform)是否需要取代
一般模式:删除、复制与粘贴
x,X 在一行字中,x为向后删除一个字符
nx n为数字,连续向后删除n个字符
dd 删除游标所在的那一整列
ndd n为数字。删除光标所在的向下n列
d1G 删除光标所在到第一行的所有数据
dG 删除光标所在最后一行的所有数据
d$ 删除光标所在处,到该行的最后一个字符
d0 数字[0],删除游标所在处,到该行的最前面一个字符
yy 复制光标所在的那一行
nyy n为数字。复制光标所在的向下n列
y1G 复制光标所在列到第一列的所有数据
yG 复制光标所在列到最后一列的所有数据
y0 复制光标所在的那个字符到该行行首的所有数据
y$ 复制光标所在的那个字符到该行行尾的所有数据
p,P p为将已复制的数据在光标下一行贴上,P则为贴在游标上一行
J 将光标所在列与下一列的数据结合成同一列
c 重复删除多个数据
u 复原前一个动作
[Ctrl]+[r] 重做上一个动作
 .  额...这就是小数点....意思是重复前一个动作的意思
进入编辑模式
i,I 插入:在目前的光标所在处插入文字,已存在的文字会向后退;其中i为【从目前光标所在处插入】,I为【在目前所在行的第一个非空格符处开始插入】
a,A a为【从目前光标所在的下一个字符处开始插入】,A为【从光标所在行的最后一个字符处开始插入】
o,O 这是英文字母o大小写。o 为【在目前光标所在的下一行处插入新的一行】;O为在目前光标所在处的上一行插入新的一行
r,R 取代:r会取代光标所在的那一个字符;R会一直取代光标所在的文字,直到按下ESC为止
ESC 退出编辑模式,回到一般模式中
指令列命令模式
:w 将编辑的数据写入硬盘档案中
:w! 若硬盘属性为【只读】时,强制写入档案。不过具体能不能写入,还是跟你对该档案权限有关
:q 离开vi
:q! 若曾修改过档案,又不想储存,使用!为强制离开不储存
:wq 储存后离开,若为:wq!则为强制储存后离开
:e! 将档案还原到最原始的状态
ZZ 若档案没有更动,则不储存离开,若档案已经经过更动,则储存后离开
:w [filename] 将编辑的数据储存成另一个档案
:r [filename] 在编辑的数据中,读入另一个档案的数据,即将[filename]这个档案内容加到游标所在行后面
:n1,n2 w [filename] 将n1到n2 的内容储存成filename这个档案
:! command 暂时离开vi到指令列模式下执行command的显示结果。例如[:! ls /home]即可在vi当中查看/home底下以ls输出的档案信息
:set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu 与set nu相反,为取消行号
时间: 2024-08-05 11:12:17

linux杂记(⑨)?vi使用说明的相关文章

Unix Linux 通用vi命令,使用帮助手册【珍藏版

Unix Linux 通用vi命令,使用帮助手册[珍藏版] Vi 简介 Vi 是 Unix 世界里极为普遍的全萤幕文书编辑器,几乎可以说任何一台 Unix 机器都会提供这套软体.Linux 当然也有,它的 vi 其实是 elvis(版权问题),不过它们都差不多.熟悉 DOS 下的文书处理後,也许会感到 vi 并不好用:Unix 上也已经发展出许多更新.更好用的文书编辑器,但是并不一定每一台 Unix 机器上都会安装这些额外的软体.所以,学习 vi 的基本操作还是有好处,让你在各个不同的机器上得心

Linux下vi替换字符命令操作实例

在Linux下的开发中,经常涉及到对文件里的字符进行处理,当中,对字符的替换操作也是非常的频繁. 本文以一个实际的文件为例,具体介绍了Linux下经常使用的vi替换字符命令,为相关的开发工作提供给了參考. 本文中被操作的文件为TestFile.txt,当中的内容例如以下: [email protected]:~/zhouzx/Test> cat TestFile.txt 12345678907890 ABCDABCDEFGHIJ 12345^&*()() 98765432103210 abc

linux中vi复制与粘贴(整行,多行)

vi编辑器中的整行(多行)复制与粘贴就非常必要了. 1.复制 1)单行复制 在命令模式下,将光标移动到将要复制的行处,按“yy”进行复制: 2)多行复制 在命令模式下,将光标移动到将要复制的首行处,按“nyy”复制n行:其中n为1.2.3…… 2.粘贴 在命令模式下,将光标移动到将要粘贴的行处,按“p”进行粘贴 vi复制多行文本的方法方法1:光标放到第6行,输入:2yy光标放到第9行,输入:p此方法适合复制少量行文本的情况,复制第6行(包括)下面的2行数据,放到第9行下面.方法2:命令行模式下输

linux中vi编辑器

vi编辑器,通常称之为vi,是一种广泛存在于各种UNIX和Linux系 统中的文本编辑程序.它的功能十分强大,但是命令繁多,不容易掌握,它可以执行输出.删除.查找.替换.块操作等众多文本操作,而且用户可以根据自己的需 要对其进行定制,这是其他编辑程序所没有的.vi不是基于窗口的,所以,这个多用途编辑程序可以用于在任何类型的终端上编辑各式各样的文件. vi编辑器的三种模式 1.命令模式(command mode)-执行命令 在该模式中,可以输入命令来执行许多种功能.控制屏幕光标的移动,字符.字或行

Linux下vi编辑器粘贴复制剪切功能

RedHat 9.0 Linux下vi编辑器实现简单的粘贴复制剪切功能": 如果想把文件内的第三行内容黏贴到第十五行: 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你的光标移到你的第三行的开头(用方向键) 3,按下v,(你发现切换到可视模式了),按方向键,知道选中你想要的内容 4.按y,再将光标移到第十四行末尾. 5.按p.完成 此方法可以用于多行的粘贴->复制 若想剪切->复制的话就更简单了(只能用于单行) 1.进入你的文件,(处于命令模式,而不是编辑模式) 2.将你

Linux下Vi/Vim使用笔记

Linux下Vi/Vim使用笔记 启动和关闭vim vi 打开 Vi/Vim 打开 Vi/Vim 并加载文件 <file> vi <file> ZQ 无条件退出 :q! 无条件退出 ZZ 存盘并退出 :wq 存盘并退出 vim编辑器的三种模式:一般模式.编辑模式和命令行模式在一般模式中可以进行删除.复制和粘贴的功能,但是无法编辑文件内容. 从一般模式切换到编辑模式可以按下i.I.o.O.a.A.r.R键. 注意区分当前是INSERT还是REPLACE模式! i: 插入,从目前光标所

Linux下VI命令详细介绍

vi 是"Visual Interface" 的简称,它在Linux 上的地位就仿佛Edit 程序在DOS上一样.它可以执行输出.删除.查找.替换.块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,这是其他编辑程序所没有的. vi 不是一个排版程序,它不象Word 或WPS 那样可以对字体.格式.段落等其他属性进行编排,它只是一个文本编辑程序. vi 没有菜单,只有命令,且命令繁多.限于篇幅,本文只介绍常用的命令. Vi 有三种基本工作模式:命令行模式,文本输入模式和末行模

Linux中vi显示中文乱码的问题

由于在windows下默认是gb编码,而我的vim默认是utf-8(gedit默认也是utf-8),所以打开会成乱码.修改了一下配置文件,使vi支持gb编码就好了.$vi ~/.vimrclet &termencoding=&encodingset fileencodings=utf-8,gbk$:wq再次打开vi,显示就正常了.vim中编辑不同编码的文件时需要注意的一些地方此文讲解的是vim编辑多字节编码文档(中文)所要了解的一些基础知识,注意其没有涉及gvim,纯指字符终端下的vim.

linux下 vi中[noeol]以及出现 feff 的问题

"uptime.py" [noeol] 69L, 2311C"system/uptime.py" 69L, 2312C 'noeol' 就是 'no end-of-line', 即“没有行末结束符” 使用cat -A 命令可以看到两个文件的不同之处在于最后一行是否有换行符 cat -A uptime.pyif __name__ == '__main__':$    uptime = uptime()$    print(uptime)$[email protecte

Linux下TC使用说明

Linux下TC使用说明 一.TC原理介绍 Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制. Linux流量控制的基本原理如下图所示. 接收包从输入接口(Input Interface)进来后,经过流量限制(Ingress Policing)丢弃不符合规定的数据包,由输入多路分配器(Input De-Multiplexing)进行判断选择:如果接收包的目的是本主机,那么将该包送给上层处理:否则需