linux vi命令的使用方法有哪些?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux vi命令的使用方法有哪些?相关的知识,希望对你有一定的参考价值。
vi的基本概念基本上vi可分为三种操作状态,分别是命令模式(Command mode)、插入模式(Insert mode)和底线命令模式(Last line mode),
各模式的功能区分如下:
1. Comand mode:控制屏幕光标的移动,字符或光标的删除,移动复制某区段及进入Insert mode下,或者到Last line mode。
2. Insert mode:唯有在Insert mode下,才可做文字数据输入,按Esc等可回到Comand mode。
3. Last line mode:将储存文件或离开编辑器,也可设置编辑环境,如寻找字符串、列出行号等。
不过可以把vi简化成两个模式,即是将Last line mode也算入Command mode,把vi分成Command 和Insert mode。
vi的基本操作
?进入vi
在系统提示符号输入vi及文件名称后,即可进入vi全屏幕编辑画面:
$ vi testfile
有一点要特别注意,就是您进入vi之后是处于“Command mode”下,您要切换到Insert mode才能输入文字。
初次用vi的用户都会想先用上下左右键移动光标,结果电脑一直叫,把自己气个半死,所以进入vi后,先不要乱动,
转换入Insert后再说。?切换至Insert mode编辑文件在Command mode下按‘i’、‘a’或‘o’三键就可进入Insert mode。
这时候您就可以开始输入文字了。
i: 插入,从目前光标所在之处插入所输入的文字。
a: 增加,目前光标所在的下一个字开始输入文字。
o: 插入新的一行,从行首开始输入文字。
?Insert的切换→Command mode,按Esc键
您目前处于Insert mode,您就只能一直打字。假如您发现打错字了,想用光标键往回移动,将该字删除,
就要按ESC键转换回Command mode,再删除文字。
?离开vi及存文件
在Command mode下,可按冒号“:”键入入Last line mode,例如:
:w filename (输入“w filename”,将文章存入指定的文件名filename)
:wq (输入“wq”,因为进入之时已经指定文件名testfile,所以会写入testfile并离开vi)
:q! (输入“q!”,强制离开并放弃编辑的文件)
Command mode功能键列表
在介绍command mode指令的时后,指令后面加上“常用”字眼的功能键,表示比较常用的vi指令,
请读者您一定要学会、记住。
(1)I、a、o切换进入Insert mode。[超级常用]
(2)移动光标
vi可以直接用键盘上的光标键来上下左右移动,但正规的vi是用小写英文字母
h、j、k、l,分别控制光标左、下、上、右移一格。
按Ctrl+B:屏幕往后移动一页。[常用]
按Ctrl+F:屏幕往前移动一页。[常用]
按Ctrl+U:屏幕往后移动半页。
按Ctrl+D:屏幕往前移动半页。
按 0 (数字零):移动文章的开头。[常用]
按 G:移动到文章的最后。[常用]
按 w:光标跳到下个word的开头。[常用]
按 e:光标跳到下个word的字尾。
按 b:光标回到上个word的开头。
按 $:移到光标所在行的行尾。[常用]
按 ^:移到该行第一个非空白的字符。
按 0:移到该行的开头位置。[常用]
按 #:移到该行的第#个位置,例:51、121。[常用]
(3)删除文字
x:每按一次删除光标所在位置的后面一个字符。[超常用]
#x:例如,6x 表删除光标所在位置的后面6个字符。[常用]
X:大字的X,每按一次删除光标所在位置的前面一个字符。
#X:例如,20X 表删除光标所在位置的前面20个字符。
dd:删除光标所在行。[超常用]
#dd:例如,6dd表删除从光标所在的该行往下数6行之文字。[常用]
(4)复制
yw:将光标所在处到字尾的字符复制到缓冲区中。
(想在和#x、#X的功能相反)
p:将缓冲区内的字符粘贴到光标所在位置(指令‘yw’与‘p必须搭配使用)。
yy:复制光标所在行。[超常用]
p:复制单行到您想粘贴之处。(指令‘yy’与‘p’必须搭配使用)
#yy:如:6yy表示拷贝从光标所在的该行往下数6行之文字。[常用]
p:复制多行到您想粘贴之处。(指令‘#yy’与‘p’必须搭配使用)
“ayy:将复制行放入buffer a, vi提供buffer功能,可将常用的数据存在buffer
“ap:将放在buffer a的数据粘贴。
“b3yy:将三行数据存入buffer b。
“b3p:将存在buffer b的资料粘贴
(5)取代
r: 取代光标所在处的字符:[常用]
R:取代字符直到按Esc为止。
(6)复原(undo)上一个指令
u:假如您误操作一个指令,可以马上按u,回复到上一个操作。[超常用]
.: .可以重复执行上一次的指令。
(7)更改
cw:更改光标所在处的字到字尾$处。
c#w:例如,c3w代表更改3个字。
(8)跳至指定行
Ctrl+G:列出光标所在行的行号。
#G:例如,15G,表示移动光标至文章的第15行行首。[常用]
Last line mode下指令简介
读者您要使用Last line mode之前,请记得先按Esc键确定您已经处于Command mode下后,再按冒号“:”或“/”或“?”
三键的其中一键进入Last line mode。
1.列出行号
set nu: 输入“set nu”后,会在文章的每一行前面列出行号。
2.跳到文章的某一行
#:井号代表一个数字,在Last line mode提示符号“:”前输入数字,再按Enter就会跳到该行了,
如:15[Enter]就会跳到文章的第15行。[常用]
3.寻找字符串
/关键字:先按/,再输入您想寻找的字,如果第一次找的关键字不是您相尽可能的,可以一直按n会往下寻找到您要的关键字为止。
?关键字:先按?,再输入您想寻找的字,如果第一次找的关键字不是您想要的,可以按n会往前寻找到您要的关键字为止。
4.取代字符串
1,$s/string/replae/g:在last line mode输入“1,$s/string/replace/g”会将全文的string字符串取代为replace字符串,
其中1,$s就是指搜寻区间为文章从头至尾的意思,g则是表示全部取代不必确认。
%s/string/replace/c:同样会将全文的string字符串取代为replace字符串,和上面指令不同的地方是,%s和1,$s是相同的功能,
c则是表示要替代之前必须再次确认是否取代。
1,20s/string/replace/g:将1至20行间的string替代为relpace字符串。
5.存文件
w:在last line mode提示符号“:”前按w即可将文件存起来。[超常用]
#,# w filename:如果您想摘取文章的某一段,存成另一个文件,可用这个指令#代表行号,例如30,50 w nice,
将您正在编辑文章的第30~50行存成nice这个文件。
6.离开
q:按q就离开,有时如果无法离开vi,可搭配“!:强置离开vi,如“q!”
qw:一般建议离开时,搭配w一起使用,如此离开时还可存文件 参考技术A
一般模式常用操作
【h(或向左方向键)】 光标左移一个字符
【j(或向下方向键)】 光标下移一个字符
【k(或向上方向键)】 光标上移一个字符
【l(或向右方向键)】 光标右移一个字符
【[Ctrl] + f】 屏幕向下移动一页(相当于Page Down键)
【[Ctrl] + b】 屏幕向上移动一页(相当于Page Up键)
【[0]或[Home]】 光标移动到当前行的最前面
【[$]或[End]】 光标移动到当前行的末尾
【G】 光标移动到文件的最后一行(第一个字符处)
【nG】 n为数字(下同),移动到当前文件中第n行
【gg】 移动到文件的第一行,相当于"1G"
【n[Enter]】 光标向下移动n行
【延展阅读】
(一)vi/vim是什么?
Linux世界几乎所有的配置文件都是以纯文本形式存在的,而在所有的Linux发行版系统上都有vi编辑器,因此利用简单的文字编辑软件就能够轻松地修改系统的各种配置了,非常方便。vi就是一种功能强大的文本编辑器,而vim则是高级版的vi,不但可以用不同颜色显示文字内容,还能进行诸如shell脚本、C语言程序编辑等功能,可以作为程序编辑器。
(二)为什么要学习vi/vim?
首先所有的Linux发行版系统上都会默认内置vi编辑器,而不一定带有其他文本编辑器,非常通用;其次,很多软件的编辑接口都会默认调用vi;第三,vi具有程序编辑的能力;最后,vi程序简单,编辑速度相当快速。
(三)vim配置文件
vim的配置文件为/etc/vimrc,但一般不建议直接修改这个文件,而是在用户根目录下创建一个新的隐藏文件:
vim ~/.vimrc
然后编辑这个文件,常用的配置如下:
bash
"双引号后面的内容为注释
set nu "显示行号
set hlsearch "查找的字符串反白显示
set backspace=2 "可随时用退格键进行删除
set autoindent "自动缩排
set ruler "在最下方一行显示状态
set showmode "在左下角显示模式
set bg=dark "显示不同的底色,还可以为light
syntax on "语法检验,颜色显示
参考资料
$Linux vi/vim编辑器常用命令与用法总结.键盘上的手艺人[引用时间2018-3-7]
Linux下的文本编辑器都有哪些?
Linux下的文本编辑器有哪些?
参考技术A 目前个人觉得最好用的就是PNEdit(PNEdit_v2021.09版本),建议你就使用这个吧,完全免费,而且功能很强大,跟vim是差不多,都是在vi的基础上升级的。Emacs听说也是不错,但是入门太难了,没试过。本回答被提问者采纳 参考技术B
第一:Vim Editor
Vim是一个类似于Vi的文本编辑器,不过在Vi的基础上增加了很多新的特性,Vim普遍被推崇为Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体。1999年Emacs被选为Linux
world文本编辑分类的优胜者,Vim稳居第二。但在2000年Vim赢得了Slashdot
Beanie的最佳开放源代码文本编辑器大奖,又将Emacs推至第二,不过Vim和Emacs同样都是非常优秀的文本编辑器。
第二:Emacs
Emacs即Editor
MACroS,中文名宏编辑器,是一种文本编辑器,在程序员和其他以技术工作为主的计算机用户中广受欢迎。Emacs是一种强大的文本编辑器,最初由Richard
Stallman(理查德·马修·斯托曼)于1975年在MIT协同Guy Steele共同完成。
第三:Notepad++
Notepad++是一款非常有特色的编辑器,开源软件,可免费使用。内置支持多达27种语法高亮度显示,还支持自定义语言。
Notepad++是Windows操作系统下的一套非常有特色的自由软件的纯文本编辑器,有完整的中文化接口及支持多国语言编写的功能。它的功能比Windows中的Notepad强大,除了可以用来制作一般的纯文字说明文件,也十分适合当作编写电脑程序的编辑器。Notepad++不仅有语法高亮度显示,还有语法折叠功能,并且支持宏以及扩充基本功能的外挂模组。
第四:PNEdit
PNEdit是一个类似于Vi的功能多样、用户可定制的文本编辑器,在vi的基础上改进和增加了很多特性。图形界面设计简洁方便让编辑窗口设置更加容易,快捷键和命令行操作方式使得文本编辑的速度和效率有所提高,内嵌的多个应用插件扩展了文本编辑功能。
第五:TextMate
TextMate是Mac平台下著名的编辑器,适合程序员使用,与BBedit一起并称苹果机上的emacs和vim,可以定制许多贴心的使用功能。TextMate的Bundles是TextMate的一个亮点,可以有效的提高开发效率。包括DHH在内的Rails核心开发者一直都使用TextMate进行开发,原因就是他们主要都在使用Mac
OS系统,并且TextMate具备出色的界面、强大的宏定义,以及可下载和编辑的宏定义包,这些都帮助开发者将编码的效率提升到最高。
最近统一操作系统 UOS 的消息令不少人再次对国产系统的问题产生关注,毫无疑问,目前国内出的系统,深度、新支点等等,包括即将放出的 UOS,都是基于 Linux 内核的。很多用户以前都是用的 Windows 系统,转入到 Linux 平台下,许多软件都要重新适应,今天就谈最基本,也是最常用的软件,文本编辑器的问题。
Windows 许多功能强大的编辑器没有 Linux 版本,或者 Linux 版的功能不是太稳定,不过,Linux 下也有不错的文本编辑器,功能甚至更强大。
Linux 可以安装不同的桌面,这些桌面自带的文本编辑器各不相同,像 Gnome,自带的是 Gedit,xfce 桌面自带的是 mousepad 等等,这些自带的编辑器,有的对中文支持不太好,需要自己配置,就不说了。其中功能比较强大,对中文支持比较完善的,应该就是 Gedit了,用来日常编写文本,甚至编程什么的也是不错的。
对于搞编程的同学来说,肯定听说过 Emacs 和 Vim,几十年来,这两大编辑器的生命力一直很顽强,在 Linux 下功能非常成熟稳定,关于它们的使用方法,甚至都有专门的书籍教程,这里就不展开了。
Sublime Text 文本编辑器,专为编程而设计的。事实上,它保持了一些与Vim和Emacs的相似特性。这个是收费软件,但是可以无限使用,未授权版本在使用过程会弹出授权提示,但是不影响使用。
Atom 编辑器也有不少人在使用,是github专门为程序员推出的一个跨平台文本编辑器。具有简洁和直观的图形用户界面,并有很多有趣的特点:支持CSS,HTML,JavaScript等网页编程语言。它支持宏,自动完成分屏功能,集成了文件管理器。
我个人一般都是用 Geany,它是使用GTK+2开发的跨平台的开源集成开发环境,以GPL许可证分发源代码,是免费的自由软件。就简单的文本编辑来说,不需要复杂的配置,安装后可直接使用,即使开发编程,配置也不是太复杂。
其它还有很多编辑器,随着国产系统的普及,相信每个人都会熟练使用新平台的各种软件。
以上是关于linux vi命令的使用方法有哪些?的主要内容,如果未能解决你的问题,请参考以下文章