首页 > 其他分享 >(收藏)[Unix] vi基本操作方法

(收藏)[Unix] vi基本操作方法

时间:2023-08-02 21:35:27浏览次数:47  
标签:10 删除 视窗 vi 游标 Unix 指令 当前 基本操作


一 vi的操作模式vi提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。在输入模式下,用户可输入文本资料。在指令模式下,可进行删除、修改等各种编辑动作。



在输入模式下,按Esc键切换到指令模式下。

在指令模式下,按输入指令(i、a、o等)进入输入模式。

二 进入vi



$ vi  filename

直接键入“vi + 所要编辑的文件名”,即可对指定的文件进行编辑。
如果指定的文件为新文件,则提示:“New file”,否则显示该文件的当前内容。



$ view filename

以只读方式打开文件filename

三 指令模式
3.1 进入输入模式


 a     在当前游标之后输入
 A     在当前行之末输入
  i     在当前游标之前输入
  I     在当前行之首输入
 o     在当前行之下新增一行,并在新增行输入
 O     在当前行之上新增一行,并在新增行输入
输入结束后,按Esc键退出输入模式


3.2 游标移动


 h 向左移动一个字元
 l 向右移动一个字元
 j 向下移动一个字元
 k 向上移动一个字元
 b 左移一个单词,至词首
 w 右移一个单词,至词尾
  0  移到当前行行首
 $ 移到当前行行尾
 + 移至下一行的行首
 - 移至上一行的行首
 H 移至视窗的第一行
 M 移至视窗的中间一行
 L 移至视窗的最后一行
 G 移至该文件的最后一行
 nG 移至该文档的第n行
 n+ 下移n行
 n- 上移n行


3.3 视窗移动


 <Ctrl> + f 视窗下卷一页

 <Ctrl> + b 视窗上卷一页

   <Ctrl> + d 视窗下卷半页

 <Ctrl> + u 视窗上卷半页

  <Ctrl> + e 视窗下卷一行

  <Ctrl> + y 视窗上卷一行

3.4 删除操作


 x 删除游标所在字元
 X 删除游标前一字元
 dw 从游标当前位置开始向后删除一个单词
 db 从游标当前位置开始向前删除一个单词
 d0 从行首删除至当前游标位置
 d$ 从游标当前位置删除至行尾
 dd 删除游标所在行
 D 同d$


3.5 修改操作


 s 修改游标所在字元,修改完成后按Esc键结束
 S 修改整行内容,修改完成后按Esc键结束
 r 替换当前游标所在字元
 R 进入替换状态,直至按Esc键结束
 cw 修改一个单词(从游标位置至词尾)
 cb 修改一个单词(从词首至游标位置)
 cc 修改整行内容,完成后按Esc键结束,同S
 c0 修改行首至游标位置的内容
 c$ 修改游标位置至行尾的内容
 ~ 游标所在字元大小写切换


3.6 指令重复
在指令模式中,可在指令前面加入一个数字n,则该指令会重复执行n次。常用的重复操作有:


 nx 删除n个字元
 ndd 删除n行
 ns 修改n个字元


3.7 取消前一动作(Undo)


 u 撤消上一指令的结果


3.8 查找字符串


 /字符串 从当前游标向后查找该字符串
 ?字符串 从当前游标向前查找该字符串
 n 从当前游标向后查找下一个字符串
 N 从当前游标向前查找下一个字符串


3.9 查看编辑状况


 <Ctrl> + g 显示正在编辑的文件名、当前游标所在行数、文件总行数、文件是否被修改


四 保存与退出


 :w 保存,但不退出
 :wq 保存并退出
 :x 同:wq
 :q 退出,如果当前文件没有保存,禁止退出
 :q! 不保存退出
 :w file1 将内容保存至文件file1中,注意:此时编辑的仍为原文件
 :w! file1 将内容覆盖保存至文件file1中,如文件file1存在,:w file1将禁止执行


 

五 环境设置


 :set 显示已设置的环境状况
 :set all 显示所有的环境设置选项
 :set nu 显示行号
 :set nonu 不显示行号
 :set ts = n 设置Tab键的长度为n


