linux-basic(10)vim程序编辑器

【10.1】vi 与 vim
【10.2】vi的使用
1)3种模式:
模式1:一般模式, vim打开就是这种模式,编辑模式下 按 esc 回到一般模式;
模式2:编辑模式,要等到你按下『i, I, o, O, a, A, r, R』等任何一个字母之后才会进入编辑模式。
模式3:命令行模式, 输入『 : / ? 』三个中的任何一个按钮 进入命令行模式;

【10.2.2】按键说明
1)第一部份:一般模式可用的按钮说明,光标移动、复制贴上、搜寻取代等

(1)

(2)

(3)

(4)
2)第二部份:一般模式切换到编辑模式的可用的按钮说明

(5)
3)第三部份:一般模式切换到指令列模式的可用的按钮说明

(6)
【注意】:在 vi 中,『数字』是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。举例来说,要删除 50 行,则是用 『50dd』 对吧! 数字加在动作之前~那我要向下移动 20 行呢?那就是『20j』或者是『20↓』即可。

【10.3】vim的功能
【10.3.1】块选择 visual block
1)怎样进行块选择?

(7)
2)当我们按下 v 或者 V 或者 [Ctrl]+v 时, 这个时候光标移动过的地方就会开始反白,这三个按键的意义分别是:

(8)
【10.3.2】多文件编辑
1)我们可以使用 vim 后面同时接好几个档案来同时开启喔:如下表所示:

(9)
【荔枝】vim编辑多个文件

(10)

(11)
【10.3.3】多窗口功能
1)如何分割窗口并放入档案呢? 
很简单啊!在指令列模式输入『:sp {filename}』即可!那个 filename 可有可无, 如果想要在新窗口启动另一个档案,就加入档名,否则仅输入 :sp 时, 出现的则是同一个档案在两个窗口间!
2) 分割窗口的相关指令功能有很多,如下:

(12)

(13)
【10.3.4】vim环境设置与记录: ~/.vimrc, ~/.viminfo
1)这是因为我们的 vim 会主动的将你曾经做过的行为登录下来,好让你下次可以轻松的作业啊! 那个记录动作的档案就是: ~/.viminfo !
2)vim 环境设置参数,如下:

(14)
不建议修改 /etc/vimrc 这个文件;

【10.3.5】vim常用命令

(15)
【10.5】重点回顾
  ● Linux 底下的配置文件多为文本文件,故使用 vim 即可进行设定编辑;
  ● vim 可视为程序编辑器,可用以编辑 shell script, 配置文件等,避免打错字;
  ● vi 为所有 unix like 的操作系统都会存在的编辑器,且执行速度快速;
  ● vi 有三种模式,一般模式可变换到编辑与指令列模式,但编辑模式与指令列模式不能互换;
  ● 常用的按键有i, [Esc], :wq 等;
  ● vi 的画面大略可分为两部份,(1)上半部的本文与(2)最后一行的状态+指令列模式;
  ● 数字是有意义的,用来说明重复进行几次动作的意思,如 5yy 为复制 5 行之意;
  ● 光标的移动中,大写的 G 经常使用,尤其是 1G, G 移动到文章的头/尾功能!
  ● vi 的取代功能也很棒! :n1,n2s/old/new/g 要特别注意学习起来;
  ● 小数点『 . 』为重复进行前一次动作,也是经常使用的按键功能!
  ● 进入编辑模式几乎只要记住: i, o, R 三个按钮即可!尤其是新增一行的 o 与取代的 R
  ● vim 会主动的建立 swap 暂存档,所以不要随意断线!
  ● 如果在文章内有对齐的区块,可以使用 [ctrl]-v 进行复制/贴上/删除的行为
  ● 使用 :sp 功能可以分割窗口
  ● vim 的环境设定可以写入在 ~/.vimrc 档案中;
  ● 可以使用 iconv 进行档案语系编码的转换

  ● 使用 dos2unix 及 unix2dos 可以变更档案每一行的行尾断行字符。




本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里巴巴对Java编程【代码格式】的规约

转载自 阿里巴巴对Java编程【代码格式】的规约 代码格式 1. 【强制】大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行 ; 如果是非空代码块则: 1 ) 左大括号前不换行。 2 ) 左大括号后…

自定义通配器导入bean对象

1.CustomerImportSelector工具类: /*** description : 自动导入器* author : wanYunBo* date : 2021-09-02 20:46**/ package com.itheima.config.selector;import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; import o…

linux-basic(11)认识和学习bash

【11.1】认识bash这个shell1)介绍:其实壳程序的功能只是提供用户操作系统的一个接口,因此这个壳程序需要可以呼叫其他软件才好。命令,包括 man, chmod, chown, vi, fdisk, mkfs 等等命令,这些命令都是独立的应用程序&a…

阿里巴巴对Java编程【常量定义】的规约

