linux(10)linux vi/vim

linux(10)linux vi/vim前言所有的UnixLike系统都会内建vi文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是vim编辑器。vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在。
但是目前我们使用比较多的是vim编辑器。
vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。
 

什么是vim?

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
 

vim的三种模式

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。
 

命令模式:

使用 Vim 编辑文件时,默认处于命令模式。
此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
以下是常用的几个命令:

  • i 切换到输入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。
     

输入模式

在输入模式下可以对文件执行写操作,类似在 Windows 的文档中输入内容。进入输入模式的方法是输入 i、a、o 等插入命令,编写完成后按 Esc 键即可返回命令模式。
 

底线命令模式

如果要保存、查找或者替换一些内容等,就需要进入编辑模式。编辑模式的进入方法为:在命令模式下按":"键,Vim 窗口的左下方会出现一个”:”符号,这时就可以输入相关的指令进行操作了。指令执行后会自动返回命令模式。
 

常用操作

移动光标

以字符为单位

在命令模式中使用 k、j、h、l 这 4 个字符控制方向,分别表示向上、向下、向左、向右。
也可以使用方向箭头↑↓←→去移动,一般直接使用方向键就可以,上面的花里胡哨的,记起来还麻烦。方向键他不香吗?
 

以单词为单位

  • w:移动光标到下一个单词的单词首
  • b:移动光标到上一个单词的单词首
  • e:移动光标到下一个单词的单词尾
     

以行为单位

  • 0:移动到这一行的最前面字符处
  • $:移动到这一行的最后面字符处
  • gg:移动到这个文件的第一行
  • nG:n 为数字。移动到这个文件的第 n 行。例如 20G 则会移动到这个文件的第 20 行
  • n

    :n 为数字。光标向下移动 n 行
  • control+f:屏幕『向下』移动一页
  • control+b:屏幕『向上』移动一页
     

删除、复制与贴上

  • x:向后删除一个字符
  • X:向前删除一个字符
  • dd:删除游标所在的那一整行
  • ndd:n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行
  • yy:复制游标所在的那一行
  • nyy:n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行
  • p:将已复制的数据在光标下一行贴上
  • P:将已复制的数据在光标上一行贴上
  • u:复原前一个动作
  • control+r:重做上一个动作
  • .:重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了!
     

进入输入或取代的编辑模式

  • i:从目前光标所在处输入
  • I:在目前所在行的第一个非空格符处开始输入
  • a:从目前光标所在的下一个字符处开始输入
  • A:从光标所在行的最后一个字符处开始输入
  • o:在目前光标所在的下一行处输入新的一行
  • O:在目前光标所在的上一行处输入新的一行
  • r:只会取代光标所在的那一个字符一次
  • R:一直取代光标所在的文字,直到按下 ESC 为止
     

指令行的储存、离开

  • :wq:储存后离开,若为 :wq! 则为强制储存后离开
  • :q!:强制离开不储存档案
  • :q:离开 vi
  • :w:将编辑的数据写入硬盘中
     

命令就像开车一样,孰能生巧,多敲多练即可,敲多了,自然而然就学会了

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166293.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MySQL explain详解

    MySQL explain详解MySQLexplain详解Explain简介本文主要讲述如何通过explain命令获取select语句的执行计划,通过explain我们可以知道以下信息:表的读取顺序,数据读取操作

    2022年7月2日
    21
  • linux ettercap,linux下面ettercap的安装(双向arp欺骗)

    linux ettercap,linux下面ettercap的安装(双向arp欺骗)arpspoof真是老掉牙了,有以下三个缺点:1。不支持双向欺骗,要实现,只能启动两个进程。2。不支持多个ip,要不就是整个网段(除非也启动多个进程)3。不支持mac地址伪造。还是用ettercap吧,这个东西,介绍的资料都是windows下面的多。我的被控端是linux下呀,而目标是windows。没有办法,硬着头皮装吧:1..libnet-1.1.2.1.tar.gz2.libpcap-1.0…

    2022年6月28日
    27
  • 线程通信(ITC)

    线程通信(ITC)为什么要通信通信是人的基本需求。而进程作为人的发明,自然脱离不了人的习性,也有通信需求。如果进程之间不进行任何通信,那么进程所能完成的任务就要大打折扣。例如,父进程在创建子进程后,通常须要监督子进程的状态,以便在子进程没有完成给定的任务时,可以再创建一个子进程来继续。这就需要父子进程间通信。而线程间的通信则需要更多。由于一个进程通常包括多个线程,这多个线程之间因资源共享自然地就存在一种合作关系。这种合作关系虽然可以表现为相互独立,但更多地时候是互相交互。这就是通信。就像舞台上的多个演员,他们之间是一种

    2022年6月19日
    51
  • RabbitMQ脑裂「建议收藏」

    RabbitMQ脑裂「建议收藏」在RabbitMQ3.4.x中会出现错误的网络分区检测(某种意义上可以称之为脑裂)的现象,本文通过实验验证此现象,愿小伙伴们少走弯路。Preview网上有两篇帖子(需要翻墙)https://groups.google.com/forum/#!topic/rabbitmq-users/dt8VFhMb2zMhttps://groups.google.com/forum/#!top…

    2022年10月28日
    0
  • bWAPP 安装_bud在哪里下载

    bWAPP 安装_bud在哪里下载1.前言bwapp是一款非常好的漏洞演示平台,其包含有100多个漏洞。bwapp漏洞平台的安装大致有3种单独下载,部署到apache+mysql+php环境下直接下载虚拟机使用docker进行安装2.单独下载先去下载bwapp环境然后将下载的压缩包解压在bwapp/admin下找到settings.php文件将配置文件的内容修改为自己的内容然后访问bwapp进…

    2022年9月24日
    0
  • win10强制删除文件夹(“你需要来自XXX的权限才能对此文件夹进行更改”的解决方法)

    win10强制删除文件夹(“你需要来自XXX的权限才能对此文件夹进行更改”的解决方法)win10强制删除文件夹(“你需要来自XXX的权限才能对此文件夹进行更改”的解决方法)使用命令行方式删除文件夹(这是目前可行的方式)第一步:以管理员账户打开powershell第二步:定位到要删除的文件夹所在目录第三步:给要删除的文件夹赋本机管理员Administrator权限第四步:修改对文件/文件夹的访问权限(赋删除权限)第五步:强制删除文件使用命令行方式删除文件夹(这是目前可行的方式)第一步:以管理员账户打开powershell快捷键win+x调出如下界面,点击WindowsPowerS

    2022年5月29日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号