六 执行指令
以下用具体的数字为例进行介绍,数字表示行数,游标所在行可用“.”代替,文件最后一行可用“$”代替。


 : 10 , 20d 删除第10行至第20行的内容
 :10d 删除第10行的内容
 :%d 删除全部内容
 : 10 , 20co30 将第10行至第20行的内容复制到第30行之后
 : 10 , 20mo30 将第10行至第20行的内容移动到第30行之后
 : 1 , $s/old/new 将第1行至最后一行中的old替换成new
 : 1 , $s/^/new 将第1行至最后一行的内容前面插入new
 : 10  将游标移至第10行


七 重复指令


 . 重复上一条指令


八 切换到shell状态


 :sh 切换到shell状态,exit返回

标签:10,删除,视窗,vi,游标,Unix,指令,当前,基本操作
From: https://blog.51cto.com/u_14230175/6943243

相关文章

  • ASP.NET2.0中用Gridview控件操作数据
     小弟新写的一篇文章,上,因为没图,比较方便摘录如下:在ASP.NET2.0中,加入了许多新的功能和控件,相比asp.net1.0/1.1,在各方面都有了很大的提高。其中,在数据控件方面,增加了不少控件,其中的Gridview控件功能十分强大。在本文中,将探讨Gridview控件中的一些功能特性和用......
  • VimScript五分钟入门-中文翻译
    这篇文章主要是为了让你能够尽可能快地学习到vimscript的基础。你可以把这当做一个速查表。在读这篇文章之前,你应该可能已经有了一些编程经验。Vim的内建文档已经很出色了。你可以在vim里尝试:h<searchterm>来阅读更多信息。你可以通过在normal模式下键入gQ命令启动REPL环境来调......
  • 利用ZoomEye探索互联网hikvision摄像头——直接htp://www.zoomeye.org/search?q=DVRDV
    实践了下,zoomeye或者shodan都可以!还是很吓人的...         然后随便点击一个就进去了。。。 利用ZoomEye探索互联网hikvision摄像头2021年4月2日某天使用IISPUTSCANNER扫描C段观察HTTPBANNER为DVRDVS-Webs点开后发现为hikvision摄像头的WEB端于是乎想到了知道创宇......
  • 微软工具:TCPView 可以查看网络和进程的关联信息,还是非常好用的
     ★微软工具:TCPViewhttps://docs.microsoft.com/zh-cn/sysinternals/downloads/tcpview  ......
  • 实验六 字符串的基本操作
    实验六字符串的基本操作一、实验目的1、培养分析问题并对进行建模的能力。2、熟练运用字符串基本功能解决实际问题。二、实验内容1、获取字符串中汉字的个数,如:“我的English学的不好”汉子个数是6个。2、去掉字符串数组中每个字符串的空格,如:“todayisagoodday”结果......
  • 修改Keil uvison4 字体样式
    1.点击扳手配置2.点击Colors&Fonts,选择其中的8051:EditorCFiles,选择Text,点击右侧的CourierNew...3.在里面就可以调节字体了......
  • VIM常用快捷键
    一、移动光标h,j,k,l上,下,左,右ctrl-e移动页面ctrl-f上翻一页ctrl-b下翻一页ctrl-u上翻半页ctrl-d下翻半页w跳到下一个字首,按标点或单词分割W跳到下一个字首,长跳,如end-of-line被认为是一个字e跳到下一个字尾E跳到下一个字尾,长跳b跳到上一个字B跳到上一个字,长跳0跳至行......
  • 10. NVIC中断控制器
    一、什么是中断  中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。  当处理机接受中断时,只需暂停一个或几个周期而不执行处理程序的中断,称为简单中断。中断又可分为屏蔽......
  • 论文解读(APCA)《Adaptive prototype and consistency alignment for semi-supervised d
    [Wechat:Y466551|付费咨询,非诚勿扰]论文信息论文标题:Adaptiveprototypeandconsistencyalignmentforsemi-superviseddomainadaptation论文作者:JihongOuyang、ZhengjieZhang、QingyiMeng论文来源:2023aRxiv论文地址:download 论文代码:download视屏讲解:click1介绍......
  • 小程序中web-view网页中打开或返回小程序页面
    小程序中web-view网页中使用JSSDK提供的接口打开或返回小程序页面1、引入JSSDK文件2、判断是否在小程序环境let_this=this;wx.miniProgram.getEnv(function(res){if(res.miniprogram){_this.miniprogram=true;}})3、根据是否小程序环境,执行操作if(th......