转载自 阿里巴巴对Java编程【常量定义】的规约 常量定义 1. 【强制】不允许任何魔法值 ( 即未经定义的常量 ) 直接出现在代码中。 反例: String key " Id # taobao _" tradeId; cache . put(key , value); 2. 【强制】 long 或…

动态代理-AOP

1 什么是AOP? Aspect Oriented Programming的缩写,面向切面编程,切面指定就是动态代理的方法,作用是在不改变业务层方法源代码的基础上对方法进行增强,底层使用的是动态代理技术,面向切面编程也可以理解成…

linux-basic(12)正则表达式与文件格式化处理

【12.1.1】什么是正则表达式? 1)简单说:正则表示法就是处理字串的方法,他是以行为单位来进行字串的处理行为, 正则表达式透过一些特殊符号的辅助,可以让使用者轻易的达到查找、删除、替换某特定字串的处理程…

阿里巴巴对Java编程【OOP规约】的规约

转载自 阿里巴巴对Java编程【OOP规约】的规约 OOP规约 1. 【强制】避免通过一个类的对象引用访问此类的静态变量或静态方法,无谓增加编译器解析成本,直接用类名来访问即可。 2. 【强制】所有的覆写方法,必须加 Override 注解。 说明&#xff…

AOP切点表达式及通知类参数传递方式

1.切入点表达式的写法 execution( * com.itheima.service.impl.StudentServiceImpl.findAll(…)) //较少 execution( * com.itheima.service.impl.StudentServiceImpl.(…)) //较少 execution( * com.itheima.service.StudentService.(…)) //StudentService中的所有方法会被代…

linux-basic(13)学习shell script

【13.1】什么是shell script?1)shell script 是利用 shell 的功能所写的一个『程序 (program)』,这个程序是使用纯文字档,将一些 shell 的语法与命令(含外部命令)写在里面, 搭配正规表示法、管线命令与数据流重导向等功…

阿里巴巴对Java编程【集合处理】的规约

转载自 阿里巴巴对Java编程【集合处理】的规约集合处理1. 【强制】关于 hashCode 和 equals 的处理,遵循如下规则: 1) 只要重写 equals ,就必须重写 hashCode 。 2) 因为 Set 存储的是不重复的对象,依据 ha…

http请求状态码400的原因总结

会出现这个HTTP请求状态码400,说明这个请求是无效的,并没有进入后台服务器(控制器)里。 通常的原因: 前端提交的字段名称或者字段类型和后台的实体类不一样,或者前端提交的参数跟后台需要的参数个数不一致…

做一个完整的Java Web项目需要掌握的技能

转自: https://blog.csdn.net/JasonLiuLJX/article/details/51494048--------------------------------------------------------------------------------最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目&#xff0…

阿里巴巴对Java编程【并发处理】的规约

转载自 阿里巴巴对Java编程【并发处理】的规约并发处理1. 【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。 说明:资源驱动类、工具类、单例工厂类都需要注意。2. 【强制】创建线程或线程池时请指定有意义的线程名称,方便…

查询sql打印日志配置

mybatis-plus:mapper-locations: classpath*:mapper/*.xml# 设置别名包扫描路径,通过该属性可以给包中的类注册别名type-aliases-package: com.heima.model.user.pojosconfiguration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

js语法+dom+js图片库+最佳实践+图片库改进版

【2】js语法 【2.2.4】数据类型类型1)字符串 var mood happy; var moood "happy"; 类型2)数值; var age 33.24; 类型3)布尔值;var married true; 【2.2.5】数组1)填充方式 填充方式1&#xf…

RabbitMQ--topic

Topic类型的Exchange与Direct相比,都是可以根据RoutingKey把消息路由到不同的队列。只不过Topic类型Exchange可以让队列在绑定Routing key 的时候使用通配符! Routingkey 一般都是有一个或多个单词组成,多个单词之间以”.”分割,…

阿里巴巴对Java编程【控制语句】的规约

转载自 阿里巴巴对Java编程【控制语句】的规约控制语句1. 【强制】在一个 switch 块内,每个 case 要么通过 break / return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止 ; 在一个 switch 块内,都必须包含一个 default…

RabbitMQ消息

如何确保RabbitMQ消息的可靠性? 开启生产者确认机制,确保生产者的消息能到达队列开启持久化功能,确保消息未消费前在队列中不会丢失开启消费者确认机制为auto,由spring确认消息处理成功后完成ack开启消费者失败重试机制&#xff…

阿里巴巴对Java编程【注释规约】的规约

转载自 阿里巴巴对Java编程【注释规约】的规约注释规约1. 【强制】类、类属性、类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用// xxx 方式。 说明:在 IDE 编辑窗口中, Javadoc 方式会提示相关注释,生…

动态创建标记+css_dom+js动态效果

【7】动态创建标记【7.1】一些传统方法【7.1.1】document.write方法&#xff0c;不推荐使用 &#xff08;1&#xff09;<!DOCTYPE html> <html lang"en"> <head><meta http-equiv"content-type" content"text/html; charsetutf-…